Академический Документы
Профессиональный Документы
Культура Документы
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
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
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>
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.
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.
Tradicionalmente (1972):
Clasificacin de Flynn: SISD, SIMD, MISD, MIMD
Hardware. Usuarios
Ncleo (kernel). Aplicaciones
Servicios del sistema.
Servicios
Programas de aplicacin.
Kernel
Usuarios.
Hardware
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).
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), ...
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
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.
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.
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
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.
Modelos de consistencia
Planificacin de procesos:
Planificacin interna: Procesos y threads.
Planificacin global.
Migracin y equilibrado de carga.
Aprovechamiento de mquinas inactivas.
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();
};