Beruflich Dokumente
Kultur Dokumente
Distribuidos
Presentacin
Referencias Bsicas
Distributed Operating Systems
A. S. Tanenbaum
Prentice-Hall, 1995
Referencias Bsicas
Distributed Operating Systems: Concepts & Practice
D. L. Galli
Prentice-Hall, 2000
Traduccin al Castellano
Sistemas Operativos Distribuidos
A. S. Tanenbaum
Prentice-Hall, 1996
Entornos Distribuidos
y
Casos de Estudio
ndice de Temas
Tecnologas
CORBA
DCOM
DCE
Java:
Jini
RMI
EJB
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
<fperez@fi.upm.es>
Sistemas Operativos
Distribuidos
Introduccin y
Conceptos
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
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)
Factores comerciales:
Comercio electrnico: e-comerce.
Informacin distribuida (WWW).
Reduccin de costes.
Sistemas Operativos Distribuidos
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
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.
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
Hardware.
Ncleo (kernel).
Servicios del sistema.
Programas de aplicacin.
Usuarios.
Usuarios
Aplicaciones
Servicios
Kernel
Hardware
Kernels Monolticos:
Muchas funcionalidades dentro del kernel:
planificador, gestin de memoria, drivers,...
Computadora
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 Kernel Kernel
Servicios
Kernel
Computadora
Servicios Distribuidos:
Estructura de sistema distribuido. Dependiendo
del nivel se habla de: Sistema Operativo
Distribuido, Sistema en Red o (Cooperativo).
Heterogeneidad de un Sistema
Distribuido
Un sistema distribuido puede estar formado por multitud de
elementos conectados por redes LAN o WAN:
Seguridad y confidencialidad
Principal aportacin:
Se han desarrollado nuevos conceptos y planteamientos que se han
podido trasladar a los otros modelos de sistemas distribuidos.
Sistemas Operativos Distribuidos
Primeros SOD:
Nuevos SO pero basados en arquitecturas convencionales
(monolticas)
Ejemplo: Sprite de la Universidad de Berkeley (1988)
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
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
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:
Fiabilidad
Fiabilidad como disponibilidad:
Rendimiento
Rendimiento para un servicio multiusuario:
Objetivo: Rendimiento no peor que un sistema centralizado
Factores:
Mayor nmero de procesadores
Elementos crticos:
Especialmente la red: Latencia de la comunicacin, uso de caches, ...
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:
Flexibilidad
Un elemento fundamental de la flexibilidad son los sistemas
abiertos.
El desarrollo de estos sistemas requiere:
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.
Servicios de Comunicacin
Modelos de interaccin:
Tecnologas de comunicacin:
Cuestiones:
Arquitectura de los servicios.
Almacenamiento intermedio: caching.
Replicacin y coherencia.
Sistemas Operativos Distribuidos
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.
Nombrado e identificacin.
Seguridad y fiabilidad.
Comunicaciones.
...
Modelos de consistencia
Sistemas Operativos Distribuidos
Gestin de Procesos
Taxonoma de los procesos:
Niveles de granularidad.
Congelacin de procesos (persistencia).
Migracin de procesos (estado/cdigo).
Planificacin de procesos:
Servicio de Seguridad
Tipologa de los ataques:
Privacidad y confidencialidad.
Autenticacin (spoofing).
Denegacin de servicio.
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:
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
Wrapper Facade
llamadas Datos
mtodo1(){
mtodo1(){
funcinA();
funcinA();
funcinB();
funcinB();
}}
mtodo1()
...
metodoN()
llamadas
API FuncinA
llamadas
API FuncinB
llamadas
API FuncinC
mtodoN(){
mtodoN(){
funcinC();
funcinC();
}}
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.
class Thread_Mutex
{
public:
Thread_Mutex();
Thread_Mutex();
void acquire();
void release();
};