sistemas distribuidos. antecedentes dos grandes avances tecnológicos en los 80’s desarrollo de...

53
Sistemas Distribuidos

Upload: petrona-luciano

Post on 22-Jan-2016

230 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Sistemas Distribuidos

Page 2: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

AntecedentesDos grandes avances tecnológicos en los 80’s

Desarrollo de microprocesadores

De una máquina de 10 millones de dólares que ejecuta una instrucción por minuto, se pasa a máquinas de 1000 dólares que ejecutan 10 millones de instrucciones por seg..

Invención de redes

Posibilidad de conectar uno o más computadoras entre sí

•Roll Royce de 100 dólares con un billón de kilómetros por litro

•Tamaño manual para abrir puerta: 200 pgs.

Page 3: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Introducción

• Redes de comunicación: Permiten conectar decenas, centenas y todas las máquinas que se requieran (Internet).

• Sistemas Operativos distribuidos que permitan cooperar y multiplicar la potencia del cálculo.

Page 4: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Desarrollos conceptuales1960s 1970s 1980s

Tiempo Compartido

Gráficas

Redes

Computadoras como

herramientaspersonales

Estaciones detrabajo

Cliente/Servidor

Redes Locales

Sistemasabiertos,

escalables,tolerantes

a fallas

Ideasclave

Institucionespilares

Xerox AltoLisp machineApple IISmalltalkAloha net

MIT CTSSCambridge TSSTenex, UnixSketchpadARPANET

experiencia requerimientos experiencia requerimientosCiclos

Xerox DoradoSun 1, Apollo DomainXerox: DFS, GrapevineBerkeley UnixNewcastle ConnectionCambridge DCSEthernet, Cambridge Ring

Sistema V - StanfordSun NFSMIT: X-11, ArgusCMU: Accent, AndrewMachAmoebaChrous

Page 5: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Sistemas Distribuidos

• Conjunto de computadoras independientes que se presenta a los usuarios como un sistema único.

• Aspectos– El hardware : máquinas autónomas, es decir,

que puedan operar sin la supervisión de ninguna otra.

– El software : Debe conseguir que los usuarios del sistema lo vean como una máquina central convencional única

Page 6: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Sistemas Distribuidos

• Conjunto de entidades que se comunican entre ellos a través de mensajes, los cuales son enviados sobre vías de comunicación.

• Entidades:

Procesos, computadoras, redes computadoras, dispositivos, procesadores etc..

Page 7: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Otras definiciones

“A distributed system is one in which the failure of a computer you didn’t 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 you’ve never never heard of crashes”

Distributed Systems (Ed. Sape Mullender)edition 1, ACM Press 1989

Page 8: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Elementos de Sistemas Distribuidos

(1) Procesosreciben, manipulan, transforman y emiten datos

(2) Vías de comunicaciónmedio sobre el cual circulan los datos y que forman una red local dotado de propiedades estructurales y dinámicas.

Page 9: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Los procesos- Término introducido por Dijkstra en 1968 para modelar las relaciones entre diferentes unidades de ejecución independientes que deben compartir recursos comunes, (materiales y lógicos)- En sistemas distribuidos,

unidad de ejecución elemental de un algoritmo distribuidoo paralelo; diversas de esas unidades pueden ejecutarsesimultáneamente, y cada una es indivisible.

- Se consideran procesos secuenciales, (i.e. presentan un flujo de control único).- Sensibles al paralelismo de su ambiente

Page 10: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Las Vías de Comunicación

• Medio a través del cual viajan los mensajes

• Sistema distribuido: vías de comunicación virtuales

• Propiedades:

1. Propiedades estructurales

2. Propiedades comportamentales

Page 11: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Propiedades Estructurales• Son de naturaleza topológica• Se refiere a las mallas de comunicación• Toda topología es posible según el problema tratado y el

algoritmo distribuido que lo resuelve.• Estructuras más comunes:

1. Anillo2. Estrella3. Árbol4. Completo

Page 12: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Propiedades Comportamentales

Hipótesis sobre comportamiento de las vías de comunicación.

1. Transmisión se hace sin duplicación de mensajes2. Transmisión sin alteración de mensajes3. Entre dos procesos el orden de recepción de mensajes es idéntico a su orden de emisión: no hay desplazamientos4. Tiempo espera de un mensaje es finito, (aunque aleatorio), (no hay perdida de mensajes).5. Tiempo atención limitado => existe una cota superior

si no hay perdida de mensajemensaje fue recibido

en caso contrariomensaje recibido o perdido

Page 13: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Características de los sistemas distribuidos

• Uso de un sistema de comunicación.• Ausencia de memoria común.• Sincronización del trabajo.• Ausencia de un estado global perceptible por un

observador.• Comunicación a través de mensajes.

Page 14: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Tolerancia a fallas

