Вы находитесь на странице: 1из 46

Sistemas Operativos

Distribuidos

Presentacin
Referencias Bsicas
Distributed Operating Systems
A. S. Tanenbaum
Prentice-Hall, 1995
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

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
Referencias Bsicas
Distributed Operating Systems: Concepts & Practice
D. L. Galli
Prentice-Hall, 2000
Distributed Operating Systems & Algorithms
R. Chow, T. Johnson
Addison-Wesley, 1997

Traduccin al Castellano
Sistemas Operativos Distribuidos
A. S. Tanenbaum
Prentice-Hall, 1996
Fernando Prez Costoya
Sistemas Operativos Distribuidos Jos Mara Pea
ndice del Curso

ndice de Temas
Introduccin y conceptos
Comunicacin en sistemas Tecnologas

Entornos Distribuidos
distribuidos

Casos de Estudio
CORBA
Sistemas de ficheros distribuidos
DCOM
y servicios de directorio.
DCE

y
Sincronizacin y coordinacin
Sistemas de memoria distribuida
Java:
Jini
Gestin de procesos RMI
Seguridad en sistemas EJB
distribuidos

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
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.

Tcnicas (Objetivo Secundario)


Tecnologas y entornos de desarrollo distribuidos.
Herramientas de desarrollo.
Gua de referencias.

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
Direcciones de Contacto

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

Profesores Responsables:
Fernando Prez Costoya
<fperez@fi.upm.es>
Jos Mara Pea Snchez
<jmpena@fi.upm.es>

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
Sistemas Operativos
Distribuidos

Introduccin y
Conceptos
Contenidos del Tema
Evolucin de los sistemas operativos:
Definicin de sistema centralizado.
Definicin de sistema distribuido.
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


Sistemas Operativos Distribuidos Jos Mara Pea
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
Entornos cientficos:
Ejecucin eficiente de aplicaciones
Uso de supercomputadores
Uso ocasional de la red:
Transferir ficheros o logins remotos
Interfaz de usuario poco amigable
Interfaces grficas gastan muchos recursos
Fernando Prez Costoya
Sistemas Operativos Distribuidos Jos Mara Pea
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)
Capacidad global de procesamiento disponible para:
Servicio a mltiples usuarios
Ejecucin paralela de una aplicacin

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
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

Factores comerciales:
Comercio electrnico: e-comerce.
Informacin distribuida (WWW).
Reduccin de costes.

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
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.

Recursos distribuidos para un trabajo comn.


N computadoras Un servicio nico a los usuarios.

Tradicionalmente (1972):
Clasificacin de Flynn: SISD, SIMD, MISD, MIMD

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
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.

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
Evolucin de los Sistemas
Operativos
Sistemas Operativos Sistema Objetivos
Centralizados. Sistema Operativo
Gestin de recursos,
Mquina extendida,
Centralizado
(Virtualidad)
Sistemas Operativos
en Red Sistema Operativo Comparticin de recursos,
en Red (Interoperabilidad)

Sistemas Operativos Sistema Operativo


Vista nica de varias
computadoras
Distribuidos Distribuido
(Transparencia)

Sistema Trabajo cooperativo,


Sistemas Cooperativa (Autonoma)
Cooperativos
Fernando Prez Costoya
Sistemas Operativos Distribuidos Jos Mara Pea
Capas de un Sistema Operativo

La visin esquemtica de un sistema operativo comprende los


siguientes niveles:

Hardware. Usuarios
Ncleo (kernel). Aplicaciones
Servicios del sistema.
Servicios
Programas de aplicacin.
Kernel
Usuarios.
Hardware

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
Responsabilidades del Kernel

Servicios Kernels Monolticos:


Muchas funcionalidades dentro del kernel:
Kernel
planificador, gestin de memoria, drivers,...
Computadora

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

Servicios Distribuidos:
Servicios Estructura de sistema distribuido. Dependiendo
del nivel se habla de: Sistema Operativo
Kernel Kernel Kernel
Distribuido, Sistema en Red o (Cooperativo).

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
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.
Fomentada por los siguientes factores:
Extensibilidad de los sistemas distribuidos.
Especializacin de los servidores.
Fernando Prez Costoya
Sistemas Operativos Distribuidos Jos Mara Pea
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
Capacidad de crecimiento: Escalabilidad.
Fiabilidad y disponibilidad: Tolerancia a (ciertos) fallos.
Carcter abierto y heterogneo:
Estndares de interoperabilidad.
Compartir recursos y datos.
Fernando Prez Costoya
Sistemas Operativos Distribuidos Jos Mara Pea
Desventajas de los Sistemas
Distribuidos
Necesidad de un nuevo tipo de software:
Ms complejo.
No hay todava un acuerdo sobre cmo debe ser.
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

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
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)
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 >
Fernando Prez Costoya
Sistemas Operativos Distribuidos Jos Mara Pea
Distribucin de los Sistemas
Operativos
Sistemas operativos para multiprocesadores con memoria
compartida (SMP):
Software fuertemente acoplado
sobre Hardware fuertemente acoplado
Sistema operativo distribuido (SOD):
Software fuertemente acoplado
sobre Hardware dbilmente acoplado
Sistema operativo en red:
Software dbilmente acoplado
sobre Hardware dbilmente acoplado

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
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


