Está en la página 1de 43

Sistemas

D istribuidos

Pa r t e 1
O BJETIVOS
□ Entender los conceptos básicos de
sistemas distribuidos y sus problemáticas.
□ Aprender el uso de técnicas de diseño de
sistemas en forma distribuida.
□ Construir sistemas computacionales
básicos en ambientes distribuidos.
□ Conocer diferentes sistemas distribuidos
de mayor uso
A G ENDA
□ Introducción a Sistemas Distribuidos
□ Comunicaciones
□ Procesos y Migración
□ Naming
□ Sincronización de procesos distribuidos
□ Replicación
□ Sistemas de archivos distribuidos
□ Actualidad
ASPECTOS ADMINISTRATIVOS
□ Evaluación, tareas, porcentajes, demases
BIBLIOGRAFÍA
□ 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.
INTRODUCCIÓN
EVOLUCIÓN DE LOS SISTEMAS
□ Desarrollos de microprocesadores.
■ 1945 a 1980’s. 1 instrucción/seg. US$ 10.000.000
■ 1980’s hasta hoy. 1.000.000.000 instrucciones/seg.
Menos de US$1.000.
■ Ganancia precio/rendimiento º 1013.
□ Desarrollo de redes.
■ LAN. 10-100 Mbps.
■ WAN. 64 kpbs - 2 Mbps.
■ Facilidad de interconexión.
■ Internet e Intranet.
□ Alto desarrollo del hardware ...
DEFINICIONES
□ “Un Sistema Distribuido es una colección 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 oído 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 automático de


órdenes
■ Usado por múltiples 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 electrónica en Chile


■ Muchos contribuyentes y compradores
■ Un ente centralizado (SII)
■ Back-office distribuido
VENTAJAS DE DISTRIBUIR
SISTEMAS
□ Economía
□ 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 administración
□ Fallas más frecuentes
■ Red, Latencia, pérdida de mensajes
□ Interoperabilidad
■ Falta de estándares únicos
□ Seguridad
IMPLICANCIAS DE DISTRIBUIR
□ LOS SISTEMAS
Concurrencia.
■ Recursos compartidos. Acceso concurrente.
■ Sincronización.
□ Sin tiempo global.
■ Cada computador tiene su propio reloj local.
■ Coordinación.
□ Fallas independientes.
■ Posibilidad permanente de fallas en cada
componente.
■ Detección de fallas y tolerancia.
DESAFÍOS DE LOS SISTEMAS
□ DISTRIBUIDOS
Compartir Recursos

□ Transparencia

□ Usabilidad (abierto)

□ Escalabilidad
COMPARTIR RECURSOS
□ El objetivo básico de los sistemas
distribuidos.
■ Usuarios deben tener acceso fácil a recursos
compartidos y compartir sus propios recursos
de forma controlada.
□ Impresoras
□ Computadores
□ Espacio de almacenamiento
□ Archivos, datos, páginas Web, redes, etc.
□ Porqué compartir recursos ?
■ Costos, capacidad, escalabilidad
TRANSPARENCIA
□ Esconder el hecho que los recursos y
procesos están físicamente distribuidos en
diferentes máquinas.

□ Un sistema distribuido que se presenta


hacia el usuario como una sola máquina 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: representación de un entero en una
máquina SPARC (big endian) y una INTEL (little
endian)
□ Ubicación
■ Esconde la ubicación física de donde está
situado un recurso.
□ En particular se suele usar nombres lógicos en vez de
direcciones reales. Ejemplo, la URL en el Web.
TRANSPARENCIA
□ Migración
■ Esconde el hecho que recursos puedan migrar
de una ubicación física a otra sin afectar el
modo en que se acceda.
□ Ejemplo: las tareas ;-)
□ Re-ubicación
■ Un caso aún más fuerte de migración. Los
recursos son movidos de una ubicación a otra
mientras están en uso y sin que el usuario
note nada.
□ Un uso típico es para balancear carga.
TRANSPARENCIA
□ Replicación
■ Esconde el hecho que un recurso pueda estar replicado
varias veces para mejorar su rendimiento y/o
disponibilidad.
□ Obviamente exige transparencia de ubicación
□ Ejemplo: servidor Web de Google
□ Concurrencia
■ Esconde el hecho de que distintos usuarios están
“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 más 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 sólo distribuidos
□ Ejemplo: servidores cache, proxy; conexiones persistentes
a bases de datos.
TRANSPARENCIA
□ La transparencia tiene límites y grados.

■ No siempre es posible esconder todo


□ Ejemplo: desfase temporal de comunicación 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 días en actualizarse, lo cual no se oculta al
usuario.
U S A BILIDAD
□ Los recursos y servicios son ofrecidos de acuerdo
a reglas estándares describiendo la semántica y
sintaxis.
□ Usualmente estas reglas son descritas vía
protocolos o interfaces.
■ HTTP
■ Interface Definition Languages (IDL)
■ Web services
□ Dos aspectos muy relevantes
■ Completitud
■ Neutralidad
E S CALABILIDA D
□ Se refiere a la capacidad de crecer de un sistema
□ La escalabilidad se puede dimensionar desde tres
aspectos
■ Tamaño: la capacidad de agregar fácilmente más
recursos y usuarios al sistema.
■ Geográfica: la capacidad de que usuarios y recursos se
encuentren a distancias considerables

