Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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 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
(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
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
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)
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
Observadores de propiedades
interbloqueo terminacin de la ejecucin recolectores de basura
34
.....
.....
Ai
.....
An
CTL1
CTL2
CTLi
.....
CTLn
CTLi :control
Computadoras Multiprocesadores
Computadora que consiste de diferentes procesadores generalmente ubicados dentro de un mismo espacio fsico Procesadores homogneos Pequea escala geogrfica Objetivo principal:
mejorar
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)
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.
Algoritmos distribuidos?
Qu distribuir?
Datos
Control
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