Vous êtes sur la page 1sur 36

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@mail.urp.edu.pe>

Rodolfo Cubas Agreda


<rcubas@mail.urp.edu.pe>

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

Vous aimerez peut-être aussi