Administración: La capacidad de mantener una
administración fácil 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 múltiple CPUs.
■ Memoria compartida (multi-procesadores)
□ Todos los CPU comparten el mismo espacio de
direcciones de memoria
■ Memoria independiente (multi-computadores)
□ Cada CPU tiene su propio espacio de direcciones de
memoria
■ Comunicación vía BUS
□ Canal compartido
■ Comunicación vía Switch
□ Canal exclusivo
HARDWARE

M M M M M M M

P P P P
P P P P

Memoria compartida - BUS Memoria independiente - BUS

M M M M M M M

P P P P

P P P P

Memoria compartida - Switch Memoria independiente - 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 categorías:
■ Homogéneos
□ La arquitectura y memoria es igual o similar en todos
los nodos
□ Generalmente conectados a través de una única,
usualmente de alto rendimiento, interfaz de red.
□ Ejemplo típico: clusters.
■ Heterogéneos
□ Múltiples arquitecturas
□ Diferentes comunicaciones
□ Diferentes formas de comunicación
□ Ejemplo típico: GRID
S O FTWARE
□ Se encuentran tres variantes de
plataformas de software para sistemas
distribuidos

■ Sistemas operativos distribuidos


■ Sistemas operativos de Red
■ Middle-ware
SI STEMAS OPERATIVOS
DISTRIBUIDOS
□ Sistemas Operativos Monoprocesador
■ Múltiples procesos compartiendo recursos
sobre una máquina, gracias a un microkernel
que implemente una máquina virtual.

Interfaz del No hay intercambio directo entre módulos


Sistema operativo
Aplicación Módulo de Módulo de Módulo de Modo
De usuario memoria proceso archivos usuario

Modo
kernel
Micro-kernel
Llamada de Hardware
sistema
SI STEMAS OPERATIVOS
DISTRIBUIDOS
□ Sistemas Operativos Multiprocesador
■ Múltiples procesadores compartiendo datos a
través de memoria compartida.
■ Datos deben ser protegidos para garantizar
consistencia.
■ Múltiples procesadores deben ser
transparentes para la aplicación.
■ Primitivas de sincronización: semáforos, locks,
monitores.
SI STEMAS OPERATIVOS
□ DISTRIBUIDOS
Sistemas Operativos Multicomputador
■ Múltiples computadores conectados por red.
■ Cada procesador tiene su propia memoria.
■ Comunicación únicamente a través de paso de
mensajes.
■ Sincronización basada en semánticas particulares de
paso de mensajes

Máquina A Máquina B Máquina C

Aplicaciones distribuidas

Sistema operativo distribuido

Kernel Kernel Kernel

Red
SI STEMAS OPERATIVOS
□ DISTRIBUIDOS
Sistemas de Memoria Compartida
Distribuida
■ Múltiples procesadores, cada uno con su memoria.
■ Memoria compartida virtual sobre multicomputadores.
■ Problema de false sharing (memoria de dos procesos
en la misma página).

Memoria virtual global


0 1 2 3 4 5 6 7 8 9 101112131415

0 2 5 1 3 6 4 7 11 13 15 memoria
9 8 10 12 14
CPU 1 CPU 2 CPU 3 CPU 4
FALSE
SHARING
SI STEMAS OPERATIVOS DE R E D
□ Dos o más computadores conectados por red.
□ Comparten los diferentes recursos y la
información del sistema mediante la red.
□ Novell Netware, Personal Netware,Windows NT
Server, UNIX, etc.
Máquina A Máquina B Máquina C

Aplicaciones distribuidas

Servicios de Servicios de Servicios de


Red del S.O. Red del S.O. 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
Máquina A Máquina B Máquina C
• Proporciona una API para la programación y
Aplicaciones distribuidas
manejo de aplicaciones distribuidas

Servicios del Middle-Ware

Servicios de Servicios de Servicios de


Red del S.O. Red del S.O. Red del S.O.

Kernel Kernel Kernel

Red
TABLA COMPARATIVA
Item S.O. Distribuido S.O. de Middle-Ware
Red
Multi-proc. Multi-comp.

Grado de Muy Alto Alto Bajo Alto


Transparencia
Mismo S.O. Sí Sí No No
Copias del 1 N N N
S.O.
Comunicación Memoria Mensajes Archivos Específico al
compartida modelo
Manejo de Global, Global, Por nodo Por nodo
recursos central distribuido
Escalabilidad No Moderado Si Variable
Usabilidad Cerrada Cerrada Abierta Abierta
ORGANIZACIONES TÍPICAS
□ Cliente-Servidor

□ 2 (o más) capas

□ Arquitecturas Modernas
CLIENTE-
SERVIDOR
MULTICAP
AS
ARQUITECTURAS
MODERNAS
FIN

También podría gustarte