ALGORITMOS DISTRIBUÍDOS Algoritmos de eleição - PDF
Download "ALGORITMOS DISTRIBUÍDOS Algoritmos de eleição"
Nathalie Lisboa Alcaide
1 ALGORITMOS DISTRIBUÍDOS Algoritmos de eleição Sistemas Distribuídos 251 Em sistemas distribuídos, diversos algoritmos necessitam que um processo funcione como, inicializador, sequenciador, enfim, ter um papel especial exemplos.: de exclusão mútua com controle centralizado para detecção de deadlock distribuído seqüenciador de eventos para ordenação consistente centralizada etc. falha do compromete serviço para vários processos novo deve assumir - eleição! Objetivo: eleger um processo, entre os ativos, para desempenhar função especial Sistemas Distribuídos 252 1
2 Existem algoritmos especiais para escolha de um processo que assumirá o papel de Veremos dois algoritmos de eleição: algoritmo do valentão (bully algorithm) algoritmo em anel (ring algorithm) Sistemas Distribuídos 253 Para ambos os algoritmos, assume-se que: (general assumptions) 1) Todo processo no sistema tem uma prioridade única 2) Quando eleição acontece, o processo com maior prioridade entre os processos ativos é eleito como 3) Na recuperação (volta à atividade), um processo falho pode tomar ações para juntar-se ao grupo de processos ativos Sistemas Distribuídos 254 2
3 Bully algorithm Desenvolvido por Garcia-Molina em 1982 Assume que um processo sabe a prioridade de todos outros processos no sistema Algoritmo Quando um processo Pi detecta que o não está respondendo a um pedido de serviço, ele inicia uma eleição da seguinte forma: a) Pi envia uma msg ELEIÇÃO para todos processos com prioridade maior que a sua b) se nenhum processo responde Pi vence a eleição e torna-se // significa que não há processos ativos com maior prioridade que a sua Pi manda uma msg COORDENADOR para os processos de menor prioridade informando que é o, deste momento em diante,. se processo Pj com prioridade maior que Pi responde (msg ALIVE) Pi não faz mais nada, Pj assume o controle Pj age como Pi nos passos a) e b) Sistemas Distribuídos 255 Bully algorithm - exemplo [Pradeep, pg 334] TEMPO suponha processos P1 a P5 com prioridade conforme seu identificador P2 P5 P1 P3 P4 request crashed crashed Sistemas Distribuídos 256 3
4 Bully algorithm - exemplo [Pradeep, pg 334] suponha processos P1 a P5 com prioridade conforme seu identificador P1 P2 P3 P4 P5 crashed TEMPO COORDENADOR Sistemas Distribuídos 257 Ring algorithm Baseado no uso de um anel lógico, sem uso de token Cada processo conhece o anel inteiro, mas manda mensagens somente para o próximo processo ativo na direção do anel Quando processo detecta que o coord. não está ativo, ele constrói uma msg ELEIÇÃO contendo seu id., e manda para o próximo do anel A cada passo, o processo que recebe a msg inclui seu id na msg e envia para o próximo do anel No final o processo que iniciou a eleição recebe a msg e escolhe aquele que tem maior id. Nova msg é enviada novamente através do anel para todos contendo o novo Uma vez que a msg passou por todos processos e chegou no originador, ela é retirada do sistema Sistemas Distribuídos 258 4
5 Análise algoritmo do valentão (bully) se processo com prioridade mais baixa detecta a falha do, em um sistema com n processos, então n-1 eleições acontecem (pradeep diz n-2) cada eleição tem mensagens conforme número de processos - O(n2) mensagens - no pior caso se processo que detecta falha é o ativo de maior prioridade precisa só de n-2 mensagens - melhor caso algoritmo do anel eleição sempre precisa de 2(n-1) mensagens n-1 mensagens para rotação da mensagem de eleição n-1 mensagens para rotação da mensagem de Sistemas Distribuídos 259 5
RELAÇÕES ENTRE COMPUTADORES EM DOMÍNIOS WINDOWS NT Resumo Durante o período compreendido entre 1997 e 1998 houve, no CBPF, um aumento significativo do número de ambientes computacionais do tipo grupo de