You are on page 1of 42

Sistemas Distribuidos

Javier Bustos Jimnez

Objetivos
Entender los conceptos bsicos de sistemas distribuidos y sus problemticas. Aprender el uso de tcnicas de diseo de sistemas en forma distribuida. Construir sistemas computacionales bsicos en ambientes distribuidos. Conocer diferentes sistemas distribuidos de mayor uso

Agenda
Introduccin a Sistemas Distribuidos Comunicaciones Procesos y Migracin Naming Sincronizacin de procesos distribuidos Replicacin Sistemas de archivos distribuidos Actualidad

Aspectos Administrativos

Evaluacin, tareas, porcentajes, demases

Bibliografa

A.Tanenbaum, M.Van Steen. Distributed Systems, principles and paradigms. Ed. Prentice Hall, 2002. G.Coulouris, J.Dillmore, T.Kindberg. Distributed Systems - Concept and Design. Addison-Wesley, Third Edition, 2001.

Introduccin

Evolucin de los sistemas

Desarrollos de microprocesadores.

1945 a 1980s. 1 instruccin/seg. US$ 10.000.000 1980s hasta hoy. 1.000.000.000 instrucciones/seg. Menos de US$1.000. Ganancia precio/rendimiento 1013.
LAN. 10-100 Mbps. WAN. 64 kpbs - 2 Mbps. Facilidad de interconexin. Internet e Intranet.

Desarrollo de redes.

Alto desarrollo del hardware ...

Definiciones

Un Sistema Distribuido es una coleccin de computadores independientes que aparecen ante los usuarios como un nico sistema coherente. (Andrew S. Tanenbaum)

Un sistema en el cual tanto los componentes de hardware y software de un computador conectados en red se comunican y coordinan mediante paso de mensajes. (G.Coulouris, J.Dollimore, T.Kindberg)
Aquel que le impide a uno continuar su trabajo cuando falla un computador del cual uno nunca ha odo hablar. (L.Lamport)

Ejemplos de sistemas distribuidos

Red de estaciones de trabajo en una Universidad

Espacio cuenta es visible desde todos los computadores

Workflow de manejo automtico de rdenes

Usado por mltiples usuarios, el flujo de las rdenes es transparente para ellos

Ejemplos de sistemas distribuidos

World Wide Web (WWW)

Aparece antes los usuarios como un repositorio gigantesco de documentos

Factura electrnica en Chile


Muchos contribuyentes y compradores Un ente centralizado (SII) Back-office distribuido

Ventajas de distribuir sistemas


Economa Aumento en capacidad de procesamiento. Aplicaciones inherentemente distribuidas. Capacidad de crecimiento. Fiabilidad y disponibilidad. Compartir recursos y datos.

Desventajas de distribuir sistemas


Aumento de la complejidad

Costos de administracin
Red, Latencia, prdida de mensajes Falta de estndares nicos

Fallas ms frecuentes

Interoperabilidad

Seguridad

Implicancias de distribuir los sistemas

Concurrencia.

Recursos compartidos. Acceso concurrente. Sincronizacin.


Cada computador tiene su propio reloj local. Coordinacin. Posibilidad permanente de fallas en cada componente. Deteccin de fallas y tolerancia.

Sin tiempo global.


Fallas independientes.

Desafos de los Sistemas Distribuidos

Compartir Recursos Transparencia Usabilidad (abierto) Escalabilidad

Compartir recursos

El objetivo bsico de los sistemas distribuidos.

Usuarios deben tener acceso fcil a recursos compartidos y compartir sus propios recursos de forma controlada.

Impresoras Computadores Espacio de almacenamiento Archivos, datos, pginas Web, redes, etc.

Porqu compartir recursos ?

Costos, capacidad, escalabilidad

Transparencia

Esconder el hecho que los recursos y procesos estn fsicamente distribuidos en diferentes mquinas. Un sistema distribuido que se presenta hacia el usuario como una sola mquina se dice ser transparente.

