Algoritmos de elección
Muchas
aplicaciones y servicios distribuidos se basan en la existencia de un proceso
diferenciado que coordina el trabajo de un
conjunto de procesos. Por ejemplo, acabamos de ver que el algoritmo centralizado para exclusión mutua distribuida
requiere un proceso coordinador. En
todas estas situaciones se requiere detectar que el proceso coordinador falla y
elegir un nuevo proceso que asuma el papel de coordinador. La elección
requiere el acuerdo sobre quién va a ser el nuevo y único coordinador. De
nuevo, las decisiones se basan en la existencia de plazos para la recepción de los mensajes de respuesta.
Por otra parte, para determinar el criterio de elección de un proceso como
coordinador se requieredefinir un
orden total entre el conjunto de procesos.
Supondremos
que los procesos tienen asociados identificadores únicos según los cuales
pueden ordenarse.
Algoritmo del anillo
• Sistema
síncrono [Chang & Roberts79]. Cada proceso tiene un canal con el siguiente
proceso en el anillo. Los mensajes circulan
en sentido de las agujas del reloj.
• El proceso que inicia el algoritmo se marca como
participante y envía su identificador en un mensaje de elección a su vecino.
• Cuando un proceso recibe un mensaje de elección
compara el identificador recibido con el suyo.
–
Si es menor el recibido y el proceso no es un participante, sustituye el
identificador en el mensaje por el suyo y lo reenvía al vecino y se marca como participante.
–
Si es mayor el recibido, reenvía el mensaje y se marca como participante.
–
Si es menor el recibido y el proceso es un participante, no hace nada (no
envía ningún mensaje).
–
Si el identificador coincide con el del proceso, ese proceso es el líder.
• El líder se marca como no participante y envía
un mensaje elegido al siguiente proceso.
• Cuando un proceso distinto al
líder recibe este mensaje, anota qué proceso es el líder y reenvía el mensaje.
Hola
ResponderEliminarEspero me puedas ayudar, como implementarias el algoritmo en un sistema web