• Sistema distribuido que puede seguir funcionando, (tal vez con un menor desempeño), a pesar de que uno de sus componentes no este funcionando (sistemas robustos).– Redundancia de hardware– Recuperación de software

Page 15: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Confiabilidad

• Datos transmitidos a través de vías de comunicación

• Posibilidad de pérdida y modificación de datos (Capacidades de recuperación de datos)

Page 16: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

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 estación si la que usa falla, o un servidor puede reinicializarse en otra computadora.

Page 17: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Apertura del sistema

• Sistemas abiertos distribuidos proporcionan un mecanismo de comunicación de procesos uniforme y publican interfaces para el acceso a recursos compartidos.

• Pueden ser construidos a partir de software y hardware heterogeneo.

Page 18: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Concurrencia

• Varios procesos se encuentran sobre una sola computadora.

• Ejecución intercalada en el caso de un solo procesador y simultanea si existen n procesadores.

• Ejecución paralela posible debido a:– Varios usuarios invocan comandos o interactuan con

programas de aplicación.

– Varios procesos servidores se corren concurrentemente.

Page 19: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Escalabilidad

• Sistemas distribuidos deben operar efectiva y eficientemente en diferentes escalas.

• Sistema distribuido práctico más chico: dos estaciones y un servidor de archivos.

• Sistemas distribuidos grandes

Page 20: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Ventajas- Relativamente fácil y económico poner en conjunto sistemas compuestos de

un gran número de procesadores, (CPUs), conectados en red.

- Dos entidades trabajan más rápido que una sola.

- Necesidad de sincronizar los trabajos de cada componente

Page 21: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Objetivos

• Limitaciones geográficas• Seguridad (En un sistema centralizado existe un

único punto de fallo)• Aumento constante de Potencia de cómputo : Si

la potencia del sistema llega a ser insuficiente (Adquirir un nuevo equipo MainFrame vs Adquirir computadoras personales)

Page 22: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Aspectos clave en el Diseño 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).

Page 23: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Aspectos clave en el Diseño de los Sistemas Operativos Distribuidos

• Escalabilidad (Habilitar crecimiento de acuerdo a la demanda).

• Evitar Hw centralizado• Evitar Sw centralizado• Ninguna máquina debe tener toda la información

de todo el sistema• No existe un reloj común

Page 24: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

24

Aspectos Básicos de Diseño de Sistemas Distribuidos

Aspectos Básicos de Diseño de Sistemas Distribuidos

• Naming

• Comunicación

• Estructura software

• Asignación de carga

• Consistencia

Page 25: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

25

NamingNaming

• Nombramiento de los diferentes recursos

• Nombres deben de tener significados globales

• Involucra las siguientes consideraciones:

– La elección del tamaño del nombre para cada tipo de recurso, (puede ser finito o potencialmente infinitio)

– Nombres deben de ser “mapeados” por identificadores de comunicación

• Un nombre depende de su contexto, por lo que para resolver un nombre es necesario el nombre y un contexto

Page 26: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

26

ComunicaciónComunicación

• Componentes separados lógica y físicamente, por lo que necesitan comunicarse entre ellos para interactuar

• Comunicación involucra las operaciones siguientes:– la transferencia de datos– la sincronización de la recepción con la emisión

• Dos enfoques en sistemas distribuidos:– paso de mensajes– llamado de procedimiento remoto

• Existen dos modelos:– modelo de comunicación par a par– modelo de comunicación grupal

Page 27: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

27

Estructura softwareEstructura software• Sistemas centralizados son monolíticos:

– conjunto abstracciones que se ofrece a las aplicaciones estan reunidas en una sola interfaz

• Sistemas distribuidos– programas aplicación pueden accesar diferentes servicios , en

el cual cada uno cuenta con su propia interfaz para accesar recursos

• Principales niveles– aplicaciones– soporte de lenguaje de programación– sistema operativo– hardware

Page 28: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

28

Asignación cargaAsignación carga

• Dado un proceso, en donde se va a ejecutar• Modelo simple la capacidad de memoria y el desempeño

de un procesador de una estación determina el tamaño máximo de tarea que se puede ejecutar

• Modelos– modelo de servidor de estación– modelo de piscina de procesadores– modelo de la estación de trabajo– modelo de memoria compartida distribuida

Page 29: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

29

ConsistenciaConsistencia• 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 actualización– consistencia de replica– consistencia de caché– consistencia de fallas– consistencia de reloj– consistencia de interfaz de usuario

Page 30: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

30

Algoritmos Distribuidos• Definición: abstracción lógica de un sistema

distribuido, se habla de un conjunto de procesos y de líneas de comunicación virtuales

• Se habla de algoritmos concurrentes ejecutados en diferentes procesadores,

• Originalmente los algoritmos eran diseñados para ejecutarse procesadores distribuidos en un área grande

• Hoy en día incluye algoritmos usados en redes de área local y multiprocesadores que comparten memoria