Sin embargo, transparencia se aplica a varios aspectos de sistemas distribuidos

Transparencia

Acceso

Esconde las diferencias entre las distintas representaciones de datos y la formas en que stos son accedidos por los usuarios.

Ejemplo: representacin de un entero en una mquina SPARC (big endian) y una INTEL (little endian)

Ubicacin

Esconde la ubicacin fsica de donde est situado un recurso.

En particular se suele usar nombres lgicos en vez de direcciones reales. Ejemplo, la URL en el Web.

Transparencia

Migracin

Esconde el hecho que recursos puedan migrar de una ubicacin fsica a otra sin afectar el modo en que se acceda.

Ejemplo: las tareas ;-)

Re-ubicacin

Un caso an ms fuerte de migracin. Los recursos son movidos de una ubicacin a otra mientras estn en uso y sin que el usuario note nada.

Un uso tpico es para balancear carga.

Transparencia

Replicacin

Esconde el hecho que un recurso pueda estar replicado varias veces para mejorar su rendimiento y/o disponibilidad.

Obviamente exige transparencia de ubicacin Ejemplo: servidor Web de Google

Concurrencia

Esconde el hecho de que distintos usuarios estn compitiendo en paralelo por acceder o usar recursos, o que un recurso est siendo compartido con otros usuarios

Exige que el sistema se mantenga en un estado coherente. Ejemplo: bases de datos

Transparencia

Fallas

El usuario no nota (inclusive nunca supo) que un recurso ha dejado de funcionar (o se ha recuperado).

Es uno de los aspectos ms duros en sistemas distribuidos por la dificultad de detectar que un recurso ha muerto. Ejemplo: arreglos de discos RAID, Google File System.

Persistencia

Esconde si un recurso de software est en disco o en memoria


Aplicable a distintos sistemas, no slo distribuidos Ejemplo: servidores cache, proxy; conexiones persistentes a bases de datos.

Transparencia

La transparencia tiene lmites y grados.

No siempre es posible esconder todo

Ejemplo: desfase temporal de comunicacin entre puntos muy distantes (delay).

Siempre hay un trade-off entre transparencia y rendimiento

Ejemplo: Bases de datos replicadas world-wide. Un caso particular son los servidores DNS que pueden tomar das en actualizarse, lo cual no se oculta al usuario.

Usabilidad

Los recursos y servicios son ofrecidos de acuerdo a reglas estndares describiendo la semntica y sintaxis. Usualmente estas reglas son descritas va protocolos o interfaces.

HTTP Interface Definition Languages (IDL) Web services


Completitud Neutralidad

Dos aspectos muy relevantes


Escalabilidad

Se refiere a la capacidad de crecer de un sistema La escalabilidad se puede dimensionar desde tres aspectos

Tamao: la capacidad de agregar fcilmente ms recursos y usuarios al sistema. Geogrfica: la capacidad de que usuarios y recursos se encuentren a distancias considerables Administracin: La capacidad de mantener una administracin fcil a pesar del crecimiento

Desafortunadamente los sistemas son escalables en alguna de las dimensiones sacrificando rendimiento en las otras

Hardware

En forma general todo sistema distribuido consiste en mltiple CPUs.

Memoria compartida (multi-procesadores)

Todos los CPU comparten el mismo espacio de direcciones de memoria Cada CPU tiene su propio espacio de direcciones de memoria Canal compartido Canal exclusivo

Memoria independiente (multi-computadores)

Comunicacin va BUS

Comunicacin va Switch

Hardware
M
P P

M
P

M
P

M
P

M
P

M
P

M
P

Memoria compartida - BUS

Memoria independiente - BUS

M P

M P

M P

M P

P Memoria independiente - Switch

Memoria compartida - Switch

Multi-Procesadores

Todos los CPU tienen acceso a una memoria compartida

Un ejemplo es Symetric Multiprocesing (SMP).

Exige coherencia en el estado de la memoria.

En la medida que aumentan los CPUs mantener la coherencia afecta fuertemente el rendimiento

