1
2
Abstract— This article talks about the ring algorithm, since
many of the distributed algorithms require a process to act as a
coordinator, initiator, sequencer or to play some special role in
some way. In general, it does not matter which of the processes
takes on this special responsibility, but one of them must.
I. INTRODUCCIÓN
n algoritmo distribuido es un algoritmo diseñado para
ejecutarse en hardware de computadora construido a partir
de procesadores interconectados. Los algoritmos distribuidos se
utilizan en diferentes áreas de aplicación de la computación
distribuida, como las telecomunicaciones, la computación
científica, el procesamiento de información distribuida y el
control de procesos en tiempo real. Los problemas estándar
resueltos por algoritmos distribuidos incluyen elección de líder,
consenso, búsqueda distribuida, generación de árbol de
expansión, exclusión mutua y asignación de recursos. [1]
II. ALGORITMO DE ANILLO
El objetivo es elegir un proceso único para que tome un
determinado rol o para decidir una determinada acción.
Este algoritmo se usa cuando los procesos están física o
lógicamente ordenados en anillo, también en el caso de que no
se conozcan el número total de procesos (n), o en el caso de que
cada proceso se comunica con su vecino (izquierda o derecha).
[2]
Fig. 1. Algoritmo de elección que utiliza un anillo
III. APLICACIONES
Elegir un nuevo servidor si se cae el actual.
Elegir un nuevo proceso para entrar en una sección
*
Revista Argentina de Trabajos Estudiantiles. Patrocinada por la IEEE.
crítica.
Elegir el proceso menos activo (balanceo de carga).
Elegir el proceso con la copia más reciente (réplicas).
IV. CONSIDERACIONES
Cuando un proceso convoca elecciones cuando lleva a cabo
una acción que inicia el algoritmo de elección, pero también
puede haber N elecciones concurrentes
Un proceso siempre tiene uno de estos dos roles:
Participante: comprometido en una ejecución del
algoritmo
No participante: no comprometido en ninguna
ejecución
El proceso elegido debe ser único, incluso en elecciones
concurrentes
V. REQUISITOS Y RENDIMIENTO
Seguridad
Un proceso participante pi, donde el proceso elegido P
es aquél con identificador mayor que no se ha caído al
final de la ejecución del algoritmo de elección.
Permanencia
Todos los procesos pi participan
Rendimiento
Ancho de banda: proporcional al número de mensajes
enviados
Tiempo de ronda (tuernaround): tiempo pasado desde
que se convocan elecciones hasta que se elige un
proceso
VI. PROCEDIMIENTO
1. Inicialmente todos los procesos son “no participantes”.
2. Cualquier proceso P decide arrancar una elección en
cualquier momento.
3. Este proceso P se pone en estado “participante” y envía
un mensaje de elección M a su vecino.
4. El mensaje M enviado contiene el ID (identificador)
del proceso que ha iniciado la elección.
5. Cuando el vecino recibe el mensaje de elección M,
establece su estado como participante y comprueba el
ID del mensaje.
6. Si es mayor que su propio ID, entonces se lo envía
directamente a su vecino.
7. Si su ID es mayor al ID recibido, entonces lo coloca en
el mensaje M y lo envía a su vecino.
Algoritmo de anillo (Elección Distribuida)
Corona Carrillo Emmanuel, Sistemas Distribuidos, Grupo 1, Ingeniería en Computación, Facultad de
Ingeniería, UNAM.
[email protected]
U