Está en la página 1de 53

Sistemas Distribuidos

Antecedentes
Dos grandes avances tecnolgicos en los 80s Desarrollo de microprocesadores De una mquina de 10 millones de dlares que ejecuta una instruccin por minuto, se pasa a mquinas de 1000 dlares que ejecutan 10 millones de instrucciones por seg.. Invencin de redes Posibilidad de conectar uno o ms computadoras entre s
Roll Royce de 100 dlares con un billn de kilmetros por litro Tamao manual para abrir puerta: 200 pgs.

Introduccin
Redes de comunicacin: Permiten conectar decenas, centenas y todas las mquinas que se requieran (Internet). Sistemas Operativos distribuidos que permitan cooperar y multiplicar la potencia del clculo.

Desarrollos conceptuales
1960s Ciclos experiencia Ideas clave Tiempo Compartido Computadoras como herramientas personales requerimientos 1970s experiencia Estaciones de trabajo 1980s requerimientos

Grficas

Cliente/Servidor

Sistemas abiertos, escalables, tolerantes a fallas

Redes
MIT CTSS InstitucionesCambridge TSS Tenex, Unix pilares Sketchpad ARPANET

Redes Locales
Sistema V - Stanford Sun NFS MIT: X-11, Argus CMU: Accent, Andrew Mach Amoeba Chrous

Xerox Alto Lisp machine Apple II Smalltalk Aloha net

Xerox Dorado Sun 1, Apollo Domain Xerox: DFS, Grapevine Berkeley Unix Newcastle Connection Cambridge DCS Ethernet, Cambridge Ring

Sistemas Distribuidos
Conjunto de computadoras independientes que se presenta a los usuarios como un sistema nico. Aspectos El hardware : mquinas autnomas, es decir, que puedan operar sin la supervisin de ninguna otra. El software : Debe conseguir que los usuarios del sistema lo vean como una mquina central convencional nica

Sistemas Distribuidos
Conjunto de entidades que se comunican entre ellos a travs de mensajes, los cuales son enviados sobre vas de comunicacin. Entidades: Procesos, computadoras, redes computadoras, dispositivos, procesadores etc..

Otras definiciones
A distributed system is one in which the failure of a computer you didnt even know existed can render your own computer unusuable
Leslie Lamport

A distributed system is one that stops from getting any work done when a machine youve never never heard of crashes
Distributed Systems (Ed. Sape Mullender) edition 1, ACM Press 1989

Elementos de Sistemas Distribuidos


(1) Procesos reciben, manipulan, transforman y emiten datos

(2) Vas de comunicacin medio sobre el cual circulan los datos y que forman una red local dotado de propiedades estructurales y dinmicas.

Los procesos
- Trmino introducido por Dijkstra en 1968 para modelar las relaciones entre diferentes unidades de ejecucin independientes que deben compartir recursos comunes, (materiales y lgicos) - En sistemas distribuidos,

unidad de ejecucin elemental de un algoritmo distribuido o paralelo; diversas de esas unidades pueden ejecutarse simultneamente, y cada una es indivisible. - Se consideran procesos secuenciales, (i.e. presentan un flujo de control nico). - Sensibles al paralelismo de su ambiente

Las Vas de Comunicacin


Medio a travs del cual viajan los mensajes Sistema distribuido: vas de comunicacin virtuales Propiedades:
1. Propiedades estructurales

2. Propiedades comportamentales

Son de naturaleza topolgica Se refiere a las mallas de comunicacin Toda topologa es posible segn el problema tratado y el
algoritmo distribuido que lo resuelve. Estructuras ms comunes: 1. Anillo 2. Estrella 3. rbol 4. Completo

Propiedades Estructurales

Propiedades Comportamentales
Hiptesis sobre comportamiento de las vas de comunicacin. 1. Transmisin se hace sin duplicacin de mensajes 2. Transmisin sin alteracin de mensajes 3. Entre dos procesos el orden de recepcin de mensajes es idntico a su orden de emisin: no hay desplazamientos 4. Tiempo espera de un mensaje es finito, (aunque aleatorio), (no hay perdida de mensajes). 5. Tiempo atencin limitado => existe una cota superior si no hay perdida de mensaje mensaje fue recibido en caso contrario mensaje recibido o perdido

Caractersticas de los sistemas distribuidos


Uso de un sistema de comunicacin. Ausencia de memoria comn. Sincronizacin del trabajo. Ausencia de un estado global perceptible por un observador. Comunicacin a travs de mensajes.

Tolerancia a fallas
Sistema distribuido que puede seguir funcionando, (tal vez con un menor desempeo), a pesar de que uno de sus componentes no este funcionando (sistemas robustos). Redundancia de hardware Recuperacin de software

Confiabilidad
Datos transmitidos a travs de vas de comunicacin Posibilidad de prdida y modificacin de datos (Capacidades de recuperacin de datos)

