You are on page 1of 8

Sistemas Operativos Distribuidos

Referencias Bsicas

Sistemas Operativos Distribuidos

Distributed Operating Systems


A. S. Tanenbaum Prentice-Hall, 1995

Presentacin

Distributed Systems: Concepts and Design


G. Coulouris, J. Dollimore, T. Kindberg Addison-Wesley, 2001

Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects (Vol 2).
D. Schmidt, M. Stal, H. Rohnert, F. Bruschmann Wiley, 2000
Sistemas Operativos Distribuidos 1 Fernando Prez Costoya Jos Mara Pea Snchez

Referencias Bsicas
Distributed Operating Systems: Concepts & Practice
D. L. Galli Prentice-Hall, 2000

ndice del Curso


ndice de Temas
Introduccin y conceptos Comunicacin en sistemas distribuidos Sistemas de ficheros distribuidos y servicios de directorio. Sincronizacin y coordinacin Sistemas de memoria distribuida Gestin de procesos Seguridad en sistemas distribuidos
Sistemas Operativos Distribuidos 3

Distributed Operating Systems & Algorithms


R. Chow, T. Johnson Addison-Wesley, 1997

Entornos Distribuidos y Casos de Estudio

Tecnologas CORBA DCOM DCE Java:


Jini RMI EJB

Traduccin al Castellano Sistemas Operativos Distribuidos


A. S. Tanenbaum Prentice-Hall, 1996
Sistemas Operativos Distribuidos 2 Fernando Prez Costoya Jos Mara Pea Snchez

Fernando Prez Costoya Jos Mara Pea Snchez

Objetivos
Conceptos (Objetivo Principal)
Diseo de sistemas distribuidos (No slo sistemas operativos). Problemtica de sistemas distribuidos:
Transacciones y concurrencia. Nombrado y organizacin. Seguridad. Configuracin y optimizacin.

Direcciones de Contacto
Informacin Actualizada: Pgina de la asignatura:
http://laurel.datsi.fi.upm.es/~ssoo/SOD/

Profesores Responsables: Fernando Prez Costoya

Tcnicas (Objetivo Secundario)


Tecnologas y entornos de desarrollo distribuidos. Herramientas de desarrollo. Gua de referencias.
Sistemas Operativos Distribuidos 4 Fernando Prez Costoya Jos Mara Pea Snchez

<fperez@fi.upm.es> <jmpena@fi.upm.es>

Jos Mara Pea Snchez

Sistemas Operativos Distribuidos 5

Fernando Prez Costoya Jos Mara Pea Snchez

1 - Introduccin

Sistemas Operativos Distribuidos

Contenidos del Tema

Sistemas Operativos Distribuidos

Evolucin de los sistemas operativos:


Definicin de sistema centralizado. Definicin de sistema distribuido.

Introduccin y Conceptos

Ventajas y desventajas de los sistemas distribuidos. Sistemas operativos distribuidos. Sistemas operativos de red. Middlewares. Objetivos de un sistema distribuido. Componentes de un sistema distribuido. Notacin y formalismos.
Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos 7

Arquitectura de Sistemas Centralizados


nico computador (caro y de gran potencia) con terminales alfanumricos directamente conectados. Entornos de empresa:
Soporte multiusuario Uso de mainframes o minicomputadores

Arquitectura de Sistemas Distribuidos


Conjunto de procesadores conectados por una red Cada usuario tiene capacidad de procesamiento local que permite interfaces de usuario sofisticadas. Uso intensivo de la red para compartir recursos:
dispositivos datos procesadores (migracin de procesos)

Entornos cientficos:
Ejecucin eficiente de aplicaciones Uso de supercomputadores

Uso ocasional de la red:


Transferir ficheros o logins remotos

Capacidad global de procesamiento disponible para:


Servicio a mltiples usuarios Ejecucin paralela de una aplicacin

Interfaz de usuario poco amigable


Interfaces grficas gastan muchos recursos
Sistemas Operativos Distribuidos 8 Fernando Prez Costoya Jos Mara Pea Snchez Sistemas Operativos Distribuidos 9 Fernando Prez Costoya Jos Mara Pea Snchez