Page 31: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Atributos que diferencian a los algoritmos distribuidos

• Método de comunicación entre procesos– memoria compartida– mensajes punto a punto y/o broadcast– ejecución de procesos remotos (RPC)

• El modelo del tiempo– completamente síncronos– completamente asíncronos– parcialmente síncronos

Page 32: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

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

• Los problemas a los que están dirigidos– problemas de aplicación– problemas de control

Page 33: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

33

Algoritmos distribuidos aplicación

• Son los algoritmos que definen una aplicación • 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

Page 34: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

34

Algoritmos distribuidos control

• Están por abajo de las aplicaciones• Proporcionan dos tipos de servicios

– Proveedor de primitivas• exclusión mutua• envío/recepción mensajes• control de concurrencia• administración de archivos

– Observadores de propiedades• interbloqueo• terminación de la ejecución• recolectores de basura

Page 35: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

35

Algoritmos de aplicación y control

Medio de soporte de comunicaciones

A1

CTL1

A2

CTL2

Ai

CTLi

An

CTLn

.....

..... .....

....

.

CTLi :control de la i-ésima aplicaciónAi: aplicación

Page 36: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Características algoritmos distribuidos• Desconocimiento del número de procesos• Desconocimiento de la topología 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 comunicación y en los procesos

Page 37: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Aplicaciones Algoritmos Distribuidos

• Redes de computadoras

• Computadoras multiprocesadores

• Procesos cooperantes

• Celdas de manufactura

• Redes inalámbricas - computación móvil

Page 38: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Problemas a Resolver en las WAN’s

Confiabilidad del intercambio de datosSelección de rutas de comunicaciónControl de tráficoPrevención de cuellos de botellaSeguridad

Page 39: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Problemas Comunes en LAN’s

Broadcasting y sincronizaciónElecciónDetección de terminaciónAsignación de recursosExclusión mutuaDeadlockMantenimiento archivos distribuidos

Page 40: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Computadoras Multiprocesadores

Computadora que consiste de diferentes procesadores generalmente ubicados dentro de un mismo espacio físico

Procesadores homogéneosPequeña escala geográficaObjetivo principal:

mejorar la velocidad del cálculo

Page 41: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Los Algoritmos Distribuidos y los Multiprocesadores

Implementación sistema envío de mensajesImplementación memoria virtual compartidaBalance de cargaTolerancia a fallas

Page 42: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Procesos Cooperantes

Procesos que interactuan para la solución de un determinado problema, o para proporcionar un servicio

Comparten memoria en comúnTrabajan sobre el mismo procesadorEjemplo: sistemas operativos, (daemons)

Page 43: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Algoritmos Distribuidos y los Procesos Cooperantes

Exclusión mutuaDeadlocksSincronizaciónIntercambio de informaciónAsignación recursos

Page 44: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Celdas de ManufacturaRobots conectados entre ellos a través de un medio de comunicación, cada uno desarrollando una actividad en particular, con un objetivo global en común

- ensamblaje- control de un determinado sistema

Page 45: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Computación MóvilWireless Local Area Networks o WLAN’s.Ausencia de cables como medio de comunicación.Envío/recepción de ondas electromagnéticas que viajan del emisor al receptor a

través del espacio.Computadoras desatadas (untethered o tetherless computer).Computadoras y aplicaciones móviles.Computadoras nómadas.

Page 46: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Problemas Resueltos por los Algoritmos Distribuidos

• Ruteo• Pagging• Información de la ubicación de la unidad móvil (almacenamiento y actualización)• Consistencia• Seguridad• Transferencias de llamadas

Page 47: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Algoritmos ¿distribuidos?

• ¿Qué distribuir?

• Datos

• Control

Page 48: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Distribuyendo los datos

• La distribución puede tomar diversas formas:

• Duplicación

• Particionamiento

Page 49: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

La Duplicación de DatosExiste duplicación 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 físicas xi tengan el mismo valor x

x1 = x2 = ...... xi ...... xn = x

Page 50: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Ejemplo de duplicación

x1

x2

x3

Pierre 500Sam 700Juan 900

Pierre 500Sam 700Juan 900

Pierre 500Sam 700Juan 900

Page 51: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Partición de DatosHablamos 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 información se tieneque consultar a todo el mundo

I = (x1 + x2 + ... xi ... + xn)

Page 52: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Ejemplo de Partición

x1 x2

x3

Pierre 500 Sam 500

Juan 900

Page 53: Sistemas Distribuidos. Antecedentes Dos grandes avances tecnológicos en los 80’s Desarrollo de microprocesadores De una máquina de 10 millones de dólares

Distribuyendo el Control

• No existe una jerarquía estática• No hay un proceso líder que en permanencia asegure el

control• Puede ser necesario un algoritmo de asignación de

funciones• Muy a menudo depende del problema que se intenta

resolver