Disponibilidad
Falla en una sola computadora multiusuario da como resultado la no disponibilidad del sistema para todos sus usuarios. Cuando uno de los componentes falla en un sistema distribuido solo el trabajo que estaba usando el componente es afectado. Un usuario puede moverse a otra estacin si la que usa falla, o un servidor puede reinicializarse en otra computadora.

Apertura del sistema


Sistemas abiertos distribuidos proporcionan un mecanismo de comunicacin de procesos uniforme y publican interfaces para el acceso a recursos compartidos. Pueden ser construidos a partir de software y hardware heterogeneo.

Concurrencia
Varios procesos se encuentran sobre una sola computadora. Ejecucin intercalada en el caso de un solo procesador y simultanea si existen n procesadores. Ejecucin paralela posible debido a:
Varios usuarios invocan comandos o interactuan con programas de aplicacin. Varios procesos servidores se corren concurrentemente.

Escalabilidad
Sistemas distribuidos deben operar efectiva y eficientemente en diferentes escalas. Sistema distribuido prctico ms chico: dos estaciones y un servidor de archivos. Sistemas distribuidos grandes

Ventajas
- Relativamente fcil y econmico poner en conjunto sistemas compuestos de un gran nmero de procesadores, (CPUs), conectados en red.

- Dos entidades trabajan ms rpido que una sola.


- Necesidad de sincronizar los trabajos de cada componente

Objetivos
Limitaciones geogrficas Seguridad (En un sistema centralizado existe un nico punto de fallo) Aumento constante de Potencia de cmputo : Si la potencia del sistema llega a ser insuficiente (Adquirir un nuevo equipo MainFrame vs Adquirir computadoras personales)

Aspectos clave en el Diseo de los Sistemas Operativos Distribuidos


Tolerancia a fallas. Transparencia a la ocurrencia (El usuario no debe notar otros usuarios en el sistema). Transparencia al paralelismo (Asignar los procesadores a las actividades del programa sin el concurso del programador). Fiabilidad (Fiabilidad global del sistema).

Aspectos clave en el Diseo de los Sistemas Operativos Distribuidos


Escalabilidad (Habilitar crecimiento de acuerdo a la demanda). Evitar Hw centralizado Evitar Sw centralizado Ninguna mquina debe tener toda la informacin de todo el sistema No existe un reloj comn

Aspectos Bsicos de Diseo de Sistemas Distribuidos


Naming Comunicacin Estructura software Asignacin de carga Consistencia

24

Naming
Nombramiento de los diferentes recursos Nombres deben de tener significados globales Involucra las siguientes consideraciones: La eleccin del tamao del nombre para cada tipo de recurso, (puede ser finito o potencialmente infinitio) Nombres deben de ser mapeados por identificadores de comunicacin Un nombre depende de su contexto, por lo que para resolver un nombre es necesario el nombre y un contexto
25

Comunicacin
Componentes separados lgica y fsicamente, por lo que necesitan comunicarse entre ellos para interactuar Comunicacin involucra las operaciones siguientes:
la transferencia de datos la sincronizacin de la recepcin con la emisin

Dos enfoques en sistemas distribuidos:


paso de mensajes llamado de procedimiento remoto

Existen dos modelos:


modelo de comunicacin par a par modelo de comunicacin grupal
26

Estructura software
Sistemas centralizados son monolticos: conjunto abstracciones que se ofrece a las aplicaciones estan reunidas en una sola interfaz Sistemas distribuidos programas aplicacin pueden accesar diferentes servicios , en el cual cada uno cuenta con su propia interfaz para accesar recursos Principales niveles aplicaciones soporte de lenguaje de programacin sistema operativo hardware
27

Asignacin carga
Dado un proceso, en donde se va a ejecutar Modelo simple la capacidad de memoria y el desempeo de un procesador de una estacin determina el tamao mximo de tarea que se puede ejecutar Modelos modelo de servidor de estacin modelo de piscina de procesadores modelo de la estacin de trabajo modelo de memoria compartida distribuida
28

Consistencia
Diferentes procesos accesan y actualizan datos concurrentemente Los cambios no son instantaneos Un cierto conjunto de cambios debe de aparecer igual a todos los otros procesos que integran el sistema distribuido. Tipos consistencia:
consistencia de actualizacin consistencia de replica consistencia de cach consistencia de fallas consistencia de reloj consistencia de interfaz de usuario
29

Algoritmos Distribuidos
Definicin: abstraccin lgica de un sistema distribuido, se habla de un conjunto de procesos y de lneas de comunicacin virtuales Se habla de algoritmos concurrentes ejecutados en diferentes procesadores, Originalmente los algoritmos eran diseados para ejecutarse procesadores distribuidos en un rea grande Hoy en da incluye algoritmos usados en redes de rea local y multiprocesadores que comparten memoria

30

Atributos que diferencian a los algoritmos distribuidos


Mtodo de comunicacin entre procesos
memoria compartida mensajes punto a punto y/o broadcast ejecucin de procesos remotos (RPC)

El modelo del tiempo


completamente sncronos completamente asncronos parcialmente sncronos