Nacimiento de los Sistemas Distribuidos


Causas: Tecnologa de microprocesadores: relacin potencia/coste. Tecnologas de comunicaciones:
Protocolos de comunicaciones. Redes de rea local (LAN): Coste y prestaciones. Internet

Caractersticas de un Sistema Distribuido


Definicin: [Tan95] Un sistema distribuido es una coleccin de computadoras independientes que aparece ante los usuarios del sistema como una nica computadora. 5 Recursos distribuidos para un trabajo comn. 5 N computadoras Un servicio nico a los usuarios. Tradicionalmente (1972):
Clasificacin de Flynn: SISD, SIMD, MISD, MIMD

Factores comerciales:
Comercio electrnico: e-comerce. Informacin distribuida (WWW). Reduccin de costes.
Sistemas Operativos Distribuidos 10 Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos 11

Fernando Prez Costoya Jos Mara Pea Snchez

1 - Introduccin

Sistemas Operativos Distribuidos

Caractersticas de un Sistema Distribuido


Un sistema distribuido implica las siguientes consecuencias: No existe un reloj comn: Afecta a cualquier aspecto de coordinacin y mensajes. Concurrencia global: Los elementos del sistema se ejecutan realmente en paralelo. Fallos independientes: Los modos de fallo del sistema pueden ser locales a un subconjunto de sus componentes.

Evolucin de los Sistemas Operativos


Sistemas Operativos Centralizados. Sistemas Operativos en Red Sistemas Operativos Distribuidos Sistemas Cooperativos
Sistema Objetivos Gestin de recursos, Sistema Operativo Mquina extendida, Centralizado (Virtualidad) Sistema Operativo Comparticin de recursos, en Red (Interoperabilidad) Vista nica de varias Sistema Operativo computadoras Distribuido (Transparencia) Sistema Cooperativa Trabajo cooperativo, (Autonoma)
Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos 12

Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos 13

Capas de un Sistema Operativo


La visin esquemtica de un sistema operativo comprende los siguientes niveles: Hardware. Ncleo (kernel). Servicios del sistema. Programas de aplicacin. Usuarios.
Usuarios Aplicaciones Servicios Kernel Hardware

Responsabilidades del Kernel


Servicios Kernel
Computadora

Kernels Monolticos: Muchas funcionalidades dentro del kernel: planificador, gestin de memoria, drivers,...

Kernels: Kernels: Se sacan funcionalidades del kernel. Slo quedan: (i) comunicacin entre procesos, (ii) administracin de memoria, (iii) administracin y planificacin de bajo nivel y (iv) entrada/salida de bajo nivel

Servicios Kernel
Computadora

Servicios
Kernel Kernel Kernel

Servicios Distribuidos: Estructura de sistema distribuido. Dependiendo del nivel se habla de: Sistema Operativo Distribuido, Sistema en Red o (Cooperativo).
Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos 14

Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos 15

Heterogeneidad de un Sistema Distribuido


Un sistema distribuido puede estar formado por multitud de elementos conectados por redes LAN o WAN:
Terminales X y Estaciones Java (Network Computer). PCs y estaciones de trabajo. Sistemas porttiles (redes mviles: GSM, WAP y ...) Minicomputadores. Supercomputadores. Multiprocesadores con memoria compartida o no. Servidores especializados (de almacenamiento, de impresin, ...). Sistemas empotrados.

Ventajas de los Sistemas Distribuidos


Economa: Buena relacin rendimiento/coste
Ley de Grosch (obsoleta):
Prestaciones = cte x (Precio)2

Alto rendimiento: Procesamiento paralelo. Soporte de aplicaciones inherentemente distribuidas.


Por ejemplo: empresa distribuida geogrficamente

Fomentada por los siguientes factores:


Extensibilidad de los sistemas distribuidos. Especializacin de los servidores.
Sistemas Operativos Distribuidos 16 Fernando Prez Costoya Jos Mara Pea Snchez

