Algoritmos de eleccion

1

Click here to load reader

Transcript of Algoritmos de eleccion

Page 1: Algoritmos de eleccion

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 requiere definir 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 elmensaje.

A tomar muy encuenta en la implementación:Cuando un proceso P i sospecha que el coordinador falla, envía a su sucesor P(i+1) mod N un mensaje de elección que contiene el identificador de Pi. Si Pi+1 no responde (ACK), Pi repite el envío a Pi+2 y así hasta que encuentra un proceso que confirma la recepción.