El modelo de fallas
sistema completamente fiable sistema tolera algunas fallas fallas bizantinas

Los problemas a los que estn dirigidos


problemas de aplicacin problemas de control

Algoritmos distribuidos aplicacin


Son los algoritmos que definen una aplicacin Representan la interfaz final entre los usuarios y el sistema distribuido Se apoyan en arquitecturas de software como:
CORBA: Common Object Request Broker Architecture COM: Component Object Model EJB: Enterprise JavaBeans

33

Algoritmos distribuidos control


Estn por abajo de las aplicaciones Proporcionan dos tipos de servicios
Proveedor de primitivas
exclusin mutua envo/recepcin mensajes control de concurrencia administracin de archivos

Observadores de propiedades
interbloqueo terminacin de la ejecucin recolectores de basura
34

Algoritmos de aplicacin y control


A1
A2

.....
.....

Ai

.....

An

CTL1

CTL2

CTLi

.....

CTLn

Medio de soporte de comunicaciones

CTLi :control

de la i-sima aplicacin Ai: aplicacin


35

Caractersticas algoritmos distribuidos


Desconocimiento del nmero de procesos Desconocimiento de la topologa de la red Entradas independientes en sitios diferentes Varias programas ejecutandose al mismo tiempo, empezando en tiempos diferentes y operando a diferentes velocidades No determinismo en el procesador (processor nondeterminism) Tiempos entrega de mensajes diferentes Orden entrega de mensajes desconocido Fallas en la comunicacin y en los procesos

Aplicaciones Algoritmos Distribuidos


Redes de computadoras Computadoras multiprocesadores Procesos cooperantes Celdas de manufactura Redes inalmbricas - computacin mvil

Problemas a Resolver en las WANs


Confiabilidad del intercambio de datos Seleccin de rutas de comunicacin Control de trfico Prevencin de cuellos de botella Seguridad

Problemas Comunes en LANs


Broadcasting y sincronizacin Eleccin Deteccin de terminacin Asignacin de recursos Exclusin mutua Deadlock Mantenimiento archivos distribuidos

Computadoras Multiprocesadores
Computadora que consiste de diferentes procesadores generalmente ubicados dentro de un mismo espacio fsico Procesadores homogneos Pequea escala geogrfica Objetivo principal:
mejorar

la velocidad del clculo

Los Algoritmos Distribuidos y los Multiprocesadores


Implementacin sistema envo de mensajes Implementacin memoria virtual compartida Balance de carga Tolerancia a fallas

Procesos Cooperantes
Procesos que interactuan para la solucin de un determinado problema, o para proporcionar un servicio Comparten memoria en comn Trabajan sobre el mismo procesador Ejemplo: sistemas operativos, (daemons)

Algoritmos Distribuidos y los Procesos Cooperantes


Exclusin mutua Deadlocks Sincronizacin Intercambio de informacin Asignacin recursos

Celdas de Manufactura
Robots conectados entre ellos a travs de un medio de comunicacin, cada uno desarrollando una actividad en particular, con un objetivo global en comn - ensamblaje - control de un determinado sistema

Computacin Mvil
Wireless Local Area Networks o WLANs. Ausencia de cables como medio de comunicacin. Envo/recepcin de ondas electromagnticas que viajan del emisor al receptor a travs del espacio. Computadoras desatadas (untethered o tetherless computer). Computadoras y aplicaciones mviles. Computadoras nmadas.

Problemas Resueltos por los Algoritmos Distribuidos


Ruteo Pagging Informacin de la ubicacin de la unidad mvil (almacenamiento y actualizacin) Consistencia Seguridad Transferencias de llamadas

Algoritmos distribuidos?
Qu distribuir?
Datos
Control

Distribuyendo los datos


La distribucin puede tomar diversas formas: Duplicacin

Particionamiento

La Duplicacin de Datos
Existe duplicacin de un dato x, si este se encuentra duplicado en n ejemplares x1, x2 .... xn, donde 1,2, .... n son los identificadores de los sitios que participan en el algoritmo distribuido. Asegurar la coherencia mutua de las copias a todo instante las copias fsicas xi tengan el mismo valor x x1 = x2 = ...... xi ...... xn = x

Ejemplo de duplicacin
Pierre 500 Sam 700 Juan 900 Pierre 500 Sam 700 Juan 900

x2

x1
Pierre 500 Sam 700 Juan 900

x3

Particin de Datos
Hablamos de particionamiento de datos cuando, estando accesibles desde todos los sitios, los datos son particionados de tal forma que cada una de las particiones se encuentra sobre un sitio dado Para obtener la totalidad de la informacin se tiene que consultar a todo el mundo I = (x1 + x2 + ... xi ... + xn)

Ejemplo de Particin
Pierre 500 Sam 500

x1

x2

Juan 900

x3

Distribuyendo el Control
No existe una jerarqua esttica No hay un proceso lder que en permanencia asegure el control Puede ser necesario un algoritmo de asignacin de funciones Muy a menudo depende del problema que se intenta resolver

También podría gustarte