Capacidad de crecimiento: Escalabilidad. Fiabilidad y disponibilidad: Tolerancia a (ciertos) fallos. Carcter abierto y heterogneo:
Estndares de interoperabilidad.

Compartir recursos y datos.


Sistemas Operativos Distribuidos 17 Fernando Prez Costoya Jos Mara Pea Snchez

1 - Introduccin

Sistemas Operativos Distribuidos

Desventajas de los Sistemas Distribuidos


Necesidad de un nuevo tipo de software:
Ms complejo. No hay todava un acuerdo sobre cmo debe ser.

Aplicaciones de los Sistemas Distribuidos


Servicios Internet: correo, noticias, Web, ... nuevos servicios. Redes corporativas e intranets. Procesamiento paralelo:
Procesamiento masivo (solucin a la eficiencia). Topologa distribuida (problemas de naturaleza distribuida)

Red de interconexin introduce nuevos problemas:


Prdida de mensajes y saturacin. Latencia puede provocar que al recibir un dato ya est obsoleto. La red es un elemento crtico.

Seguridad y confidencialidad

Sistemas distribuidos de gestin de bases de datos y explotacin de los mismos: e.g. Data Warehousing. Aplicaciones multimedia. Sistemas industriales distribuidos y aplicaciones de control. Sistemas distribuidos de tiempo real. ..... < y muchos ms >
Sistemas Operativos Distribuidos 19 Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos 18

Fernando Prez Costoya Jos Mara Pea Snchez

Distribucin de los Sistemas Operativos


Sistemas operativos para multiprocesadores con memoria compartida (SMP):
Software fuertemente acoplado sobre Hardware fuertemente acoplado

Sistemas Operativos para SMPs


Arquitecturas de varios procesadores (2 a 8) con memoria compartida de acceso uniforme (SMP: Simetric Multiprocesors) Caractersticas:
Ligeras variaciones sobre versiones tradicionales. Slo hay una copia del sistema operativo. Concurrencia se traduce en paralelismo real ( tiempo compartido). Comercialmente aceptados (Linux, WinNT, Solaris, AIX, ...). Plantea retos para: la ejecucin del ncleo en varios procesadores (llamadas al sistema concurrentes) , los mecanismos de sincronizacin (spin-locks), optimizacin y planificacin (afinidad al procesador), ...
Fernando Prez Costoya Jos Mara Pea Snchez

Sistema operativo distribuido (SOD):


Software fuertemente acoplado sobre Hardware dbilmente acoplado

Sistema operativo en red:


Software dbilmente acoplado sobre Hardware dbilmente acoplado

Sistemas Operativos Distribuidos 20

Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos 21

Sistemas Operativos Distribuidos (SOD)


Definicin: [Gal00] Un sistema operativo distribuido es un conjunto de procesadores interconectados por redes que ocultan dicha caracterstica mostrando una visin al usuario de uniprocesador virtual. Caractersticas:
Ejecuta sobre un sistema distribuido haciendo creer a los usuarios que se trata de un sistema centralizado. Trasparencia: Debe ocultar factores derivados de la distribucin. Es fcil de decir pero no de hacer. Cada sistema alcanza hasta cierto punto esta meta. Los fracasos pueden generar frustraciones en los usuarios.
Sistemas Operativos Distribuidos 22 Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos (SOD)


Problemtica:
Cada nodo tiene su copia del sistema operativo: Qu tareas se realizan localmente y cules son globales? Cmo lograr exclusin mutua sin memoria compartida? Cmo tratar los interbloqueos sin un estado global? Planificacin de procesos: Cada copia del sistema operativo tiene su cola de planificacin (migracin de procesos). Cmo crear un rbol de ficheros nico? Implicaciones de la falta de reloj nico, la presencia de fallos o la heterogeneidad.

Principal aportacin:
Se han desarrollado nuevos conceptos y planteamientos que se han podido trasladar a los otros modelos de sistemas distribuidos.
Sistemas Operativos Distribuidos 23 Fernando Prez Costoya Jos Mara Pea Snchez

