Sie sind auf Seite 1von 39

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

1970s
requerimientos

Tiempo
Compartido

Grficas

experiencia
Estaciones de
trabajo

Computadoras
como
herramientas
personales

Cliente/Servidor

requerimientos

Sistemas
abiertos,
escalables,
tolerantes
a fallas

Redes Locales

Redes
MIT CTSS
InstitucionesCambridge TSS
Tenex, Unix
pilares
Sketchpad
ARPANET

1980s

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

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

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

Propiedades Estructurales

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

Das könnte Ihnen auch gefallen