Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Sistemas Distribuidos Paula C. Martínez Clientes y servidores ★ Diversas aplicaciones se ejecutan en un entorno cliente/servidor. ★ Los equipos clientes (equipos que forman parte de una red) contactan a un servidor, un equipo generalmente muy potente en materia de capacidad de entrada/salida, que proporciona servicios a los equipos clientes. ★ Estos servicios son programas que proporcionan datos como la hora, archivos, una conexión, etc. Clientes y servidores ★ Los servicios son utilizados por programas denominados programas clientes que se ejecutan en equipos clientes. ★ Se utiliza el término ”cliente” (cliente FTP, cliente de correo electrónico, etc.) cuando un programa que se ha diseñado para ejecutarse en un equipo cliente, capaz de procesar los datos recibidos de un servidor. Clientes y servidores Sistemas Distribuidos ★ Un Sistema Distribuido consiste en una colección de computadoras autónomas enlazadas por una red y equipadas con un sistema de software distribuido que luce a los usuarios como si fuera en sistema único y centralizado. Sistemas Distribuidos Sistemas Distribuidos Sistemas Distribuidos - Ventajas ★ Economıá: Los microprocesadores ofrecen mejor relación precio/rendimiento que los mainframes. ★ Velocidad: Tiene mayor poder de cómputo que un mainframe. ★ Distribución inherente: Aplicaciones en máquinas separadas geográficamente. ★ Confiabilidad: El sistema sobrevive a cualquier falla en una máquina. ★ Crecimiento por incrementos. Sistemas Distribuidos - Ventajas ★ Datos Compartidos: Los usuarios tienen acceso a una base de datos común. ★ Dispositivos Compartidos: Los usuarios comparten periféricos caros. ★ Comunicación: facilita la comunicación persona a persona. ★ Flexibilidad: Difunde la carga entre las máquinas disponibles en forma eficaz. Sistemas Distribuidos - Limitaciones ★ No existe una memoria global (cada nodo tiene su memoria local). ★ Establecer un estado global es complejo. ★ No se puede asegurar un tiempo global. Sistemas Distribuidos - Caracterıśticas ★ Compartir de recursos. ★ Apertura. ★ Concurrencia. ★ Tolerancia a las fallas. ★ Transparencia. Transparencia ★ Acceso Transparente: habilita a que objetos de información locales y remotos sean accedidos usando operaciones idénticas. ★ Locación Transparente: permite que objetos de información locales y remotos sean accedidos sin conocimiento de su locación. ★ Concurrencia Transparente: habilita a varios procesos a operar concurrentemente sobre objetos de información compartida sin interferencias entre ellos. Transparencia ★ Replicación Transparente: implica múltiples instancias de objetos de información usados para incrementar confiabilidad y rendimiento sin conocimiento de las réplicas por los usuarios o las aplicaciones. ★ Fallas Transparentes: permite el encubrimiento de fallas, los usuarios y/o aplicaciones completan sus tareas a despecho de fallas de hardware o software. ★ Migración Transparente: permite el movimiento de objetos de información en el sistema sin afectar las operaciones de usuarios o aplicaciones. Transparencia Rendimiento Transparente: el sistema se reconfigura para mejorar el rendimiento cuando la carga varıá. Escalabilidad Transparente: el sistema y las aplicaciones se expanden escalarmente sin cambiar la estructura del sistema o los algoritmos de aplicación. Escalabilidad: el sistema y las aplicaciones se expanden escalarmente sin cambiar la estructura del sistema o los algoritmos de aplicación. Comunicación ★ Pasaje de Mensajes. ★ Modelo Cliente-Servidor. ★ Llamadas a Procedimiento Remoto (RPC). ★ Comunicación en Grupo. Pasaje de Mensajes ★ Simplicidad. ★ Simple y fácil de usar (uso directo). ★ Hacer sin preocuparse de aspectos de la red/sistema. ★ Semántica uniforme en: Comunicaciones locales y Comunicaciones remotas. Pasaje de Mensajes ★ Eficiencia: Si no la hay, las IPC son costosas. ★ Criterio: reducción del número de mensajes intercambiados. ★ Optimización incluye: ○ Evitar el costo de establecer y terminar conexiones entre el mismo par de procesos y cada intercambio de mensajes entre ellos. ○ Minimizar el costo de mantener la conexión. ○ Optimizar los reconocimientos cuando hay una serie de mensajes entre el send y receive. Pasaje de Mensajes ★ Flexibilidad: ○ Deben permitir alguna clase de control de flujo entre procesos cooperativos, incluyendo send/receive sincrónicos y asincrónicos. ★ Seguridad: ○ Autenticación del receptor de un mensaje por el emisor. ○ Autenticación del enviador de un mensaje por el receptor. ○ Encriptación del mensaje. ★ Portabilidad: ○ El sistema de pasaje de mensajes debe ser portable (posible construcción de protocolos de IPC reusando el mismo sistema de mensajes). ○ Heterogeneidad de máquinas: compatibilización de representación. Pasaje de Mensajes En el diseño de un protocolo de intercomunicación entre procesos debe considerarse: ★ ¿Quién envıá? ★ ¿Quién recibe? ★ ¿Hay uno o varios receptores? ★ ¿Está garantizado que el mensaje ha sido aceptado por el receptor? ★ ¿Necesita el send esperar una respuesta ? ★ ¿Qué se debe hacer si falla el sitio y/o enlace? ★ ¿Qué sucede si el receptor no está listo para recibir el mensaje? ★ Si hay varios mensajes esperando en el receptor, ¿puede éste cambiar el orden? Llamadas a Procedimientos Remotos (RPC) ★ Es un caso especial del modelo general de pasaje de mensajes. ★ Es un mecanismo ampliamente aceptado para la intercomunicación de procesos en sistemas distribuidos. El modelo RPC ★ RPC habilita a hacer una llamada a un procedimiento que no reside en el mismo espacio de direcciones. ★ RPC usa un esquema de pasaje de mensajes para intercambiar información entre los procesos llamador (proceso cliente) y llamado (proceso servidor). ★ Normalmente el proceso servidor duerme, esperando la llegada de un mensaje de requerimiento. ★ El proceso cliente se bloquea cuando envıá el mensaje de requerimiento hasta recibir la respuesta. Transparencia de RPC ★ Transparencia sintáctica: una llamada a procedimiento remoto debe tener la misma sintaxis que una llamada local. ★ Transparencia semántica: la semántica de un RPC es la misma que para una llamada local. RPC Componentes de RPC Cliente: Es el que inicia el RPC. Hace una llamada que invoca al stub. Stub cliente: Realiza las siguientes tareas: 1) Empaqueta la especificación del procedimiento objetivo y sus argumentos en un mensaje y pide al runtime local que lo envie al stub servidor. 2) En la recepción de los resultados de la ejecución del proceso, desempaqueta los mismos y los pasa al cliente. Componentes de RPC Runtime RPC: 1) Maneja la transmisión de mensajes a través de la red entre las máquinas cliente y servidor. 2) En la recepción de los resultados de la ejecución del proceso, desempaqueta los mismos y los pasa al cliente. Grupos de comunicación ★ Uno a muchos: Este esquema es conocido como comunicación multicast. En este caso los procesos receptores de los mensajes constituyen un grupo, que a su vez pueden ser de dos tipos: ○ Grupos cerrados ○ Grupos abiertos ★ Muchos a uno: Enviadores múltiples envian mensajes a un único receptor. ★ Muchos a muchos: Múltiples enviadores envıán mensajes a múltiples receptores. La cuestión mas importante en este esquema es el ordenamiento de los mensajes. Clusters ★ Conjuntos o conglomerados de computadoras construidos mediante la utilización de hardwares comunes y que se comportan como si fuesen una única computadora. ★ La tecnologıá de clusters ha evolucionado en apoyo de actividades que van desde aplicaciones de supercómputo y software de misiones crıt́icas, servidores web y comercio electrónico, hasta bases de datos de alto rendimiento. Caracterıśticas de un cluster Las computadoras de un cluster están unidas mediante una red de alta velocidad,de tal forma que el conjunto es visto como una única computadora, más potente que las comunes de escritorio. Poseen: ★ Alto rendimiento ★ Alta disponibilidad ★ Balanceo de carga ★ Escalabilidad Procesos en Sistemas Distribuidos ★ En Sistemas Operativos convencionales se trata de la forma de compartir el procesador del sistema entre los procesos. ★ En Sistemas Distribuidos el objetivo es similar: Hacer el mejor uso posible de todos los recursos de procesamiento del sistema. ★ Tres conceptos se usan para lograr este objetivo: ○ Alocación de procesos: que proceso debe asignarse a que ○ procesador. ○ Migración de procesos: movimiento del proceso al procesador ○ que ha sido asignado. ○ Threads: paralelismo mas fino para mejor utilización de la ○ capacidad de procesamiento del sistema. Migración de Procesos ★ Es la relocación de un proceso de su locación corriente (sitio fuente) en otro sitio (sitio destino). ★ Un proceso puede migrar antes de comenzar a ejecutar (no apropiativo) o durante el curso de su ejecución (apropiativo). ★ Involucra: ○ Selección de un proceso a ser migrado. ○ Selección de un sitio destino a donde el proceso debe ser migrado. ○ Transferencia del proceso seleccionado al sitio destino. Migración de Procesos Caracterıśticas deseables de un buen mecanismo de migración de procesos: ★ Transparencia. ★ Mıńima interferencia. ★ Dependencias residuales mıńimas. ★ Eficiencia. ★ Robustez. ★ Comunicación entre coprocesos de un Job. Migración de Procesos El mecanismos de Migración de Procesos involucra varias subactividades: ★ Congelar el proceso en su sitio origen y reiniciarlo en su sitio destino. ★ Transferir el espacio de direcciones correspondiente. ★ Continuar los mensajes esperados por el proceso migrante. ★ Manejar las comunicaciones entre procesos cooperativos que ★ han sido separados como resultado de la migración. Mecanismos de transferencia del espacio de direcciones. Se debe transferir: ★ El estado del proceso ★ El espacio de direcciones del proceso ★ Estado del Proceso ★ Estado de ejecución ★ Info de planificación ★ Memoria usada ★ Estados de entrada/salida ★ Lista de objetos a los cuales el proceso tiene acceso ★ Identificador del proceso ★ Identificador de usuario y grupo del proceso ★ Archivos abiertos Sincronización en sistemas distribuidos Mecanismos ★ Sincronización de Relojes ★ Exclusión Mutua ★ Algoritmos de Elección ★ Transacciones Atómicas ★ Interbloqueos Sincronización en sistemas distribuidos Sincronización de Reloj ★ No es posible lograr ordenamiento de eventos si no existe una sincronización entre los relojes de diferentes sitios. ★ ¿Cómo se implementan los relojes de las computadoras?: Se ★ tiene un oscilador de cristal de cuarzo, un registro contador y un registro constante. ★ El registro constante almacena un valor dependiente de la frecuencia de oscilación del cristal. ★ Cuando este registro llega a cero produce un tick de reloj que se computa en el registro contador (el registro constante es reiniciado). ★ El valor del registro constante es tal que 60 ticks ocurren en un segundo. El reloj de la computadora debe sincronizarse con el tiempo real (relojes externos). Exclusión mutua ★ Implica el acceso exclusivo a recursos compartidos y se deben comunicar los procesos involucrados para acordar el orden de acceso. ★ Los algoritmos de exclusión mutua distribuida pueden ser centralizados o distribuidos. Exclusión mutua - Algoritmos centralizados★ Se basan en la existencia de un proceso coordinador de la sección crıt́ica, que gestiona peticiones de entrar y dejar la sección crıt́ica. ★ Este algoritmo garantiza exclusión mutua, no interbloqueo y no inanición. ★ El problema de los algoritmos centralizados es que el coordinador se convierte en un cuello de botella, por lo que son poco escalables. ★ Ofrecen escasa tolerancia a fallos, ya que un fallo en el coordinador deja a los clientes sin acceso a la sección crıt́ica. ★ Por otro lado, se requiere un tratamiento explıćito de los fallos de los clientes, ya que un cliente que no llegase a solicitar la liberación de la sección crıt́ica impedirıá a otros el acceso. Exclusión mutua - Algoritmos distribuidos★ A diferencia de los centralizados, en los algoritmos distribuidos no existe un proceso diferenciado que coordine el acceso a la sección crıt́ica, sino que se implementa un protocolo que permite establecer un acuerdo entre los procesos para decidir quién entra a la sección crıt́ica. Algoritmos de Elección- Algoritmo Bully ★ El algoritmo bully es un método muy utilizado, dentro de la computación distribuida, para la elección dinámica de un coordinador según el ID de los procesos. ★ El proceso con el ID mayor será seleccionado como elcoordinador del sistema distribuido. Algoritmos de Elección- Algoritmo del anillo ★ Se aplica a sistemas sıńcronos. Cada proceso tiene un canal con el siguiente proceso en el anillo. Los mensajes circulan en sentido de las agujas del reloj. ★ El proceso que inicia el algoritmo se marca como participante y envıá su identificador en un mensaje de elección a su vecino. ★ Cuando un proceso recibe un mensaje de elección compara el identificador recibido con el suyo. Transacciones Atómicas ★ El concepto de transacciones atómicas consiste en garantizar que todos los procesos que conforman una transacción deben ejecutarse en forma completa y satisfactoria. ★ De producirse falla en alguno de los procesos, toda la transacción falla, revirtiéndose la misma y procediéndose a su reinicio. Transacciones Atómicas - Propiedades★ Serializabilidad: Las transacciones concurrentes no interfieren unas con otras. ★ Atomicidad: Desde el mundo exterior la transacción es indivisible. (todo o nada). ★ Permanencia: Una vez que la transacción se ejecuta los cambios son permanentes. Interbloqueos (Deadlocks) El uso de un recurso implica: ★ Requerimiento del recurso ★ Alocación del recurso ★ Desalocación del recurso Los recursos pueden ser reusables o consumibles Interbloqueos (Deadlocks) Condiciones Necesarias para un Interbloqueo: ★ Exclusión Mutua ★ Retención y espera ★ No apropiación ★ Espera circular Si una de ellas no se cumple no hay interbloqueo El soporte del sistema operativo ★ Un aspecto importante de los sistemas distribuidos es la compartición de recursos. ★ Las aplicaciones (clientes) y los servicios (gestores de recursos) utilizan el nivel del middleware para sus interacciones. ★ Por debajo del nivel del middleware se sitúa el nivel del sistema operativo. ★ En realidad no se emplea ampliamente ningún sistema operativo distribuido, sino sistemas operativos en red tipo Unix, MacOS y variantes de Windows. ★ La combinación de middleware y sistemas operativos en red proporciona un equilibrio aceptable entre los requisitos de autonomía y la transparencia de red en el acceso a los recursos. El soporte del sistema operativo ★ Ejemplo: los sistemas operativos de red permiten a los usuarios ejecutar su procesador de textos preferido junto con otro tipo de aplicaciones de tipo independiente. ★ El middleware les permite acceder a los servicios que aparecen como disponibles en el sistema distribuido. ★ Los clientes acceden a los recursos mediante, por ejemplo, invocaciones a un método remoto de un objeto que reside en un servidor o mediante llamadas al sistema en el núcleo. El soporte del sistema operativo Principales componentes del sistema operativo: ★ Gestor de procesos ★ Gestor de hilos ★ Gestor de comunicaciones ★ Gestor de memoria ★ Supervisor Protección ★ Los recursos necesitan protección contra los accesos no permitidos. ★ El núcleo es un programa cuya principal propiedad es que su código siempre se ejecuta con privilegios completos de acceso a los recursos. ★ El núcleo también gestiona el espacio de direcciones para protegerse a sí mismo y a otrosprocesos de accesos anómalos. ★ Los procesos de usuario se utilizan para describir los procesos que tienen un accesos a memoria restringido. ★ El proceso puede conmutar de forma segura entre el espacio de direcciones de nivel de usuario y el del núcleo por medio de una excepción, como una interrupción o bien una interrupción interna de llamada al sistema. Procesos e hilos ★ Un proceso consiste en un entorno de ejecución formado por uno o más hilos. ★ Un hilo es una abstracción del sistema operativo asociada a una actividad. ★ Un entorno de ejecución equivale a una unidad de gestión de recursos: una colección de recursos locales gestionados por el núcleo sobre los que tienen acceso los hilos. Contiene los siguientes elementos: ○ Un espacio de direcciones ○ Recursos de comunicación y sincronización de hilos (semáforos y sockets) ○ Recursos de alto nivel, como archivos abiertos y ventanas. ★ Los hilos pueden crearse y destruirse de manera dinámica, según se necesite. Procesos e hilos ★ El principal propósito para la existencia de múltiples hilos es maximizar el grado de ejecución concurrente entre las diferentes operaciones, habilitando la computación con la entrada-salida y el procesamiento concurrente en multiprocesadores. ★ Por ejemplo un hilo puede procesar una solicitud de un cliente mientras otro hilo que está sirviendo otra solicitud, espera por la finalización de un acceso a disco. Creación de un proceso nuevo ★ Tradicionalmente la creación de un proceso nuevo es una operación indivisible realizada por el sistema operativo. ★ Para un sistema distribuido el diseño del mecanismo de creación de un proceso debe tener en cuenta la utilización de múltiples computadoras. La creación de un proceso nuevo puede separarse en dos aspectos independientes: ○ La elección del computador destino. ○ La creación de un entorno de ejecución (y la de un hilo inicial en él) ★ Las políticas de localización de procesos pueden ser estáticas o adaptativas. ★ Una vez elegida la computadora, el nuevo proceso necesita un entorno de ejecución formado por un espacio de direcciones iniciado con una serie de contenidos. Hilos ★ Los hilos pueden ser tan útiles para los clientes como para los servidores. ★ Por ejemplo un proceso cliente tiene dos hilos. El primer hilo genera resultados que se van a enviar al servidor mediante una invocación a un método remoto, no necesitando una respuesta. ★ Las invocaciones a métodos remotos normalmente bloquean al que invoca. ★ En el caso de los navegadores web, la cuestión de clientes multihilo es evidente: el usuario sufre retardos significativos mientras se cargan las páginas, por lo tanto es esencial para los navegadores la gestión de múltiples solicitudes concurrentes a páginas web. Hilos Hilos frente a múltiples procesos ★ La creación y gestión de hilos es más barata que la de procesos y la compartición de recursos se puede conseguir de manera más eficiente entre hilos que entre procesos, ya que los hilos comparten entornos de ejecución. Hilos frente a múltiples procesos ★ La creación de un nuevo hilo dentro de un proceso existente es más barata que la creación de un proceso. ★ La conmutación a un hilo diferente dentro del mismo proceso es más barata que la conmutación entre hilos que pertenecen a diferentes procesos. ★ Los hilos dentro de un proceso pueden compartir datos y otros recursos de forma más adecuada y eficiente que con procesos separados. ★ Los hilos dentro de un proceso no están protegidos entre ellos. Comunicación e invocación ★ El middleware proporciona la mayor parte de los recursos de comunicación de alto nivel en los sistemas actuales, incluyendo RPC/RMI (Remote Procedure Call/Remote Method Invocation), notificación de eventos y comunicación de grupos. ★ El desarrollo de este software tan complejo al nivel del usuario es mucho más sencillo que desarrollarlo para el núcleo. ★ Se utilizan sockets porque son portables y ofrecen interoperabilidad. Windows y Unix proporcionan APIs de sockets proporcionando acceso a los protocolos TCP y UDP. Comunicación e invocación ★ Uno de los requisitos de los sistemas operativos es el de proporcionar protocolos estándar que permitan intercomunicación entre implementaciones middleware sobre diferentes plataformas. ★ Dado los requisitos diarios de acceso a Internet, es necesario que los sistemas operativos sean compatibles a nivel de TCP y UDP. Comunicación e invocación Los pasos en un RPC son los siguientes (RMI realiza pasos similares): ★ El resguardo del procedimiento del cliente empaqueta los argumentos de la llamada dentro de un mensaje, envía el mensaje de solicitud y recibe y desempaqueta la respuesta. ★ En el servidor, un hilo de trabajo recibe la solicitud entrante, o bien un hilo de E/S recibe la solicitud y se la envía a un hilo de trabajo; en cualquier caso, el trabajo invoca el resguardo apropiado del procedimiento del servidor. ★ El resguardo del servidor desempaqueta el mensaje de solicitud, invoca el procedimiento designado y empaqueta y envía la respuesta. Invocaciones concurrentes ★ Una página web normalmente contiene varias imágenes. El navegador no necesita obtener las imágenes en una secuencia particular, y hace solicitudes concurrentes. ★ El tiempo empleado es menor que hacer las solicitudes en serie. En definitiva... ★ Un proceso está formado por un entorno de ejecución e hilos: un entorno de ejecución consiste en un espacio de direcciones, interfaces de comunicación y otros recursos locales. ★ Un hilo es una abstracción de la actividad que se ejecuta dentro de un entorno de ejecución ★ Se pueden crear espacios de direcciones nuevos cuyas regiones sean heredadas de los procesos padre. ★ Los procesos pueden tener múltiples hilos, los cuales comparten el entorno de ejecución. ★ Los procesos multi-hilo permiten conseguir concurrencia y aprovechar el paralelismo de los multiprocesadores. En definitiva... ★ Implementaciones recientes de hilos permiten una planificación a dos niveles: el núcleo proporciona acceso a múltiples procesadores, mientras que el código de nivel de usuario maneja los detalles de la política de planificación. ★ El sistema operativo proporciona primitivas básicas de paso de mensajes y mecanismos de comunicación a través de memoria compartida. ★ La mayor parte de los núcleos incluyen la comunicación sobre la red como un servicio básico, otros proporcionan únicamente comunicación local. Procesamiento en tiempo real https://docs.microsoft.com/es-es/azure/architecture/data-guide/big-data/real-time-processing Sistemas de tiempo real ★ Hard Real Time: Sistemas en los que si no se cumplen los plazos de tiempo real, el resultado que se obtiene no es válido. ★ Soft Real Time: Sistemas en los que si no se cumplen estos plazos, el resultado obtenido se puede utilizar aunque su calidad es peor. Supongamos que estamos controlando un brazo de robot en una cadena de montaje. Si este brazo no baja justo en el plazo que se ha especificado, la pieza sobre la que tenía que trabajar ya habrá pasado, por lo que el resultado obtenido no es correcto: Hard Real Time. Sistemas de tiempo real Por el contrario, supongamos que en un sistema de videoconferencia no se cumplen los plazos para la transmisión de vídeo y de voz. Lo más probable es que la calidad de imagen y audio no sea la adecuada, que haya desincronizaciones, etc. Pero dentro de unos márgenes, lo único que ocurre es que la calidad del resultado disminuye: Soft Real Time. Como último ejemplo supongamos que se organiza una competición de ajedrez entre una jugador humano y un computador. La simulación que se ejecute en el computador puede tener requisitos de Hard Real Time si se exige que haga un movimiento en menos de 1 minuto. Pero si no existe un límite de tiempo para generarel siguiente movimiento, será un sistema de Soft Real Time. Casos de estudio: Análisis de SO distribuidos Plan 9 ★ Plan 9 from Bell Labs o simplemente Plan 9 es un sistema operativo distribuido, usado principalmente como vehículo de investigación. ★ Fue desarrollado como el sucesor en investigación del sistema UNIX por el Computing Sciences Research Center de los Laboratorios Bell entre mitad de los años 80 y 2002. ★ Plan 9 es conocido especialmente por representar todos las interfaces del sistema, incluyendo aquellos utilizados para redes y comunicación con el usuario, a través del sistema de archivos en lugar de sistemas especializados. https://es.wikipedia.org/wiki/Sistema_operativo https://es.wikipedia.org/wiki/Computaci%C3%B3n_distribuida https://es.wikipedia.org/wiki/UNIX https://es.wikipedia.org/w/index.php?title=Computing_Sciences_Research_Center&action=edit&redlink=1 https://es.wikipedia.org/wiki/Laboratorios_Bell https://es.wikipedia.org/wiki/A%C3%B1os_1980 https://es.wikipedia.org/wiki/2002 https://es.wikipedia.org/wiki/Red_de_computadoras https://es.wikipedia.org/wiki/Interfaz_de_usuario https://es.wikipedia.org/wiki/Sistema_de_archivos Plan 9 ★ Los diseñadores de Plan 9 se interesaron en objetivos similares a los de los micronúcleos, pero hicieron diferentes elecciones de arquitectura y diseño para alcanzarlos. ★ Recursos como archivos: todos los recursos del sistema se representan como archivos en el sistema de archivos jerárquico. ★ Espacios de nombres (namespaces): la vista de la red por parte de la aplicación es un espacio de nombres simple y coherente que aparece como un sistema de archivos jerárquico pero que puede representar recursos físicamente separados (locales o remotos). ★ Protocolo de comunicaciones estándar: se usa un protocolo estándar, llamado 9P, para acceder a todos los recursos, ya sean locales o remotos. https://es.wikipedia.org/wiki/Micron%C3%BAcleo https://es.wikipedia.org/wiki/Recurso https://es.wikipedia.org/wiki/Sistema_de_archivos https://es.wikipedia.org/wiki/Namespace https://es.wikipedia.org/wiki/9P Minix ★ Minix: Sistema Operativo basado en Unix creado por Andrew S. Tanenbaum en 1987 para poder realizar sus explicaciones a sus alumnos de Diseño de Sistemas Operativos. ★ Algunas de las características de esta versión de Minix son: ○ Compatible con POSIX ○ Uso de la pila de protocolos TCP/IP ○ Sistema de ventanas X11 ○ Más de 650 aplicaciones UNIX ○ Multiusuario ○ La licencia empleada actualmente para la distribución del Minix es BSD. https://www.ecured.cu/Sistema_Operativo https://www.ecured.cu/Unix https://www.ecured.cu/Andrew_S._Tanenbaum https://www.ecured.cu/1987 https://www.ecured.cu/index.php?title=POSIX&action=edit&redlink=1 https://www.ecured.cu/TCP/IP https://www.ecured.cu/X11 https://www.ecured.cu/BSD Amoeba ★ El objetivo del proyecto Amoeba era construir un sistema de tiempo compartido que hiciera que una red entera de computadores pareciera a los ojos de un usuario como una máquina única. ★ Los servicios suministrados por el núcleo incluyen threads, segmentos de memoria, mecanismos de IPC (RPCs y mensajes) y E/S. ★ El desarrollo parece detenido, dado que la fecha de la última modificación en el código data de febrero de 2001. ★ Es un SO distribuido simple y flexible. En dicho sistema el kernel se limita a suministrar ciertos servicios básicos y el resto de funcionalidad está implementado mediante servidores que ejecutan como tareas de usuario. https://es.wikipedia.org/wiki/Tiempo_compartido https://es.wikipedia.org/wiki/Hilo_(inform%C3%A1tica) https://es.wikipedia.org/wiki/Comunicaci%C3%B3n_entre_procesos https://es.wikipedia.org/wiki/Remote_Procedure_Call https://es.wikipedia.org/wiki/2001 9p ★ 9P es un protocolo de red desarrollado por Bell Labs el cual se utiliza para vincular componentes del sistema Plan 9. ★ El sistema Plan 9 es un sistema distribuido que sirve como base para propósitos de investigación. Representa todas las interfaces del sistema mediante el sistema de archivos. ★ Los archivos son considerados como objetos clave y son utilizados para representar ventanas, conexiones de red,procesos e interfaces de usuario. ★ El protocolo 9P ofrece una forma de acceder y manipular recursos y aplicaciones de manera transparente en un entorno distribuido. 9p ★ 9p envía mensajes entre clientes y servidores. El cliente transmite requerimientos al servidor, llamados mensajes-T . El servidor responde al cliente con mensajes-R. ★ Este proceso de transmitir una solicitud y recibir una respuesta se conoce como transacción. ★ La idea detrás de 9p es codificar las operaciones que vinculan archivos entre programas cliente y el sistema de archivos, permitiendo que los mensajes viajen sobre la red. ★ La distribución de Plan 9 incluye un servidor 9p conocido como u9fs. Links y referencias ★ Sistemas distribuidos. Conceptos y diseño. George Coulouris. 3a Edición. 2001 ★ https://www.fceia.unr.edu.ar/~hcaste/plan9.html ★ https://www.ecured.cu/Amoeba ★ https://omicrono.elespanol.com/2017/11/minix-sistema-operativo-m as-utilizado-mundo-nadie-conoce/ ★ http://9p.cat-v.org/ https://www.fceia.unr.edu.ar/~hcaste/plan9.html https://www.ecured.cu/Amoeba https://omicrono.elespanol.com/2017/11/minix-sistema-operativo-mas-utilizado-mundo-nadie-conoce/ https://omicrono.elespanol.com/2017/11/minix-sistema-operativo-mas-utilizado-mundo-nadie-conoce/ Diapositiva 1 Clientes y servidores Clientes y servidores Clientes y servidores Sistemas Distribuidos Sistemas Distribuidos Sistemas Distribuidos Sistemas Distribuidos - Ventajas Sistemas Distribuidos - Ventajas Sistemas Distribuidos - Limitaciones Sistemas Distribuidos - Caracterı́sticas Transparencia Transparencia Transparencia Comunicación Pasaje de Mensajes Pasaje de Mensajes Pasaje de Mensajes Pasaje de Mensajes Llamadas a Procedimientos Remotos (RPC) El modelo RPC Transparencia de RPC RPC Componentes de RPC Componentes de RPC Grupos de comunicación Clusters Caracterı́sticas de un cluster Procesos en Sistemas Distribuidos Migración de Procesos Migración de Procesos Migración de Procesos Diapositiva 33 Sincronización en sistemas distribuidos Sincronización en sistemas distribuidos Exclusión mutua Exclusión mutua - Algoritmos centralizados Exclusión mutua - Algoritmos distribuidos Algoritmos de Elección- Algoritmo Bully Algoritmos de Elección- Algoritmo del anillo Transacciones Atómicas Transacciones Atómicas - Propiedades Interbloqueos (Deadlocks) Interbloqueos (Deadlocks) El soporte del sistema operativo El soporte del sistema operativo El soporte del sistema operativo Protección Procesos e hilos Procesos e hilos Creación de un proceso nuevo Hilos Hilos Hilos frente a múltiples procesos Hilos frente a múltiples procesos Comunicación e invocación Comunicación e invocación Comunicación e invocación Invocaciones concurrentes Diapositiva 60 En definitiva... En definitiva... Procesamiento en tiempo real Sistemas de tiempo real Sistemas de tiempo real Casos de estudio: Análisis de SO distribuidos Plan 9 Plan 9 Minix Amoeba 9p 9p Links y referencias
Compartir