Sistemas Distribuidos - PowerPoint PPT Presentation

1 / 53
About This Presentation
Title:

Sistemas Distribuidos

Description:

Title: Introducci n a los Sistemas Distribuidos Author: Adri n Ruiz Cuevas Last modified by: Carlos Rojas Created Date: 7/19/2002 1:09:36 PM Document presentation ... – PowerPoint PPT presentation

Number of Views:83
Avg rating:3.0/5.0
Slides: 54
Provided by: Adri128
Category:

less

Transcript and Presenter's Notes

Title: Sistemas Distribuidos


1
Sistemas Distribuidos
2
Antecedentes
  • Dos grandes avances tecnológicos en los 80s
  • 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.

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

4
Desarrollos conceptuales
1960s
1970s 1980s
Ideas clave
Tiempo Compartido
Estaciones de trabajo
Sistemas abiertos, escalables, tolerantes a
fallas
Computadoras como herramientas personales
Cliente/Servidor
Gráficas
Redes Locales
Redes
Sistema V - Stanford Sun NFS MIT X-11,
Argus CMU Accent, Andrew Mach Amoeba Chrous
MIT CTSS Cambridge TSS Tenex, Unix Sketchpad ARPA
NET
Xerox Dorado Sun 1, Apollo Domain Xerox DFS,
Grapevine Berkeley Unix Newcastle
Connection Cambridge DCS Ethernet, Cambridge Ring
Instituciones pilares
Xerox Alto Lisp machine Apple II Smalltalk Aloha
net
5
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

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

7
Otras definicionesA distributed system is one
in which the failure of a computer you didnt
even know existed can render your own computer
unusuableLeslie Lamport A distributed
system is one that stops from getting any work
done when a machine youve never never heard of
crashesDistributed Systems (Ed. Sape
Mullender)edition 1, ACM Press 1989
8
Elementos de Sistemas Distribuidos
(1) Procesos reciben, manipulan, transforman y
emiten datos (2) Vías de comunicación medio
sobre el cual circulan los datos y que forman
una red local dotado de propiedades
estructurales y dinámicas.
9
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
distribuido o paralelo diversas de esas
unidades pueden ejecutarse simultáneamente, y
cada una es indivisible. - Se consideran
procesos secuenciales, (i.e. presentan un flujo
de control único). - Sensibles al paralelismo
de su ambiente
10
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

11
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. Anillo
  • 2. Estrella
  • 3. Árbol
  • 4. Completo

12
Propiedades Comportamentales
Hipótesis sobre comportamiento de las vías de
comunicación. 1. Transmisión se hace sin
duplicación de mensajes 2. Transmisión sin
alteración de mensajes 3. Entre dos procesos el
orden de recepción de mensajes es idéntico a
su orden de emisión no hay desplazamientos 4.
Tiempo espera de un mensaje es finito, (aunque
aleatorio), (no hay perdida de
mensajes). 5. Tiempo atención limitado gt
existe una cota superior si no hay perdida de
mensaje mensaje fue recibido en caso
contrario mensaje recibido o perdido
13
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.

14
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

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

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

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

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

19
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

20
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

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

22
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).

23
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

24
Aspectos Básicos de Diseño de Sistemas
Distribuidos
  • Naming
  • Comunicación
  • Estructura software
  • Asignación de carga
  • Consistencia

25
Naming
  • 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

26
Comunicació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

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

28
Asignació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

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

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

31
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

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

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

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

35
Algoritmos de aplicación y control
CTLi control de la i-ésima aplicación Ai
aplicación
36
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

37
Aplicaciones Algoritmos Distribuidos
  • Redes de computadoras
  • Computadoras multiprocesadores
  • Procesos cooperantes
  • Celdas de manufactura
  • Redes inalámbricas - computación móvil

38
Problemas a Resolver en las WANs
  • Confiabilidad del intercambio de datos
  • Selección de rutas de comunicación
  • Control de tráfico
  • Prevención de cuellos de botella
  • Seguridad

39
Problemas Comunes en LANs
  • Broadcasting y sincronización
  • Elección
  • Detección de terminación
  • Asignación de recursos
  • Exclusión mutua
  • Deadlock
  • Mantenimiento archivos distribuidos

40
Computadoras Multiprocesadores
  • Computadora que consiste de diferentes
    procesadores generalmente ubicados dentro de un
    mismo espacio físico
  • Procesadores homogéneos
  • Pequeña escala geográfica
  • Objetivo principal
  • mejorar la velocidad del cálculo

41
Los Algoritmos Distribuidos y los
Multiprocesadores
  • Implementación sistema envío de mensajes
  • Implementación memoria virtual compartida
  • Balance de carga
  • Tolerancia a fallas

42
Procesos Cooperantes
  • Procesos que interactuan para la solución de un
    determinado problema, o para proporcionar un
    servicio
  • Comparten memoria en común
  • Trabajan sobre el mismo procesador
  • Ejemplo sistemas operativos, (daemons)

43
Algoritmos Distribuidos y los Procesos
Cooperantes
  • Exclusión mutua
  • Deadlocks
  • Sincronización
  • Intercambio de información
  • Asignación recursos

44
Celdas de Manufactura
  • Robots 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

45
Computación Móvil
  • Wireless Local Area Networks o WLANs.
  • 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.

46
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

47
Algoritmos distribuidos?
  • Qué distribuir?
  • Datos
  • Control

48
Distribuyendo los datos
  • La distribución puede tomar diversas formas
  • Duplicación
  • Particionamiento

49
La Duplicación de Datos
  • Existe 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

50
Ejemplo de duplicación
Pierre 500 Sam 700 Juan 900
Pierre 500 Sam 700 Juan 900
x2
x1
Pierre 500 Sam 700 Juan 900
x3
51
Partición 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 información se
    tiene
  • que consultar a todo el mundo
  • I (x1 x2 ... xi ... xn)

52
Ejemplo de Partición
Sam 500
Pierre 500
x2
x1
Juan 900
x3
53
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
Write a Comment
User Comments (0)
About PowerShow.com