Sistemas Distribuidos
Presentacin
Referencias Bsicas
Distributed Systems: Concepts and Design
G. Coulouris, J. Dollimore, T. Kindberg; Addison-Wesley, 2001
Distributed Systems: Principles and Paradigms
A. S. Tanenbaum, M. Van Steen; Prentice-Hall, 2002
Distributed Operating Systems: Concepts & Practice
D. L. Galli; Prentice-Hall, 2000
Distributed Operating Systems & Algorithms
R. Chow, T. Johnson; Addison-Wesley, 1997
Distributed Computing: Principles and Applications
M.L. Liu; Addison-Wesley, 2004
Sistemas Distribuidos 2
ndice del Curso
ndice de Temas
Introduccin y conceptos Comunicacin en Sistemas Distribuidos Sistemas de Archivos Distribuidos Servicio de Nombres Gestin de procesos Seguridad en Sistemas Distribuidos
Entornos Distribuidos y Casos de Estudio
Tecnolo gas CORBA Sockets RPC .Net Java:
Jini RMI EJB
Sistemas Distribuidos 3
Direcciones de Contacto
Profesores Responsables: Erwin Mac Dowall Reynoso
(C )
<emacdowall@[Link]>
Rodolfo Cubas Agreda
<rcubas@[Link]>
Sistemas Distribuidos 4
Sistemas Distribuidos
Introduccin y Conceptos
Contenidos del Tema
Definicin de Sistema Distribuido. Ventajas y desventajas de los Sistemas Distribuidos. Sistemas Distribuidos. Sistemas Operativos de Red. Middlewares. Objetivos de un Sistema Distribuido. Componentes de un Sistema Distribuido.
Sistemas Distribuidos 6
Sistema Distribuido (SD)
Hardware: Conjunto de procesadores sin memoria comn conectados por una red.
Sistema dbilmente acoplado No existe un reloj comn Dispositivos de E/S asociados a cada procesador Fallos independientes de componentes del SD Carcter heterogneo
Objetivo de la asignatura: Software de Sistema Distribuido
Sistemas Distribuidos Interfaz software que oculta la complejidad hardware de un SD:
Visin de sistema nico (Single System Image)
Sistemas Distribuidos 7
Ventajas de los Sistemas Distribuidos
Economa: Buena relacin rendimiento/coste
Avances en la tecnologa de microprocesadores y redes de rea local.
Alto rendimiento: Procesamiento paralelo. Soporte de aplicaciones inherentemente distribuidas.
Por ejemplo: empresa distribuida geogrficamente
Capacidad de crecimiento: Escalabilidad. Fiabilidad y disponibilidad: Tolerancia a fallos. Carcter abierto y heterogneo:
Estndares de interoperabilidad.
Compartir recursos y datos.
Sistemas Distribuidos 8
Desventajas de los Sistemas Distribuidos
Necesidad de un nuevo tipo de software: Red de interconexin introduce nuevos problemas:
Ms complejo. No hay todava un acuerdo sobre cmo debe ser.
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
Sistemas Distribuidos 9
Aplicaciones de los Sistemas Distribuidos
Entornos empresariales: redes corporativas e intranets:
Sustituye a los clsicos mainframes.
Entornos de computacin de altas prestaciones:
Procesamiento paralelo, alternativa a costosos supercomputadores.
Servicios con alta disponibilidad y rendimiento. Sistemas distribuidos de gestin de bases de datos Aplicaciones multimedia. Sistemas industriales distribuidos y aplicaciones de control. Internet: un enorme sistema distribuido.
Sistemas Distribuidos 10
Nuevos Paradigmas de SD
Cluster Computing:
Altas prestaciones. Alta disponibilidad.
Dedicados a tareas especficas: Sistema homogneo (a menudo dedicado): Problemtica: Grado de acoplamiento, servicios distribuidos.
Nodos PCs. LAN (de propsito general o especficas).
Grid Computing:
Aprovechamiento de recursos creando un uniprocesador virtual. Restringido a una serie de tareas. Diferentes mbitos: Problemtica: Coordinacin, seguridad, carcter dinmico.
Desde intradepartamentales. Hasta intercorporativos.
Sistemas Distribuidos 11
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 Distribuidos 12
Transparencia
Existen varios perfiles de transparencia:
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
Sistemas Distribuidos 13
Fiabilidad
Fiabilidad como disponibilidad:
Tericamente: OR-lgico de sus componentes. En ciertos casos: AND-lgico de varios componentes. Mecanismos: redundancia y evitar componentes crticos.
Fiabilidad como coherencia:
Se dificulta con caching y redundancia
La fiabilidad est relacionada con la seguridad (otro objetivo).
Sistemas Distribuidos 14
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: Uso de esquemas de caching
Intentar que muchos accesos se hagan localmente Reparto de carga entre componentes replicados
Uso de esquemas de replicacin
En ambos casos: Coste de mantener la coherencia
Sistemas Distribuidos 15
Capacidad de Crecimiento
Diseo de un sistema distribuido debe evitar cuellos de botella:
Componentes centralizados Tablas centralizadas Algoritmos centralizados
Estrategias:
Reparto de estructuras de datos entre varios nodos. Realizacin de parte del procesamiento en los nodos cliente.
Caractersticas deseables en un algoritmo distribuido:
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
Sistemas Distribuidos 16
Flexibilidad
SD debe ser adaptable:
facilidad para incorporar cambios y extensiones al sistema
Uso preferible de arquitectura microkernel Importancia de sistemas abiertos:
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).
Sistemas Distribuidos 17
Sistemas Distribuidos (SD)
Definicin: Un sistema operativo distribuido ejecuta sobre un sistema distribuido haciendo creer a los usuarios que se trata de un sistema centralizado
single system view o uniprocesador virtual
Esconde el carcter distribuido del sistema:
No hay acuerdo general si esto es siempre adecuado
Es fcil de decir pero no de hacer
Cada sistema alcanza hasta cierto punto esta meta
Los fracasos pueden generar frustraciones en los usuarios:
Un sistema distribuido es aqul en el que no puedes trabajar con tu mquina por el fallo de otra mquina que ni siquiera sabas que exista (Lamport)
Sistemas Distribuidos 18
Clasificacin de los Sistemas Operativos
Sistemas operativos para multiprocesadores con memoria compartida (SMP):
Software fuertemente acoplado sobre Hardware fuertemente acoplado Software dbilmente acoplado sobre Hardware dbilmente acoplado Software fuertemente acoplado sobre Hardware dbilmente acoplado
Sistema operativo de red:
Sistema operativo distribuido (SOD):
Sistemas Distribuidos 19
Sistemas Operativos para SMPs
Arquitecturas de varios procesadores con memoria compartida de acceso uniforme Caractersticas:
Ligeras variaciones sobre versiones tradicionales. Slo hay una copia del sistema operativo. Concurrencia se traduce en paralelismo real. 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), ...
Sistemas Distribuidos 20
Sistemas Operativos de 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 (posiblemente 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.
Sistemas Distribuidos 21
Sistemas Operativos Distribuidos (SOD)
Una copia del SO en cada procesador Necesidad de desarrollar nuevos conceptos Algunos ejemplos de esta problemtica especfica:
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.
Tendencia actual: hacia entornos middleware.
Sistemas Distribuidos 22
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 Distribuidos 23
Middleware SO Hardware SO Hardware
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 Archivos. Servicio de Nombres. Servicios de sincronizacin y coordinacin. Gestin de procesos. Servicio de seguridad.
Sistemas Distribuidos 24
Servicios de Comunicacin
Tipo de comunicacin:
Punto a punto (unicast). Multipunto (multicast). Cliente/servidor
Intermediarios: Proxy, Dispatcher, Caches, ...
Modelos de interaccin:
Peer-to-peer: Equilibrio de roles. Cdigo mvil.
Tecnologas de comunicacin:
Paso de mensajes: sockets. Llamada a procedimientos remotos (RPC). Invocacin de mtodos remotos (RMI). Tecnologas de objetos distribuidos: CORBA, DCOM, EJB Servicios web.
Sistemas Distribuidos 25
Modelo Cliente/Servidor
Dos roles diferentes en la interaccin
Cliente: Solicita servicio. Servidor: Proporciona servicio.
Interfaz de Servicio Peticin
Cliente
Respuesta
Servidor
Sistemas Distribuidos 26
Modelo Proxy o Cach
Tres roles diferentes en la interaccin
Cliente: Solicita servicio. Servidor: Proporciona servicio. Proxy: Intermediario (si tiene memoria se denomina cach)
Interfaz de Servicio 1 Peticin Respuesta
Cliente
Proxy
Peticin
Interfaz de Servicio 2 Respuesta
Servidor
Sistemas Distribuidos 27
Modelo Peer-to-Peer
Un nico rol:
Entidad
Entidad Entidad Entidad Entidad Entidad Entidad Entidad
Protocolo de dilogo
Primitivas de interaccin
Entidad
Interfaz de Dilogo
Entidad
Sistemas Distribuidos 28
Otros Modelos
Cdigo mvil:
Applets Redes activas Agentes mviles Arquitecturas homogneas, interpretacin de cdigo o mquinas virtuales (e.g. JVM). Consideraciones de seguridad. Transmisin de programa (no de los datos).
Requiere:
Las peticiones pasan a ser fragmentos de cdigo transmitido por la red. Permite modelos de comunicacin y ejecucin ms elaborados.
Sistemas Distribuidos 29
Modelos con/sin Estado
Servicio Con estado vs. Sin estado: Ventajas de servicio con estado:
Determina si el servidor mantiene informacin de los clientes o no. Mensajes de peticin ms cortos. Mejor rendimiento (se mantiene informacin en memoria). Favorece estrategias de optimizacin: Ms tolerantes a fallos (rearranque del servidor). Reduce el nmero de mensajes: no hay comienzos/finales de sesin. Ms econmicos para el servidor (no consume recursos de memoria)
Peticiones autocontenidas.
Ventajas de servicio sin estado:
Estrategias predictivas: anlisis del patrn de operaciones del cliente.
Servicios inherentes con estado (cerrojos distribuidos). Estado sobre servicios sin estado (HTTP+cookies).
Sistemas Distribuidos 30
Sistemas de Archivos Distribuidos
Sistema de ficheros para sistema distribuido Gestiona distintos dispositivos en diferentes nodos ofreciendo a usuarios la misma visin que un SF centralizado Permite que usuarios compartan informacin de forma transparente Caching:
Ahorra accesos a disco y red. Algoritmos de coherencia de caches. Para tolerancia fallos. Requiere coherencia de replicas.
Replicacin:
Sistemas Distribuidos 31
Servicio de Nombres
Identificacin y localizacin de recursos en el entorno distribuido. Comprende:
Servicio de nombres (pginas blancas): DNS, COS-Naming (CORBA). [Nombre del recurso Atributos del recurso] Servicio de directorio (pginas amarillas): X.500, LDAP, Active Directory. [Valores de atributos Recursos que los satisfacen]
Estrategias de resolucin de nombres:
Local. Acceso a mltiples servidores (iterativa vs. recursiva).
Arquitectura de los servicios.
Almacenamiento intermedio: caching. Replicacin y coherencia.
Sistemas Distribuidos 32
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, consenso, ... Transacciones: Propiedades ACID, modelos de commit/rollback.
Afecta a otros servicios:
Nombrado e identificacin. Seguridad y fiabilidad. Comunicaciones. ...
Sistemas Distribuidos 33
Memoria Compartida Distribuida (DSM)
Concepto:
Memoria fsicamente privada pero lgicamente compartida.
Estrategias de implementacin:
Basada en pginas. Basada en variables compartidas. Basada en objetos.
Modelos de coherencia
Sistemas Distribuidos 34
Gestin de Procesos
Caracterizacin de la carga:
Consumo de CPU. Consumo de otros recursos (Memoria) Prioridades.
Estrategias de asignacin de procesadores a procesos:
Cundo, cul y a dnde.
Planificacin de procesos:
Planificacin interna. Planificacin global.
Migracin de procesos
Equilibrado de carga. Aprovechamiento de mquinas inactivas.
Sistemas Distribuidos 35
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 de seguridad: p. ej. Kerberos.
Sistemas Distribuidos 36