Logo Studenta

Sistemas Operativos distribuidos y de tiempo real u8 - Franco Corts-Romeo

¡Este material tiene más páginas!

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

Continuar navegando