Sistemas Operativos Distribuidos Jos Mara Pea
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.
Fernando Prez Costoya
Sistemas Operativos Distribuidos Jos Mara Pea
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.
Fernando Prez Costoya
Sistemas Operativos Distribuidos Jos Mara Pea
Evolucin de los SOD
Primeros SO de red:
Incluir servicios de red en SO convencional
Ejemplo: UNIX 4BSD (1980)
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:
Mach de CMU (1986)
Amoeba diseado por Tanenbaum (1984)
Chorus de INRIA en Francia (1988)
Fernando Prez Costoya
Sistemas Operativos Distribuidos Jos Mara Pea
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.
Fernando Prez Costoya
Sistemas Operativos Distribuidos Jos Mara Pea
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.
Fernando Prez Costoya
Sistemas Operativos Distribuidos Jos Mara Pea
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).
... Middleware

SO SO SO

Hardware Hardware Hardware

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
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.

Sistemas operativos distribuidos, sistemas en red y sistemas


cooperativos requieren diferentes facetas de estos objetivos.

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
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.

Es buena tanta transparencia?


A veces el usuario precisa conocer cmo es el sistema subyacente

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
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.
Fiabilidad como coherencia:
Se dificulta con la redundancia: inconsistencias

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

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
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

Factores:
Mayor nmero de procesadores
Elementos crticos:
Especialmente la red: Latencia de la comunicacin, uso de caches, ...
Grano de paralelismo (relacin proceso/comunicacin).
Replicacin de elementos/tareas.
Equilibrado de carga.

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
Capacidad de Crecimiento

Diseo de un sistema distribuido debe evitar cuellos de botella:


Componentes centralizados
Tablas centralizadas
Algoritmos centralizados

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

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
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.

El resto, servicios a nivel de usuario.

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
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).

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
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, ...
Fernando Prez Costoya
Sistemas Operativos Distribuidos Jos Mara Pea
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

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
Sistemas Operativos Distribuidos Jos Mara Pea
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.

Cuestiones:
Arquitectura de los servicios.
Almacenamiento intermedio: caching.
Replicacin y coherencia.
Fernando Prez Costoya
Sistemas Operativos Distribuidos Jos Mara Pea
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.

Afecta a otros servicios:


Nombrado e identificacin.
Seguridad y fiabilidad.
Comunicaciones.
...

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
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.

Modelos de consistencia

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
Gestin de Procesos
Taxonoma de los procesos:
Niveles de granularidad.
Congelacin de procesos (persistencia).
Migracin de procesos (estado/cdigo).

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

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
Servicio de Seguridad

Tipologa de los ataques:


Privacidad y confidencialidad.
Autenticacin (spoofing).
Denegacin de servicio.

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.


Fernando Prez Costoya
Sistemas Operativos Distribuidos Jos Mara Pea
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.
Parte de la asignatura independiente de tecnologas:
Conceptos.
Tcnicas.
Algoritmos.
Estrategias de diseo.

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
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.

Se optar por el ms apropiado en cada caso.


No debe ser un impedimento para entender el concepto.

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
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: Wrapper Facade llamadas


API FuncinA
llamadas Datos llamadas
Aplicacin API FuncinB
llamadas
API FuncinC
mtodo1(){ mtodo1()
mtodo1(){
funcinA();
funcinA();
... mtodoN(){
mtodoN(){
funcinB();
funcinB(); metodoN() funcinC();
funcinC();
}} }}

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea
Wrapper Facade

Ejemplo:
Semforo genrico.
Protege un regin de class Thread_Mutex
exclusin mtua {
acquire(): entrada public:
en la regin.
release(): salida Thread_Mutex();
de la regin. Thread_Mutex();
void acquire();
Implementacin:
Depende del SO. void release();
};

Fernando Prez Costoya


Sistemas Operativos Distribuidos Jos Mara Pea

Вам также может понравиться