Algoritmo em anel

Propaganda
Sistemas Distribuídos
Professora: Ana Paula Couto
DCC 064
Eleição de Líder
Capítulo 6
Aula Anterior...

Exclusão Mútua
– Como gerenciar os recursos que podem ser
considerados como “regiões críticas”
– Algoritmos Centralizados: Um nó é responsável
por controlar se um determinado processo está ou
não acessando a região crítica
– Algoritmo Distribuído: Todos os processos (nós)
trocam mensagens entre si para verificar se a
região critica está sendo acessada. O processo
acessa a região crítica somente se TODOS os
processos enviarem um OK
Algoritmos de Eleição




Muitos SDs precisam que um processo aja como
coordenador ou outro papel especial
Em geral, não importa qual processo assume
responsabilidade
Veremos algoritmos para eleger coordenador
 Em geral, tentam localizar processo com maior
ID
 Assume-se que todos os processos conhecem
os IDs dos demais processos
 Não se sabe se estão
disponíveis/indisponívies
Meta: quando eleição começa, termina com todos
concordando com quem é o novo coordenador
Algoritmo do Valentão (Bully)


Quando processo nota que cooordenador não está
mais respondendo requisições, inicia eleição
Processo P convoca uma eleição:
1.
2.
3.

P envia msg de eleição para todos os processos com IDs
maiores
Se ninguém responde, P vence eleição e torna-se
coordenador
Se algum processo com ID maior responde, ele desiste.
Quando processo recebe msg de eleição de membros
com ID mais baixa

Envia OK para remetente para indicar que está vivo e assume
processo
Algoritmo do Valentão (Bully)


Eventualmente todos os processos desistem
menos um: novo coordenador
Se processo que estava indisponível volta,
inicia eleição
 Se
for processo com maior ID, vence e toma
coordenação
 Maior “cara da cidade” sempre vence: algoritmo
do valentão
Algoritmo do Valentão
Algoritmo em anel
• Uso de um anel, mas sem token
• Processos fisicamente ou logicamente
ordenados
 Conhecem
sucessor
• Processo verifica que coordenador não funciona
 Envia msg de eleição para sucessor
 Msg contém seu ID
 Se sucessor indisponível, manda para
próximo, e
assim sucessivamente
 A cada passo, processo que recebe msg adiciona
seu ID e repassa para sucessor
Algoritmo em anel

Eventualmente msg volta para quem começou
eleição


Reconhece porque msg de eleição contém seu ID
Neste ponto muda msg para coordenador e a
circula novamente para informar a todos
1.
2.

Novo coordenador: processo com maior ID
Nova configuração do anel
Quando msg coordenador volta para processo que
iniciou eleição, é removida e todos voltam a
trabalhar
Algoritmo em anel
Download