Beruflich Dokumente
Kultur Dokumente
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
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
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.
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)
Usado por mltiples usuarios el flujo de las usuarios, rdenes es transparente para ellos
Aumento de la complejidad
Fallas ms frecuentes
Interoperabilidad p
Seguridad g
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.
Fallas independientes.
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
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
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.
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.
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.
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
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
Aplicable a distintos sistemas no slo distribuidos sistemas, Ejemplo: servidores cache, proxy; conexiones persistentes a bases de datos.
Transparencia Tr p r i
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.
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
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
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
M P
M P
M P
M P
Multi-Procesadores M lti Pr d r
En la medida que aumentan los CPUs mantener la coherencia afecta fuertemente el rendimiento
Multi-computadores M lti p t d r
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
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
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.
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
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
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
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
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
Cliente-Servidor Cli t S r id r
Multicapas M lti p
Arquitecturas Modernas Ar it t r M d r