1 / 25

Sistemas Distribuidos

Sistemas Distribuidos. Algoritmos de Coordinación. Florentino Salazar García Cinvestav , Tamaulipas Instituto Politécnico Nacional Cd . Victoria, Tamaulipas. Introducción. Para alcanzar sus objetivos, los Sistemas Distribuidos

Download Presentation

Sistemas Distribuidos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sistemas Distribuidos Algoritmos de Coordinación Florentino Salazar García Cinvestav, Tamaulipas Instituto Politécnico Nacional Cd. Victoria, Tamaulipas

  2. Introducción • Para alcanzar sus objetivos, los Sistemas Distribuidos • cuentan con formas especificas de coordinación entre procesos. (Preprocesamiento) • Sincronización de reloj (clocksynchronization) • Construcción de un árbol de expansión No son inherentes a los objetivos del negocio.

  3. Introducción Sistema Distribuido ¿Qué? P1 P5 P2 P3 P4 ¿Cómo?

  4. Contenido • Se abordarán dos técnicas (tipos de algoritmos) de coordinación. • Elección de líder (liderelection) • Sincronizadores (synchronizers)

  5. Elección de líder(Algoritmos de Elección) • «De un conjunto determinado de procesos, uno es elegido como líder, y le son asignadas responsabilidades especiales necesarias para los demás procesos del sistema.» • Cada proceso activo, P, tiene un identificador, i (prioridad), en el Sistema Distribuido. • El líder será el proceso con la mayor prioridad. • El líder es siempre el centro de control.

  6. El objetivo del algoritmo de elección: • asegurar que cuando se comience una elección, se concluya con que todos los procesos están de acuerdo en cuál es el nuevo líder. Ejemplo: DBMS centralizado. P4 Notificación + identificador P1 P2 P3 Pi Elección

  7. Elección de un nuevo líder Notificación + identificador Elección P1 P2 P3 Pi Pj

  8. Elección de líder != Exclusión mutua • Similitud • Interés: Elegir a uno de los procesos como privilegiado (cualquier proceso que entre a la sección crítica). • Diferencias • EM; Los algoritmos trabajan en ausencia de fallos. EL: Es lo que inicia una nueva elección. • El problema de «Starvation» es irrelevante en EL. • EL; no requiere que el proceso líder salga de la sección crítica. Contrario a EM. • EL; el líder debe informar a cada proceso activo sobre su identidad, lo cual no es un problema en EM.

  9. Algoritmo Bully (matón)(García-Molina) • Trabaja en una red completamente conectada. • Los enlaces de comunicación están libres de fallos. • Los procesos pueden fallar solamente si se detienen (o se caen) (onlybystopping). • Las fallas pueden ser detectadas mediante el uso de timeout.

  10. Algoritmo Bully (matón)(García-Molina) • El algoritmo usa 3 diferentes tipos de mensaje: • «election»: Un proceso inicia una elección con este mensaje. («¿Puedo ser el líder?»). • «reply»: Es una respuesta al mensaje de elección. («No, no puedes ser el líder»). • «leader»: Un proceso envía este mensaje cuando cree ser el nuevo líder.

  11. Algoritmo Bully (matón)(García-Molina) • Cualquier proceso, después de detectar una falla del líder, solicita ser el nuevo líder enviando un mensaje «election» a cada proceso con un identificador mayor. • Si cualquier proceso con identificador mayor responde un «reply», entonces el proceso solicitante desiste. Espera un «leader»(«Soy el lider») por parte de un proceso con un identificador mayor. • Si ningún proceso con identificador mayor responde con un «reply» al mensaje «election» enviado por el proceso i, entonces el proceso i se elije líder y envía un mensaje «leader» a cada proceso en el sistema. • Si el proceso i recibió un «reply» a su mensaje «election» y no recibe un «leader» en un periodo predeterminado (timeout), entonces el proceso i deduce que el proceso ganador falló y reinicia la elección.

  12. Complejidad del algoritmo Bully

  13. Topología de anillo(MaximaFindingon a Ring) • El problema ahora se reduce a eficientar la búsqueda del proceso con el identificador (único) mínimo o máximo, según convenga. • A diferencia del algoritmo Bully, los siguientes algoritmos no requieren de un grafo completamente conectado.

  14. Algoritmo Chang-Roberts(Fase 1) • Se asume una topología de anillo unidireccional (izquierda). • Inicialmente, todos los procesos son «no participante». • Si un proceso detecta una falla del líder actual, inicia una elección. Envía un mensaje de elección con su ID a su vecino izquierdo. • Cada vez que un proceso envía o pasa un mensaje de elección, éste se marca como «participante». • Cuando un proceso recibe un mensaje de elección, compara el ID en el mensaje con el suyo: • Si el identificador en el mensaje es mayor, el proceso sólo lo pasa a su vecino izquierdo. • Si el identificador en el mensaje es menor, y el proceso aún no es «participante», éste reemplaza el ID del mensaje por el suyo y lo envía a su vecino izquierdo. • Si el identificador en el mensaje es menor, y el proceso ya es «participante», éste descarta el mensaje de elección. • Si el ID en el mensaje es igual al del proceso que lo recibe, ese proceso comienza a actuar como el líder.

  15. Algoritmo Chang-Roberts(Fase 2) • Cuando un proceso inicia a actuar como el líder, éste inicia la segunda fase del algoritmo. • El líder se marca como «No Participante» y envía un mensaje «elected» a su vecino izquierdo, indicando su elección y su ID. • Cuando un proceso recibe un mensaje «elected», se marca como «no participante», almacena el ID del proceso líder y pasa mensaje «elected» tal cual lo recibió. • Cuando el mensaje «elected» alcanza al nuevo proceso líder, éste lo descarta, y la elección termina.

  16. Complejidad Chang-Roberts Vs Bully Bully: Chang-Roberts:

  17. Algoritmo de Franklin • Trabaja en un anillo bidireccional. • Complejidad de mensaje menor que la de Chang-Roberts. • Procesos con identificadores únicos están organizados en un orden arbitrario en el anillo. • Cada proceso puede ser, rojo o negro. • Inicialmente cada proceso es rojo. • El algoritmo es síncrono y trabaja en rounds.

  18. Algoritmo de Franklin • Cada proceso rojo envía un mensaje con su ID a sus dos vecinos y • Examina los mensajes que le fueron enviados por sus vecinos. • Si el proceso i recibe un mensaje con un ID mayor que el suyo, i abandona la competencia y se vuelve negro. (sólo pasará mensajes). • El algoritmo termina cuando sólo hay un proceso rojo en todo el sistema, el nuevo líder.

  19. Complejidad Chang-Roberts Vs Bully Vs Franklin Bully: Chang-Roberts: Franklin:

  20. Algoritmo de Franklin P0 Round 0 P5 P2 P0 Round 1 P0 P5 P2 P2 P5 P2 P2 P1 P7 P7 P1 Pi P7 P9 P7 P7 P1 P3 P6 P3 P6 P3 P6 P9 P9 P9 P9 Nuevo líder: P9

  21. Sincronizadores (Synchronizers) • Modelos asíncronos: difícil de tratar en aplicaciones reales. (ej., Ex. Mutua, Hilos). • Es más simple escribir algoritmos en modelo de procesado síncrono. (lock-stepsynchrony). • Es más fácil probar que son correctos (ej., debugging) • Sincronizadores: transforman un modelo asíncrono en uno síncrono.

  22. Sincronizadores (Synchronizers) • Los algoritmos distribuidos se diseñan con mayor facilidad en una red síncrona. • El cómputo se realiza en pasos discretos, round o ticks. • En cada tick, un proceso puede; • Recibir mensajes de sus vecinos • Realizar cálculos locales • Enviar mensajes a sus vecinos • Sincronizador: protocolo que transforma un modelo asíncrono en un modelo de proceso síncrono. • Simulando los ticks en una red asíncrona. • Las acciones del algoritmo síncrono son programadas (scheduled) para ser ejecutadas en los ticks apropiados. Sistema listo para ejecutar la versión síncrona del algoritmo distribuido.

  23. Sincronizadores (Synchronizers) • Sin importar como se simulen los ticks, un sincronizador debe asegurar: • Cada mensaje envíado en tickk debe ser recibido en el tickk.

  24. El sincronizador ABD(AsynchronousBoundedDelay) • Cada proceso tiene un reloj físico. • El retardo de propagación de mensaje tiene un límite superior conocido, d. • c, denota el reloj físico del proceso. • Uno o más procesos inicializan el reloj, c=0. • Ejecutan las acciones para el tick 0, y envían una señal de start a sus vecinos. • Cada vecino despierta y cuando recibe la señal de start, inicializa su reloj en 0 y ejecuta las acciones para el tick 0. • Antes de ejecutar las acciones del tick (i+1), todos los procesos deben enviar y recibir todos los mensaje correspondientes al tick i.

  25. Sincronizador de Awerbuch • Cuando los relojes físicos no están sincronizados. • El límite superior del retardo de propagación de mensaje se desconoce. • Sincronizador a,b,g. • Complejidad de mensaje: b < a • Complejidad temporal: a < b • g es una combinación de las anteriores.

More Related