Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Muchos algoritmos distribuidos requieren que un proceso actúe como coordinador, iniciador, o que
represente algún papel en especial. En general, no importa qué proceso tenga esta responsabilidad
especial, pero alguno tiene que realizarla. En esta sección veremos algoritmos para elegir un
coordinador (y utilizaremos éste como un nombre general para el proceso especial). Si todos los
procesos son exactamente iguales, sin características que los distingan, no hay manera de seleccionar
a uno para que sea el especial. En consecuencia, supondremos que cada proceso tiene un número
único, por ejemplo, su dirección de red (por simplicidad, supondremos un proceso por máquina). En
general, la elección de algoritmos intenta localizar el proceso que tenga el número más grande y
designarlo como coordinador. Los algoritmos difieren en la forma en que efectúan la localización.
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 de Bully
El algoritmo abusón es un método, dentro de la computación distribuida, para la
elección dinámica de un coordinador según el ID de los procesos. El proceso con el ID
mayor será seleccionado como el coordinador del sistema distribuido.
Tipos de mensaje:
✓ Mensaje de Elección: Enviados para comunicar que se va a seleccionar un nuevo
coordinador.
✓ Mensaje de Respuesta: Encargados de responder al mensaje de elección.
✓ Mensaje de Coordinador: Enviado para comunicar el ID del proceso seleccionado.
Como primer ejemplo, consideremos el algoritmo del abusón, concebido por García-
Molina (1982). Cuando cualquier proceso advierte que el coordinador ya no está
respondiendo peticiones, inicia una elección. Un proceso, P, celebra una elección de la
siguiente manera:
1. P envía un mensaje de ELECCIÓN a todos los procesos con números superiores.
2. Si ningún proceso responde, P gana la elección y se convierte en el coordinador.
3. Si uno de los procesos superiores responde, toma el mando. El trabajo de P está
hecho.
En cualquier momento, un proceso puede recibir un mensaje de ELECCIÓN de alguno
de sus colegas con número menor. Cuando llega un mensaje de este tipo, el destinatario
envía un mensaje de OK de vuelta al remitente para indicarle que está activo y que
tomará el control. El destinatario celebra entonces una elección, a menos que ya tenga
una. En algún momento, todos los procesos se rinden menos uno, que es entonces el
nuevo coordinador. Éste anuncia su victoria enviando un mensaje a todos los procesos
en el que les indica que a partir de ese momento es el nuevo coordinador.
Si un proceso que previamente había fallado se recupera, celebra una elección. Si
sucede que el proceso con el número más grande está en ejecución, él ganará la
elección y asumirá el trabajo del coordinador. Así, el muchacho más grande del pueblo
siempre gana, de ahí el nombre de “algoritmo del abusón”.
A) B)
C) D)
E)
Procesos:
Si un proceso sabe que tiene el ID más alto:
✓ Se elige a sí mismo coordinador enviando el mensaje coordinador a todos los
procesos cuyo ID sea más bajo (proceso abusón).
Características:
✓ Cumple la Pervivencia del sistema distribuido, ya que todos los procesos conocen el
ID del coordinador al finalizar el proceso de elección.
✓ Presenta algunos problemas de Seguridad del sistema distribuido:
1. Si se cae el proceso P (coordinador), pero se recupera al mismo tiempo que otro
proceso Q decide ser el coordinador, algún proceso puede recibir dos mensajes
coordinador con distintos IDs.
2. Los valores de los tiempos de espera son imprecisos (el sistema no es síncrono).
1.1. Descripción
Muchas aplicaciones y servicios distribuidos se basan en la existencia de un proceso
diferenciado que coordina el trabajo de un conjunto de procesos. 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.
A diferencia de algunos algoritmos de anillo, éste no utiliza un token. Suponemos que los
procesos están física o lógicamente ordenados, de tal forma que cada proceso sabe cuál
es su sucesor. Cuando cualquier proceso advierte que el coordinador no funciona,
elabora un mensaje de ELECCIÓN que contiene su propio número de proceso y envía
el mensaje a su sucesor. Si el sucesor falló, el remitente lo salta y se dirige al siguiente
miembro del anillo, al siguiente después de él, hasta que localice un proceso en ejecución.
En cada paso del camino, el remitente agrega su propio número de proceso a la lista del
mensaje para volverse un candidato a elegir como coordinador. En algún momento, el
mensaje regresa al proceso que inició todo. Ese proceso reconoce este evento cuando
recibe un mensaje entrante que contiene su propio número de proceso. En ese punto, el
tipo de mensaje cambia a COORDINADOR y circula una vez más, esta vez para informar
a todos que es el coordinador (el miembro de la lista con el número mayor) y cuáles son
los miembros del nuevo anillo. Cuando este mensaje ha circulado una vez, es eliminado
y todos vuelven al trabajo.
1.2. Funcionamiento
• Utiliza un sistema síncrono. 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.
ALGORITMO DE BULLY
En sistemas distribuidos puede haber una necesidad de una operación para ser
ejecutada exclusivamente por un proceso. Para que un algoritmo de abusón sea
realizado, se elegirá un proceso que será responsable de la operación.
El algoritmo Bully es un algoritmo aplicado en sistemas distribuidos (sistemas
compuestos por más de un nodo de cálculo) para elegir al coordinador.
Para ello a grandes rasgos se puede decir que para aplicar este algoritmo cada
nodo proceso tiene un número de identificación ID. Cuando se inicia un proceso
de elección de coordinador mediante envió de mensajes entre los nodos acaba
por establecer el coordinador aquel que tiene un ID más alto.
Por ejemplo un algoritmo de bully se identifica por:
- Tener el propósito de elegir un líder en sistemas distribuidos.
- Sus procesos son identificados por un único número, y es atribuido antes
del inicio de bully.
- Busca elegir un proceso de mayor identificador, para que todos reconozcan
al nuevo líder
INCIDENCIAS:
El algoritmo de bully también llamado abusón en ingles, fue descubierto en el
año de 1982 por HECTOR GARCIA MOLLINA, PROFESOR DEL
DEPARTAMENTO DE CIENCIA Y COMPUTACION EN INGENIERIA
ELECTRICA, POR LA UNIVERSIDAD DE STANFORD.
Por este motivo (siempre manda el de número más alto) se llama Bully,
abusón en inglés
Aquél proceso con identificador más alto (el más "grandullón") es el que se hace
coordinador. De esto le viene el nombre al algoritmo - un proceso con un ID más
alto intimida a un proceso con un ID más bajo. Hay que tener en cuenta que
si P recibe un mensaje de coordinador de un proceso con un ID más bajo,
inmediatamente inicia una nueva elección.
•
El Proceso 4 detecta que el Coordinador (Proceso 7) está caído.
Los procesos que están vivos y han recibido el mensaje, devuelven un OK.
PROCESOS:
Si un proceso sabe que tiene el ID más alto:
CARACTERÍSTICAS.
II. Conclusiones
Para decidir sobre el valor de variables u otros asuntos debemos elegir un nodo
coordinador. Los algoritmos de elección buscan el nodo con id más alto mediante
comunicación en anillo o multidifusión (bully).
La sincronización entre procesos con frecuencia requiere que uno de los procesos actúe
como coordinador. En los casos donde el coordinador no es fijo, es necesario que los
procesos de un cálculo distribuido decidan qué proceso será el coordinador. Tal decisión
se toma mediante algoritmos de elección. Los algoritmos de elección se utilizan
básicamente en los casos donde el coordinador puede fallar. Sin embargo, también
pueden aplicarse para la selección de superpuntos en sistemas punto a punto.
En general, la elección de algoritmos intenta localizar el proceso que tenga el número más
grande y designarlo como coordinador. El objetivo de un algoritmo de elección es
garantizar que cuando inicie una elección, ésta concluya con todos los procesos de
acuerdo con el que será el nuevo coordinador.
Elecciones en sistemas de gran escala (Joel)
Evitar las fuentes de retraso que pueden ser: sobrecarga de puntos hacia un solo
superpunto, esto quiere decir que se repartan uniformemente los puntos a los
superpuntos
Bibliografía
• 2011https://youtu.be/K44x_VQmUs8t