Beruflich Dokumente
Kultur Dokumente
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
Elementos de Sistemas
Distribuidos
(1) Procesos
reciben, manipulan, transforman y emiten datos
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,
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
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
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.
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.
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)
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
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
El modelo de fallas
sistema completamente fiable
sistema tolera algunas fallas
fallas bizantinas
33
exclusin mutua
envo/recepcin mensajes
control de concurrencia
administracin de archivos
Observadores de propiedades
interbloqueo
terminacin de la ejecucin
recolectores de basura
34
A2
.....
Ai
.....
An
CTL1
CTL2
.....
CTLi
.....
CTLn
CTLi :control
de la i-sima aplicacin
Ai: aplicacin
35
Redes de computadoras
Computadoras multiprocesadores
Procesos cooperantes
Celdas de manufactura
Redes inalmbricas - computacin
mvil
Problemas Comunes en
LANs
Broadcasting y sincronizacin
Eleccin
Deteccin de terminacin
Asignacin de recursos
Exclusin mutua
Deadlock
Mantenimiento archivos distribuidos