Es poco escalable y la escalabilidad es cara

Multi-computadores

Se subdividen en dos categoras:

Homogneos

La arquitectura y memoria es igual o similar en todos los nodos Generalmente conectados a travs de una nica, usualmente de alto rendimiento, interfaz de red. Ejemplo tpico: clusters. Mltiples arquitecturas Diferentes comunicaciones Diferentes formas de comunicacin Ejemplo tpico: GRID

Heterogneos

Software

Se encuentran tres variantes de plataformas de software para sistemas distribuidos

Sistemas operativos distribuidos Sistemas operativos de Red Middle-ware

Sistemas Operativos Distribuidos

Sistemas Operativos Monoprocesador

Mltiples procesos compartiendo recursos sobre una mquina, gracias a un microkernel que implemente una mquina virtual.
No hay intercambio directo entre mdulos Mdulo de memoria Mdulo de proceso Mdulo de archivos Modo usuario Modo kernel

Interfaz del Sistema operativo Aplicacin De usuario

Micro-kernel Llamada de sistema

Hardware

Sistemas Operativos Distribuidos

Sistemas Operativos Multiprocesador

Mltiples procesadores compartiendo datos a travs de memoria compartida. Datos deben ser protegidos para garantizar consistencia. Mltiples procesadores deben ser transparentes para la aplicacin. Primitivas de sincronizacin: semforos, locks, monitores.

Sistemas Operativos Distribuidos

Sistemas Operativos Multicomputador

Mltiples computadores conectados por red. Cada procesador tiene su propia memoria. Comunicacin nicamente a travs de paso de mensajes. Sincronizacin basada en semnticas particulares de paso de mensajes
Mquina A Mquina B Mquina C

Aplicaciones distribuidas

Sistema operativo distribuido


Kernel Kernel Kernel Red

Sistemas Operativos Distribuidos

Sistemas de Memoria Compartida Distribuida


Mltiples procesadores, cada uno con su memoria. Memoria compartida virtual sobre multicomputadores. Problema de false sharing (memoria de dos procesos en la misma pgina).
Memoria virtual global 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 9

1 3 6 8 10
CPU 2

4 7 11 12 14
CPU 3

13 15
CPU 4

memoria

CPU 1

False Sharing

Sistemas Operativos de Red

Dos o ms computadores conectados por red. Comparten los diferentes recursos y la informacin del sistema mediante la red. Novell Netware, Personal Netware,Windows NT Server, UNIX, etc.
Mquina A Mquina B Mquina C

Aplicaciones distribuidas
Servicios de Red del S.O. Servicios de Red del S.O. Servicios de Red del S.O.

Kernel

Kernel

Kernel Red

Ejemplo: Antiguos terminales UNIX

Independencia de uso de servicios

Middle-Ware

Capa de software que ejecuta sobre el sistema operativo local de cada computador ofreciendo uno servicios distribuidos. Abstrae la complejidad y heterogeneidad de los computadores del sistema Proporciona una API para la programacin y manejo de aplicaciones distribuidas
Mquina A Mquina B Mquina C

Aplicaciones distribuidas Servicios del Middle-Ware


Servicios de Red del S.O. Servicios de Red del S.O. Servicios de Red del S.O.

Kernel

Kernel

Kernel

Red

Tabla Comparativa
Item S.O. Distribuido Multi-proc. Multi-comp. S.O. de Red Middle-Ware

Grado de Transparencia
Mismo S.O. Copias del S.O. Comunicacin

Muy Alto
S 1 Memoria compartida

Alto
S N Mensajes

Bajo
No N Archivos

Alto
No N Especfico al modelo

Manejo de recursos
Escalabilidad Usabilidad

Global, central
No Cerrada

Global, distribuido
Moderado Cerrada

Por nodo
Si Abierta

Por nodo
Variable Abierta

Organizaciones tpicas

Cliente-Servidor 2 (o ms) capas Arquitecturas Modernas

Cliente-Servidor

Multicapas

Arquitecturas Modernas

You might also like