You are on page 1of 23

Sistemas Distribuidos

Dr. V D Vctor t J. J S Sosa S S. vjsosa@tamps.cinvestav.mx

Referencias f Bsicas
Distributed Systems: Concepts and Design G Coulouris, G. Coulouris J. J Dollimore y T T. Kindberg; Addison-Wesley Addison Wesley Distributed Operating Systems A. S. Tanenbaum; Prentice-Hall Distributed Systems: y Principles p and Paradigms g A. S. Tanenbaum y M. Van Steen; Prentice-Hall Distributed Operating Systems: Concepts & Practice D. L. Galli; Prentice-Hall Distributed Operating Systems & Algorithms R. Chow y T. Johnson; Addison-Wesley

C t id Contenido

Definicin de Sistemas Distribuidos. Distribuidos Ventajas y desventajas de los Sistemas Distribuidos. Objetivo de un Sistema Distribuido Sistemas Operativos Distribuidos Sistemas Operativos de Red. Middlewares Componentes de un Sistema Operativo Distribuido

S Sistema distribuido (SD) (S )


Nivel fsico: 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

Si t Sistema distribuido di t ib id (SD)


Qu es un Sistema Distribuido?
Es algo difcil de definir... Mejor hablar de ``sntomas sntomas de distribucin'': Multiproceso (concurrencia): El hardware permite el progreso simultneo de varias actividades (varias CPUs con memoria local CPUs, local, etc etc.). ) Interconexin: Permite la comunicacin entre las actividades. Relacin: Uso compartido p de recursos, , informacin, , etc. Fallo independiente: Permite buscar soluciones resistentes en caso de fallo (ojo: las comunicaciones tambin pueden fallar).

Si Sistemas Di Distribuidos ib id
Definiciones

Un sistema en el cual componentes conectados a t de travs d una red d de d computadoras t d se comunican i y coordinan sus acciones mediante el intercambio de mensajes[Coulouris]. j [ ] Principales p caractersticas: concurrencia de componentes, auscencia de reloj global e indepencia de fallos en sus componentes. Un sistema distribuido es una coleccin de p independientes p que dan la q computadoras apariencia al usuario de ser una computadora nica [Tanenbaum]

R Razones para Distribuir Di ib i

Distribucin funcional: las computadoras tienen funcionales z Cliente / Servidor z Host / Terminal z Recaudacin de datos / procesamiento de datos z Compartir recursos para funciones especficas

diferencias

Distribucin inherente al dominio de la aplicacin z Cajas registradoras y sistemas de inventario para cadenas de supermercados p z Soporte para trabajo colaborativo Distribucin/balanceo: asignar tareas a procesadores tal que todo el l desempeo d del d l sistema i sea optimizado. i i d

R Razones para Distribuir Di ib i

Replicacin del poder de procesamiento: procesadores independientes trabajan con la misma tarea z Sistemas distribuidos conformados por varias microcomputadoras pueden tener poder de procesamiento que difcilmente una supercomputadora tendr. 10000 CPUs, cada uno corriendo a 50 MIPS, alcanzan 50000 MIPS, por lo que instrucciones ejecutadas en 0.0002 nsec, equivalen a una distancia luz de 0.6 mm. Separacin fsica: sistemas que confan en el hecho de que las computadoras estn fsicamente separadas (ej. (ej Para satisfacer requerimiento de confiabilidad). Econmicos: colecciones de microprocesadores ofrecen una mejor cuota precio/desempeo i /d que grandes d mainframes. i f z Mainframes: 10 veces mas rpidos, 1000 veces ms caros

Si Sistemas Di Distribuidos: ib id Razones R


Porqu un sistema distribuido y no un hardware aislado?

Se requiere compartir datos y recursos entre usuarios Mejora la comunicacin persona-a-persona Flexibilidad: diferentes computadoras con diferentes capacidades pueden ser compartidas entre usuarios

Problemas conectados

con

la

distribucin,

sistemas

Software como disearlo y manejarlo en un SD Dependencia de la infraestructura de red subyacente (el world wide web..) Fcil acceso a datos compartidos origina necesidades de seguridad

Sistema Distribuido vs Sistemas Paralelos


Distincin a nivel lgico y/o fsico. Dado un sistema fsico en el cual los procesadores tienen memoria compartida, es fcil simular paso de mensajes. Por otra parte, dado un sistema fsico con varios procesadores conectados por una red es posible simular memoria compartida. Porqu un sistema no debiera ser paralelo en su totalidad? Escalabilidad Modularidad y heterogneidad Datos compartidos (bases de datos distribuidas) Recursos compartidos Estructura geogrfica Confiabilidad (resistencia a fallos) Bajo costo

S Sistema Distribuido heterogneo


Un sistema distribuido puede estar formado por multitud de elementos conectados por redes LAN o WAN: Terminales X y Network Computers. PCs y estaciones de trabajo. Sistemas porttiles (redes mviles: GSM GSM, WAP WAP, ...). ) Minicomputadores. Supercomputadores. Multiprocesadores M lti d con memoria i compartida. tid Servidores especializados (de almacenamiento, de impresin, ...). Sistemas empotrados (una cmara, un frigorfico, ...).

