Professional Documents
Culture Documents
Referencias Bsicas
Presentacin
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
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/
<fperez@fi.upm.es> <jmpena@fi.upm.es>
1 - Introduccin
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
Entornos cientficos:
Ejecucin eficiente de aplicaciones Uso de supercomputadores
Factores comerciales:
Comercio electrnico: e-comerce. Informacin distribuida (WWW). Reduccin de costes.
Sistemas Operativos Distribuidos 10 Fernando Prez Costoya Jos Mara Pea Snchez
1 - Introduccin
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
Capacidad de crecimiento: Escalabilidad. Fiabilidad y disponibilidad: Tolerancia a (ciertos) fallos. Carcter abierto y heterogneo:
Estndares de interoperabilidad.
1 - Introduccin
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
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
Primeros SOD:
Nuevos SO pero basados en arquitecturas convencionales (monolticas) Ejemplo: Sprite de la Universidad de Berkeley (1988)
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
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
1 - Introduccin
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
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:
Comunicacin entre procesos. Cierta administracin de memoria. Administracin y planificacin de procesos (limitada y de bajo nivel). Entrada/salida de bajo nivel.
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).
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
1 - Introduccin
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 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
Modelos de consistencia
Sistemas Operativos Distribuidos 39 Fernando Prez Costoya Jos Mara Pea Snchez
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.
1 - Introduccin
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.
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
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
1 - Introduccin