Sie sind auf Seite 1von 42

Sistemas Distribuidos

Javier Bustos Jimnez

Objetivos Obj ti
Entender los conceptos bsicos de sistemas distribuidos y sus problemticas. Aprender el uso de tcnicas de diseo de p e de e tc cas d se o sistemas en forma distribuida. Construir sistemas computacionales p bsicos en ambientes distribuidos. Conocer diferentes sistemas distribuidos de mayor uso

Agenda A d
Introduccin a S ste as Distribuidos t oducc Sistemas st bu dos Comunicaciones Procesos y Migracin g Naming Sincronizacin de procesos distribuidos Replicacin Sistemas de archivos distribuidos Actualidad

Aspectos Ad i i tr ti A p t Administrativos

Evaluacin, tareas, porcentajes, demases

Bibliografa Bibli r f

A.Tanenbaum, M.Van Stee a e bau , a 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 i t E l i d l sistemas

Desarrollos de microprocesadores. p

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. 10 100 WAN. 64 kpbs - 2 Mbps. Facilidad de interconexin. Internet e Intranet Intranet.

Desarrollo de redes.

Alto desarrollo del hardware ...

Definiciones D fi i i

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) J Dollimore T Kindberg) Aquel que le impide a uno continuar su trabajo q q p j cuando falla un computador del cual uno nunca ha odo hablar. (L.Lamport)

Ejemplos de i t Ej pl d sistemas di trib id distribuidos

Red de estaciones de trabajo en una Universidad

Espacio cuenta es visible desde todos los computadores

Workflow de manejo automtico de kfl d d rdenes

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

Ejemplos de i t Ej pl d sistemas di trib id 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 B k ffi di t ib id

Ventajas d di trib ir i t V t j de distribuir sistemas


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

Desventajas de distribuir sistemas D t j d di trib ir i t


Aumento de la complejidad

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

Fallas ms frecuentes

Interoperabilidad p

Seguridad g

Implicancias de distribuir l sistemas I li i d di ib i los i

Co cu e c a Concurrencia.

Recursos compartidos. Acceso concurrente. Sincronizacin. Cada computador tiene su propio reloj local. Coordinacin. Coordinacin Posibilidad permanente de fallas en cada componente. Deteccin de fallas y tolerancia.

Sin tiempo global.


Fallas independientes.

Desafos d l Si D f de los Sistemas Distribuidos Di ib id

Compartir Recursos Transparencia Usabilidad (abierto) Escalabilidad

Compartir recursos C p rtir r r

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. A hi d i W b d

Porqu compartir recursos ?

Costos, capacidad, Costos capacidad escalabilidad

Transparencia Tr p r i

Esconder el hecho que los recursos y sco de e ec o os ecu sos 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 Tr p r i

Acceso cceso

Esconde las diferencias entre las distintas representaciones de datos y la formas en que stos son accedidos por los usuarios 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. i d

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

Transparencia Tr p r i

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 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 carga.

Transparencia Tr p r i

Replicacin p

Esconde el hecho que un recurso pueda estar replicado varias veces para mejorar su rendimiento y/o d spo b dad 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 Tr p r i

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 sistemas, Ejemplo: servidores cache, proxy; conexiones persistentes a bases de datos.

Transparencia Tr p r i

La transparencia tiene lmites y grados. a t a spa e c a t e e tes g ados

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 j p p caso particular son los servidores DNS que pueden tomar das en actualizarse, lo cual no se oculta al usuario.

Usabilidad U bilid d

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

HTTP Interface Definition Languages (IDL) Web services Completitud Neutralidad

Dos aspectos muy relevantes


Escalabilidad E l bilid d

Se refiere a la capacidad de crecer de un sistema p 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 H rd r

En forma general todo sistema distribuido o a ge e a s ste a d st bu do consiste en mltiple CPUs.

Memoria compartida (multi-procesadores)

Todos l T d los CPU comparten el mismo espacio de t l i i d 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 H rd r
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 M lti Pr d r

Todos los CPU tienen acceso a una memoria compartida

Un ejemplo es Symetric Multiprocesing (SMP). j g

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 M lti p t d r

Se subdividen en dos categoras: g

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 S ft r

Se encuentran tres variantes de plataformas de software para sistemas distribuidos


Sistemas operativos distribuidos Sistemas operativos de Red Middle-ware

Sistemas Operativos Di trib id Si t Op r ti 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 Micro-kernel Llamada de sistema Hardware

Sistemas Operativos Di trib id Si t Op r ti 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 Di trib id Si t Op r ti Distribuidos

Sistemas Operativos Multicomputador p p


Mltiples computadores conectados por red. Cada procesador tiene su propia memoria. Comunicacin nicamente a travs de paso de mensajes. j 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 Di trib id Si t Op r ti Distribuidos

Sistemas de Memoria Compartida p 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 101112131415 0 9 2 5 1 3 6 8 10 CPU 2 4 7 11 12 14 CPU 3 13 15 CPU 4 memoria

CPU 1

False Sh ri F l Sharing

Sistemas Operativos d R d Si t Op r ti de Red


Dos o ms computadores conectados por red. p p 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 M i Mquina C M i

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

Kernel K l

Kernel K l

Kernel K l Red

Ejemplo: Antiguos t r i l UNIX Ej pl A ti terminales

Independencia de I d p d i d uso d servicios de r i i

Middle-Ware Middl W r

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 p p para la p g programacin y manejo de j aplicaciones distribuidas Mquina A Mquina B Mquina C

Aplicaciones distribuidas Servicios del Middle Ware 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 T bl C p r ti
Item It S.O. Di t ib id S O Distribuido Multi-proc. Grado de Transparencia Mismo S.O. Copias del S.O. Comunicacin Manejo de recursos Escalabilidad E l bilid d Usabilidad Muy Alto S 1 Memoria compartida Global, central No N Cerrada Multi-comp. Alto S N Mensajes Global, distribuido Moderado M d d Cerrada S.O. d S O de Red Bajo No N Archivos Por nodo Si Abierta Middle-Ware Middl W

Alto No N Especfico al modelo Por nodo Variable V i bl Abierta

Organizaciones tpi O i i tpicas

Cliente Servidor Cliente-Servidor 2 (o ms) capas Arquitecturas Modernas

Cliente-Servidor Cli t S r id r

Multicapas M lti p

Arquitecturas Modernas Ar it t r M d r

Das könnte Ihnen auch gefallen