Ventajas de los Sistemas Distribuidos


Economa: Buena relacin rendimiento/coste Gracias a avances en tecnologa de microprocesadores y de comunicaciones Alto rendimiento: Procesamiento paralelo. Soporte p de aplicaciones p inherentemente distribuidas. Por ejemplo: empresa distribuida geogrficamente Capacidad de crecimiento: Escalabilidad. Fiabilidad y disponibilidad: Tolerancia a fallos. Carcter abierto y heterogneo: Necesidad de estndares de interoperabilidad. Compartir recursos y datos.

Desventajas de los Sistemas Distribuidos


Necesidad de un nuevo tipo de software: Ms complejo. p j No hay todava un acuerdo sobre cmo debe ser. Red de interconexin introduce nuevos problemas: Prdida de mensajes y saturacin. Latencia puede provocar que al recibir un dato ya est obsoleto. La L red d es un elemento l t crtico. ti Seguridad y confidencialidad

Aplicaciones de los Sistemas Distribuidos


Entornos de empresa: redes corporativas e intranets. Sustituyen y a los clsicos mainframes Entornos que requieren procesamiento paralelo. Sustituyen a costosos supercomputadores Servicios con alta disponibilidad y rendimiento. Sistemas distribuidos de gestin de bases de datos. Aplicaciones A li i multimedia. lti di Sistemas industriales distribuidos y aplicaciones de control. Internet es un enorme sistema distribuido.

Objetivos de un Sistema Distribuido


En general el desarrollo de sistemas distribuidos intenta poner solucin a los siguientes objetivos: Transparencia. Fiabilidad. Rendimiento. R di i t Capacidad de crecimiento. Flexibilidad. Seguridad. Seguridad

T Transparencia i
Existen varios perfiles de transparencia: Acceso: Manera de acceder a recurso local igual que a remoto 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 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

Fi bilid d 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).

R di i t 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 p Factores: Uso de esquemas de caching Intentar que muchos accesos se hagan localmente Uso de esquemas de replicacin Reparto de carga entre componentes replicados En ambos casos: Coste de mantener la coherencia

Capacidad de crecimiento
Diseo de un sistema distribuido debe evitar cuellos de botella: Componentes centralizados Tablas centralizadas Algoritmos centralizados Caractersticas C t ti deseables d bl en un algoritmo l it di distribuido: t ib id 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

Fl ibilid d Flexibilidad
SOD 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) (fabricantes).

Sistemas Operativos Distribuidos (SOD)


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 C d sistema i t alcanza l h t cierto hasta i t punto t esta t meta t 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)

Clasificacin de los Sistemas Operativos


Sistemas operativos para multiprocesadores con memoria compartida (SMP): Software fuertemente acoplado sobre Hardware fuertemente acoplado Sistema operati operativo o de red red: Software dbilmente acoplado sobre Hardware dbilmente acoplado Sistema operativo distribuido (SOD): Software fuertemente acoplado sobre Hardware dbilmente acoplado

S Sistemas Operativos O para SMPs S


Arquitecturas de varios procesadores con memoria compartida de acceso uniforme Caractersticas: Ligeras Li variaciones i i sobre b versiones i t di i tradicionales. l Slo hay una copia del sistema operativo. Concurrencia se traduce en paralelismo real. Comercialmente aceptados (Linux, (Linux WinNT, WinNT Solaris, Solaris AIX, AIX ...). ) Plantea retos para: la ejecucin del ncleo en varios procesadores (llamadas al sistema concurrentes) , los mecanismos de sincronizacin (spin spin-locks) locks), optimizacin y planificacin (afinidad al procesador), ...