1 - Introduccin

Sistemas Operativos Distribuidos

Evolucin de los SOD


Primeros SO de red:
Incluir servicios de red en SO convencional Ejemplo: UNIX 4BSD (1980)

Sistemas Operativos en Red


Definicin: [Cho97] Red de computadoras dbilmente acopladas en las que no existe un control externo directo sobre el hardware/software de cada computadora para la comparticin de recursos. Caractersticas:
No dan la visin de uniprocesador virtual (mquinas independientes). Cada una ejecuta una copia de sistema operativo (distinto). Sistema operativo convencional + utilidades de red. Protocolos de comunicacin para intercambio de recursos y acceso a servicios de alto nivel. Desde rcp/rlogin hasta Open Network Computing (ONC) de Sun.
Sistemas Operativos Distribuidos 25 Fernando Prez Costoya Jos Mara Pea Snchez

Paulatina incorporacin de ms funcionalidad:


ONC de Sun (1985): incluye NFS, RPC, NIS

Primeros SOD:
Nuevos SO pero basados en arquitecturas convencionales (monolticas) Ejemplo: Sprite de la Universidad de Berkeley (1988)

SOD basados en m-kernel. Ejemplos:

Sistemas Operativos Distribuidos 24

Mach de CMU (1986) Amoeba diseado por Tanenbaum (1984) Chorus de INRIA en Francia (1988)
Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Cooperativos
Definicin: [Cho97] Sistemas software orientados a servicios de alto nivel que requieren el soporte de mecanismos de comunicacin en base a los cuales los protocolos de comunicaciones de alto nivel se construyen. Caractersticas:
Se mantiene el grado de trasparencia sacrificando la visin de nico sistema. Son sistemas autnomos independientes. Se construyen en base a middlewares (CORBA, DCE, DCOM, ...) Los sistemas resultan de la integracin de mltiples servicios proporcionados por diferentes elementos de la red.
Sistemas Operativos Distribuidos 26 Fernando Prez Costoya Jos Mara Pea Snchez

Middleware
Middleware:
Capa de software que ejecuta sobre el sistema operativo local ofreciendo unos servicios distribuidos estandarizados. Sistema abierto independiente del fabricante. No depende del hardware y sistema operativo subyacente.

Ejemplos:
DCE (Open Group). CORBA (OMG). ...
SO Hardware
Sistemas Operativos Distribuidos 27

Middleware SO Hardware SO Hardware


Fernando Prez Costoya Jos Mara Pea Snchez

Objetivos de un Sistema Distribuido


En general el desarrollo de sistemas distribuidos intenta poner solucin a los siguientes objetivos:
Transparencia. Fiabilidad. Rendimiento. Capacidad de crecimiento. Flexibilidad. Seguridad.

Transparencia
Existen varios perfiles de trasparencia:
Acceso: Manera de acceder a recurso local igual que a remoto. Posicin: Se accede a los recursos sin conocer su localizacin. Migracin: Recursos pueden migrar sin afectar a los usuarios. Concurrencia: Acceso concurrente no afecta a los usuarios. Replicacin: La existencia de rplicas no afecta a los usuarios. Fallos: La ocurrencia de fallos no afecta a los usuarios. Crecimiento: El crecimiento del sistema no afecta a los usuarios. Heterogeneidad:Carcter heterogneo no afecta a los usuarios.

Sistemas operativos distribuidos, sistemas en red y sistemas cooperativos requieren diferentes facetas de estos objetivos.
Sistemas Operativos Distribuidos 28

Es buena tanta transparencia?


A veces el usuario precisa conocer cmo es el sistema subyacente
Sistemas Operativos Distribuidos 29

Fernando Prez Costoya Jos Mara Pea Snchez

Fernando Prez Costoya Jos Mara Pea Snchez

1 - Introduccin

Sistemas Operativos Distribuidos

