UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa fmc@inf.ufg.br www.inf.ufg.br/~fmc/SD2006 Aula 51-52: Algoritmos de Eleição e Exclusão Mútua Distribuída
Algoritmos de Eleição Distribuída Instituto de Informática - UFG
Eleição de Líder: O Algoritmo de “Bullying” (1) O algoritmo de eleição de bullying a) Processo 4 inicia a eleição (após detectar a falha do antigo líder) b) Processos 5 e 6 respondem, dizendo ao processo 4 para parar c) Agora os processos 5 e 6 cada um iniciam suas eleições Suposição: todo processo conhece os processos “superiores” a ele Instituto de Informática - UFG
Eleição de Líder: O Algoritmo de “Bullying” (2) Processo 6 diz ao processo 5 para parar Processo 6 vence a eleição e avisa a todos os demais Instituto de Informática - UFG O que acontece na “volta” do processo 7?
Algoritmo de Bullying: Outro exemplo election Eleição do coordenador p2, após a falha de p4 e, em seguida, de p3 Falha inicialmente detectada por p1 C election Estágio 1 answer p p p p 1 2 3 4 answer election C election election Estágio 2 answer p 1 p p p 2 3 4 timeout Estágio 3 p p p p 1 2 3 4 E após mais algumas rodadas de eleição... coordinator C Estágio 4 p p p p 1 2 3 Instituto de Informática - UFG 4
Eleição baseada em Anel 3 17 4 24 9 1 15 24 28 Obs.: A eleição foi iniciada pelo processo 17. Até o momento o maior identificador de processo encontrado é 24. Processos que já estão participando da eleição são mostrados em cor escura Instituto de Informática - UFG
O Algoritmo do Anel: Um outro exemplo Eleição utilizando um anel lógico de processos. Neste exemplo, há um particionamento da rede e dois líderes são eleitos! Instituto de Informática - UFG
Exclusão Mútua Distribuída Instituto de Informática - UFG
Exclusão Mútua: Um Algoritmo Centralizado Processo 1 pede permissão ao coordenador para entrar em uma região crítica. A permissão é concedida. Processo 2 então pede permissão para entrar na mesma região crítica. O coordenador não responde. Quando o processo 1 sai da região crítica, ele informa ao coordenador, que então responde ao processo 2. Instituto de Informática - UFG
Exclusão Mútua: Um Algoritmo Distribuído timestamp Dois processos (0 e 2) desejam entrar na mesma região crítica (RC) ao mesmo tempo. Processo 0 tem a marca de tempo mais baixa; portanto, ele vence. Quando o processo 0 conclui o uso da RC, ele envia um OK para o processo pendente, de forma que 2 possa agora entrar na RC. Instituto de Informática - UFG
Algoritmo de Ricart and Agrawala On initialization state := RELEASED; To enter the section state := WANTED; Multicast request to all processes; T := request’s timestamp; Wait until (number of replies received = (N – 1)); state := HELD; On receipt of a request <Ti, pi> at pj (i ≠ j) if (state = HELD or (state = WANTED and (T, pj) < (Ti, pi))) then queue request from pi without replying; else reply immediately to pi; end if To exit the critical section reply to any queued requests; Instituto de Informática - UFG
Exclusão Mútua: Um Algoritmo de Anel de Token Um grupo não-ordenado de processos em uma rede. Um anel lógico construído em software. Token com permissão para acesso à RC circula pelo anel Instituto de Informática - UFG
Token de exclusão mútua circulando no anel p p 1 2 p n p 3 p 4 Token Instituto de Informática - UFG
Delay before entry (in message times) Messages per entry/exit Comparação Lost token, process crash 0 to n – 1 1 to Token ring Crash of any process 2 ( n – 1 ) Distributed Coordinator crash 2 3 Centralized Problems Delay before entry (in message times) Messages per entry/exit Algorithm Uma comparação de três algoritmos de exclusão mútua. Instituto de Informática - UFG