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