Sei sulla pagina 1di 25

Sistemas Distribuidos

Software y Hardware

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)

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

Desventajas de distribuir sistemas

Aumento de la complejidad

Costos de administracin costos de equipo (software y hardware), servidores fisicos y en linea, switch, routers, personal administrativo y cableado. ooooo personal, dispositivos de tranferencia, dispositivos intermediarios y dispositivos finales. Red, Latencia, prdida de mensajes Saturacion de banda de ancha Retardo de paquetes, mas comun en videojuegos en lina, video conferencias y transmisin en vivo aumento de trafico. Falta de estndares nicos

Fallas ms frecuentes

Interoperabilidad

Seguridad filtracion no deceada perdida de informacion sencible caida de los servidores

Desafos de los Sistemas Distribuidos

Compartir Recursos

la comparticion de recursos se utiliza cuando un archivo, sistema, programa etc, se encuentra ubicado en un computador o servidor especifico y otros computadores o usuarios pueden tener acceso a esa computadora y sus datos por medio de una red compartida, por ejemplo: bases de datos, programas y aplicaciones, archivos de datos, video y/o audio. ejemplo: un sistema de base de datos distribuido entre las franquisias de supermercados distribuidos. ejemplo: un sistema de control de acceso y administracion de saldo utilizado con distribuidores autorizados de telefonias que se pueden encontrar desde tiendas pequeas hasta supermercados internacionales que cuenten con este servicio.

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.

10

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

11

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.

12

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.

13

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


14

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

15

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

16

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


17

Software

Se encuentran tres variantes de plataformas de software para sistemas distribuidos


Sistemas operativos distribuidos Sistemas operativos de Red Middle-ware

18

Sistemas Operativos Distribuidos

Sistemas Operativos Monoprocesador

Mltiples procesos compartiendo recursos sobre una mquina, gracias a un microkernel que implemente una mquina virtual.

Interfaz del Sistema operativo Aplicacin De usuario

No hay intercambio directo entre mdulos Mdulo de memoria Mdulo de proceso Mdulo de archivos Modo usuario Modo kernel

Micro-kernel Llamada de 19 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.

20

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
21

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
22

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
23

Kernel

Kernel Red

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
24

Kernel

Kernel

Red

Organizaciones tpicas

Cliente-Servidor

2 (o ms) capas
Arquitecturas Modernas

25

Potrebbero piacerti anche