Académique Documents
Professionnel Documents
Culture Documents
Presentacin
Referencias Bsicas
Referencias Bsicas
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
Objetivos
Direcciones de Contacto
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.
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
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.
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
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.
Centralizados.
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)
Hardware
Servicios Kernel
Computadora
Kernels Monolticos: Muchas funcionalidades dentro del kernel: planificador, gestin de memoria, drivers,...
m-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
m-Kernel
Computadora
Servicios
m-Kernel m-Kernel m-Kernel
Servicios Distribuidos: Estructura de sistema distribuido. Dependiendo del nivel se habla de: Sistema Operativo Distribuido, Sistema en Red o (Cooperativo).
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.
Capacidad de crecimiento: Escalabilidad. Fiabilidad y disponibilidad: Tolerancia a (ciertos) fallos. Carcter abierto y heterogneo:
Estndares de interoperabilidad.
Seguridad y confidencialidad
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 >
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), ...
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.
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.
Primeros SO de red:
Incluir servicios de red en SO convencional Ejemplo: UNIX 4BSD (1980)
Primeros SOD:
Nuevos SO pero basados en arquitecturas convencionales (monolticas) Ejemplo: Sprite de la Universidad de Berkeley (1988)
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.
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 Cooperativos
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
Hardware
SO
Hardware
SO
Hardware
Middleware
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.
Transparencia
Fiabilidad
Factores:
Mayor nmero de procesadores Elementos crticos:
Especialmente la red: Latencia de la comunicacin, uso de caches, ...
Rendimiento
Capacidad de Crecimiento
Capacidad para ampliarlo o extenderlo con nuevas funcionalidades de forma sencilla. Definicin de responsabilidades:
Sistemas con m-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).
Flexibilidad
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, ...
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.
Servicios de Comunicacin
Cuestiones:
Arquitectura de los servicios. Almacenamiento intermedio: caching. Replicacin y coherencia.
Hardware:
Memoria fsicamente compartida. Memoria distribuida (lgicamente compartida). Acceso uniforme vs acceso no uniforme.
Modelos de consistencia
Planificacin de procesos:
Planificacin interna: Procesos y threads. Planificacin global. Migracin y equilibrado de carga. Aprovechamiento de mquinas inactivas.
Gestin de Procesos
Servicio de Seguridad
Notacin
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.
Notacin y Formalismos
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
Aplicacin
llamadas Datos
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