Si Sistemas O Operativos i de d Red d


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 j una copia p de sistema operativo p (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 Operativos Distribuidos (SOD)


Una copia del SO en cada procesador Necesidad N id d de d desarrollar d ll nuevos conceptos t 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 archivos nico? Implicaciones de la falta de reloj nico, la presencia de fallos o la heterogeneidad. g

E l i de Evolucin d los l SOD


Primeros SO de red: - Incluir servicios de red en SO convencional - Ejemplo: UNIX 4BSD (1980) Paulatina incorporacin de ms funcionalidad: - ONC de Sun ( 1985): incluye NFS, RPC, NIS Primeros SOD: - Nuevos SO pero basados en arquitecturas monolticas - Ejemplo: Sprite de la Universidad de Berkeley ( 1988) SOD basados en microkernel. Ejemplos: - Mach de CMU ( 1986) - Amoeba diseado por Tanenbaum ( 1984) - Chorus de INRIA en Francia ( 1988) Tendencia actual: Entornos distribuidos ---> Middleware

Middleware Middl
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 C (Open (O G Group). ) CORBA (OMG).

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. nombres Servicios de sincronizacin y coordinacin. Memoria compartida distribuida. Gestin de procesos. procesos Servicio de seguridad.

S Servicios i i de d comunicacin i i
Modelos de interaccin: Cliente/servidor (2-niveles, 3-niveles o n-niveles) Peer-to-peer: Equilibrio de roles. Intermediarios: Proxy, Dispacher, Caches, ... Comunicacin en grupo (Multicast) Cdigo Cdi mvil. il Tecnologas de comunicacin: Paso de mensajes: sockets. sockets Llamada a procedimientos remotos (RPC). Invocacin de mtodos remotos (RMI). Tecnologas de objetos distribuidos: CORBA, DCOM, EJB - Servicios Web

Sistemas de Archivos Distribuidos


Sistema de archivos para sistema distribuido Gestiona distintos dispositivos en diferentes nodos ofreciendo a usuarios la misma visin que un SA centralizado Permite P it que usuarios i compartan t i f informacin i d de f forma transparente Caching y replicacin

Servicio de nombres
Identificacin y localizacin de recursos en el entorno distribuido. Comprende: Servicio de nombres (pginas blancas): DNS, COSNaming (CORBA). Servicio de directorio (pginas amarillas): X.500, LDAP, Active Directory de Windows, UDDI (Web Services). Estrategias de resolucin de nombres Arquitectura de los servicios. Almacenamiento intermedio: caching. Replicacin y coherencia.

Servicios de Sincronizacin y Coordinacin


Comprende los conceptos de: Tiempo en entornos distribuidos: Sincronizacin de relojes y relojes l j lgicos. l i Concurrencia y Paralelismo: Exclusin mutua e interbloqueos. Algoritmos distribuidos: Eleccin de lder, coordinacin, ... Transacciones: Propiedades ACID ACID, modelos de commit/rollback. Afecta a otros servicios: Nombrado e identificacin. Seguridad y fiabilidad. Comunicaciones. ...

Memoria Compartida Distribuida (DSM)


Concepto: Memoria compartida. tid fsicamente privada pero lgicamente

Estrategias de implementacin: Basada en pginas. pginas Basada en variables compartidas. Basada en objetos. Modelos de coherecia

G Gestin de Procesos
Estrategias de asignacin de procesadores Planificacin de procesos: Planificacin interna. Planificacin global. Migracin de procesos Equilibrado de carga. Aprovechamiento p de mquinas q inactivas.

S Servicio i i de d Seguridad S id d
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: digitales X.509. X 509 Elementos de seguridad: Firewalls. Entornos de seguridad: p. p ej. ej Kerberos. Kerberos

Retos en el diseo de Sistemas Distribuidos

1. Heterogeneidad de:
Infraestructura de la red subyacente, Computadoras hardware y software

(ej. Sistemas operativos, comparar sockets UNIX y llamadas Winsock), Winsock) Lenguajes de programacin (en particular, representacin de datos). Algunas metodologas

Middleware (ej. CORBA): trasparencia de red, heterogeneidad de hardware y software y lenguajes de programacin. Cdigo mvil (ej. JAVA): transparencia desde el hardware, software y heterogeneidad de lenguajes de programacin mediante el concepto de mquina virtual.

2. Apertura
z

Asegura la extensibilidad y mantenibilidad del sistema


Adherencia a interfaces estndar

3. Seguridad
z z z z

Privacidad Autentificacin Disponibilidad Etc.

Retos en el diseo de Sistemas Distribuidos

5. Manejo de fallas
z z

Deteccin (puede ser imposible) Enmascarar


Retrasmisin Redundancia en almacenamiento de datos

Tolerancia
Manejo de excepciones (ej. Pausas en esperas de respuestas de la

web) b)
z

Redundancia
encaminadores redundantes en la red Replicacin de tablas de nombres en mltiples dominios de servidores