Fiabilidad
Fiabilidad como disponibilidad:
Tericamente: OR-lgico de sus componentes. En ciertos casos: AND-lgico de varios componentes. Mecanismos: redundancia y evitar componentes crticos. Tolerancia a fallos: Los componuentes pueden no caerse pero funcionan de forma errnea.

Rendimiento
Rendimiento para un servicio multiusuario:
Objetivo: Rendimiento no peor que un sistema centralizado

Rendimiento para la ejecucin paralela de aplicaciones:


Objetivo: Rendimiento proporcional a procesadores empleados

Fiabilidad como coherencia:


Se dificulta con la redundancia: inconsistencias

Factores:
Mayor nmero de procesadores Elementos crticos:
Especialmente la red: Latencia de la comunicacin, uso de caches, ...

La fiabilidad est relacionada con la seguridad (otro objetivo).

Grano de paralelismo (relacin proceso/comunicacin). Replicacin de elementos/tareas. Equilibrado de carga.


Sistemas Operativos Distribuidos 31 Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos 30

Fernando Prez Costoya Jos Mara Pea Snchez

Capacidad de Crecimiento
Diseo de un sistema distribuido debe evitar cuellos de botella:
Componentes centralizados Tablas centralizadas Algoritmos centralizados

Flexibilidad
Capacidad para ampliarlo o extenderlo con nuevas funcionalidades de forma sencilla. Definicin de responsabilidades:
Sistemas con -kernel:
Comunicacin entre procesos. Cierta administracin de memoria. Administracin y planificacin de procesos (limitada y de bajo nivel). Entrada/salida de bajo nivel.

Problemtica agravada por el nmero de elementos:


Ninguna mquina tiene informacin completa del estado del sistema Las decisiones se basan slo en informacin disponible localmente El fallo de una mquina no debe invalidar el algoritmo No debe asumir la existencia de un reloj global

El resto, servicios a nivel de usuario.

Sistemas Operativos Distribuidos 32

Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos 33

Fernando Prez Costoya Jos Mara Pea Snchez

Flexibilidad
Un elemento fundamental de la flexibilidad son los sistemas abiertos. El desarrollo de estos sistemas requiere:
Sus interfaces y protocolos deberan ser pblicos. Contrario a tecnologa propietaria. Uso de estndares siempre que sea posible. Disponibilidad de su cdigo fuente (libremente o no). Regulacin por parte de un colectivo (usuarios u organizaciones) y no por particulares (fabricantes).

Componentes de un Sistema Distribuido


El desarrollo de un sistema distribuido complejo requiere el uso de las siguientes funciones y servicios:
Servicios de comunicacin. Sistemas de ficheros y nombrado distribuido. Servicios de sincronizacin y coordinacin. Memoria compartida distribuida. Gestin de procesos. Servicio de seguridad.

Estas funcionalidades se plasman en elementos concretos del sistema: componentes, protocolos, algoritmos, soporte hardware/software, ...
Sistemas Operativos Distribuidos 35 Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos 34

Fernando Prez Costoya Jos Mara Pea Snchez

1 - Introduccin

Sistemas Operativos Distribuidos

Servicios de Comunicacin
Modelos de interaccin:
Cliente/servidor: (2-niveles, 3-niveles o n-niveles) Peer-to-peer: Equilibrio de roles. Intermediarios: Proxy, Dispacher, Caches, ... Unicast vs Multicast Fiabilidad. Sncronos vs Asncronos

Sistemas de Ficheros Distribuidos


Identificacin, localizacin y acceso a elementos del entorno distribuido. Comprende:
Sistemas de ficheros distribuidos (SFD): NFS, AFS. Servicios de nombres: DNS, COS-Naming (CORBA). Servicios de directorio: X.500, LDAP, JNDI.

Tecnologas de comunicacin:
Paso de mensajes: Berkeley sockets. Llamada a procedimientos remotos: RPC. Tecnologas de objetos distribuidos: CORBA, DCOM, EJB Cdigo mvil: Entornos de agentes.
Fernando Prez Costoya Jos Mara Pea Snchez

