271 likes | 559 Views
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
E N D
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 • 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.
Introducción Sistema Distribuido ¿Qué? P1 P5 P2 P3 P4 ¿Cómo?
Contenido • Se abordarán dos técnicas (tipos de algoritmos) de coordinación. • Elección de líder (liderelection) • Sincronizadores (synchronizers)
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.
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
Elección de un nuevo líder Notificación + identificador Elección P1 P2 P3 Pi Pj
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.
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.
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.
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.
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.
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.
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.
Complejidad Chang-Roberts Vs Bully Bully: Chang-Roberts:
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.
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.
Complejidad Chang-Roberts Vs Bully Vs Franklin Bully: Chang-Roberts: Franklin:
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
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.
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.
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.
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.
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.