de nombres

6. Concurrencia
z z

Planificacin consistente de hilos concurrentes (con lo que se mantiene la dependencia, ej. En transacciones concurrentes) Se evitan problemas de deadlocks y livelocks.

Retos en el diseo de Sistemas Distribuidos

7. Transparencia: ocultamiento de la heterogeneidad y distribucin natural de los sistemas, lo cual aparece ante el usuario como un solo sistema.
z

Clasificacin de la trasparencia (de acuerdo al ISO)


Acceso: a recursos locales y remotos utilizando las mismas operaciones Localizacin: acceso sin conocer la ubicacin de los recursos

Ej Direcciones Ej. Di i URL e-mails. URLs, il

Concurrencia: permite a varios procesos operar concurrentemente utilizando

recursos compartidos de manera consistente


Replicacin: utiliza recursos replicados como si fueran una sola instancia Fallas: F ll permite it que los l programas completen l t sus tareas t a pesar de d fallas f ll ej. j

Retransmisin de e-mails
Movilidad: permite mover recursos Desempeo: adopcin de los sistemas para variar situaciones de carga sin que

el usuario lo perciba
Escalamiento: permite que el sistema y las aplicaciones se expandan sin

necesidad de cambiar estructuras o algoritmos.

Ej Ejemplos l

1. La Internet
z z z

Redes heterogneas de computadoras y aplicaciones Implementacin p mediante la p pila de p protocolos de Internet Configuracin tpica:
intranet

 

ISP

backbone

satellite t llit li link k desktop computer: server: network link:

Ej Ejemplos l

2. Sistemas Multimedia Distribuidos


z z

Frecuentemente utilizan la infraestructura de Internet Caractersticas


Fuentes de datos y recipientes heterogneos que necesitan ser

sincronizados en tiempo real Video Audio Texto Frecuentemente: Servicios distribuidos Multidifusin Ejemplos Herramientas de tele-educacin Video conferencias Video y audio en demanda

Ej Ejemplos l

3. Intranets
z z z z

Redes localmente administradas Generalmente propietarias (ej. Red del campus universitario) Interfaces con la Internet
Cortafuegos

Proporciona servicios interna y externamente.


email server print and other servers Local area network

Desktop computers

Web server

email server File server print other servers the rest of the Internet router/firewall

Ej Ejemplos l

4. Sistemas de cmputo mvil


z

Sistemas de telefona celular (ej. GSM, UMTS)


Recursos que se comparten

Radio frecuencias Tiempos de transmisin en una frecuencia (UMTS: multiplexado) El mvil en movimiento Computadoras porttiles LANs inalmbricas Dispositivos handheld, handheld PDAs, PDAs etc. etc Dispositivos porttiles
Internet

Host intranet

Wireless LAN

WAP gateway

Home intranet

Printer Camera

Mobile phone Laptop

Host site

Ej Ejemplos l

5. Sistemas embebidos
z z z

Una cafetera enlazada a la red Sistemas de control de aviacin


Sistemas de control de vuelo en aeropuertos

Sistemas de control de automviles


Automviles A t il M Mercedes d S Kl S-Klasse equipados i d con 50+ 50 procesadores d

embebidos autnomos
Conectados mediante canales Lan propietarios
z z

Electrodomsticos E i Equipos d audio de di HiFi

Ej Ejemplos l

6. Sistemas de telefona
z

Ejemplos

POTS ISDN Redes inteligentes Redes inteligentes avanzadas

Comparticin de recursos
Redes Administracin Telfonos

7. Administracin de la red
z z z

Administracin de recurso de la red Estado: estatus de los recursos y conexiones Ejemplo


SNMP

Ej Ejemplos l

8. Sistemas de Archivos en Red


z z

Arquitectura para acceder a sistemas de archivos a travs de la red d Ejemplos conocidos


Network File System (NFS), originalmente desarrollado por SUN

Microsystems para soportar acceso remoto en un contexto UNIX

9. El World Wide Web


z z

Arquitectura cliente/servidor abierta implementada sobre la Internet Comparticin de recursos


Informacin, identificada nicamente mediante Localizador Uniforme

de Recursos (URL)
Variantes: Webs basadas en intranets.

Cl t Clsters
Tipo de sistema distribuido muy popular Dedicado a una tarea especfica Computacin paralela Servicios escalables y de alta disponibilidad Ejemplo: Google usa un clster con 6000 procesadores Sistema homogneo basado en componentes estndar Gestin de procesos ms coordinada que en SD general Seguridad S id d slo l requerida id si i est t expuesto t al l exterior t i

You might also like