Cuestiones:
Arquitectura de los servicios. Almacenamiento intermedio: caching. Replicacin y coherencia.
Sistemas Operativos Distribuidos 37 Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos 36

Servicios de Sincronizacin y Coordinacin


Comprende los conceptos de:
Tiempo en entornos distribuidos: Sincronizacin de relojes y relojes lgicos. Concurrencia y Paralelismo: Exclusin mutua e interbloqueos. Algoritmos distribuidos: Eleccin de lder, coordinacin, ... Transacciones: Propiedades ACID, modelos de commit/rollback.

Memoria Compartida Distribuida (DSM)


Hardware:
Memoria fsicamente compartida. Memoria distribuida (lgicamente compartida). Acceso uniforme vs acceso no uniforme.

Distributed Shared Memory:


Basada en pginas. Basada en variables compartidas. Basada en objetos.

Afecta a otros servicios:


Nombrado e identificacin. Seguridad y fiabilidad. Comunicaciones. ...
Fernando Prez Costoya Jos Mara Pea Snchez

Modelos de consistencia
Sistemas Operativos Distribuidos 39 Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos 38

Gestin de Procesos
Taxonoma de los procesos:
Niveles de granularidad. Congelacin de procesos (persistencia). Migracin de procesos (estado/cdigo).

Servicio de Seguridad
Tipologa de los ataques:
Privacidad y confidencialidad. Autenticacin (spoofing). Denegacin de servicio.

Planificacin de procesos:
Planificacin interna: Procesos y threads. Planificacin global. Migracin y equilibrado de carga. Aprovechamiento de mquinas inactivas.

Modelos y herramientas de seguridad:


Cifrado: clave pblica (RSA) y privada (DES). Protocolos de seguridad: IPsec, SSL. Certificados y firmas digitales: X.509. Elementos de seguridad: Firewalls.

Entornos seguros: e.g. Kerberos.


Sistemas Operativos Distribuidos 40 Fernando Prez Costoya Jos Mara Pea Snchez Sistemas Operativos Distribuidos 41 Fernando Prez Costoya Jos Mara Pea Snchez

1 - Introduccin

Sistemas Operativos Distribuidos

Notacin
La asignatura tiene dos partes:
Parte de la asignatura dependiente de ciertas tecnologas:
API de sockets. RPCs. CORBA. DCOM. Java: RMI, EJB y Jini. Conceptos. Tcnicas. Algoritmos. Estrategias de diseo.

Notacin y Formalismos
Objetivo de la notacin: No atar ninguna solucin a una tecnologa concreta. Notaciones y formalismos usados:
Pseudocdigo: Algoritmos y ejemplos. Objetos: Escenarios de interaccin, patrones distribuidos. Formalismos matemticos: Seguridad, sincronizacin. Metodologas y arquitecturas: Nomenclatura y semntica.

Parte de la asignatura independiente de tecnologas:

Se optar por el ms apropiado en cada caso. No debe ser un impedimento para entender el concepto.
Fernando Prez Costoya Jos Mara Pea Snchez Sistemas Operativos Distribuidos 43 Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos 42

Wrapper Facade
Patrn de diseo que encapsula los factores y caractersticas dependientes de las APIs de desarrollo del sistema operativo o tecnologa usada. [SSR00] Escenario:
Aplicacin
mtodo1(){ mtodo1(){ funcinA(); funcinA(); funcinB(); funcinB(); } }

Wrapper Facade
Ejemplo:
Semforo genrico. Protege un regin de exclusin mtua acquire(): entrada en la regin. release(): salida de la regin. Implementacin: Depende del SO.

Wrapper Facade
llamadas Datos

llamadas llamadas llamadas

mtodo1() ... metodoN()

API FuncinA API FuncinB API FuncinC

mtodoN(){ mtodoN(){ funcinC(); funcinC(); } }

class Thread_Mutex { public: Thread_Mutex(); Thread_Mutex(); void acquire(); void release(); };


Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos 44

Fernando Prez Costoya Jos Mara Pea Snchez

Sistemas Operativos Distribuidos 45

1 - Introduccin

You might also like