lunes, 10 de junio de 2013

algoritmo de elección en anillos

  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.



A tomar muy encuentra en la implementación: Cuando un proceso Pi 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+2y así hasta que encuentra un proceso que confirma la recepción.

1 comentario:

  1. Hola
    Espero me puedas ayudar, como implementarias el algoritmo en un sistema web

    ResponderEliminar