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 Aula 49-50: Sincronização de Relógios Lógicos Estado Global Algoritmos de Eleição e Exclusão Mútua Distribuída
Instituto de Informática - UFG Relógios Lógicos
Instituto de Informática - UFG Eventos ocorrendo em três processos
Instituto de Informática - UFG Marcas de Tempo de Lamport a)Três processos, cada um com seu próprio relógio. Os relógios “correm” a taxas diferentes. b)O algoritmo de Lamport corrige os relógios (relógios lógicos).
Instituto de Informática - UFG Marcas de tempo de Lamport para os eventos
Instituto de Informática - UFG Vetores de marcas de tempo para os eventos
Instituto de Informática - UFG Exemplo: Multicast Totalmente Ordenado Atualização de um banco de dados replicado deixando-o em um estado inconsistente.
Instituto de Informática - UFG Estado Global
Instituto de Informática - UFG Detecção de propriedades globais Alguns problemas relevantes
Instituto de Informática - UFG Estado Global (1) a)Um corte consistente b)Um corte inconsistente
Instituto de Informática - UFG Estado Global (2) a)Organização de um processo e canais para se obter um “instantâneo” do sistema distribuído
Instituto de Informática - UFG Estado Global (3) a)Processo Q recebe um marcador pela primeira vez e registra seu estado local b)Processo Q retransmite a mensagem de marcador através de seus canais de saída c)Q registra todas as mensagens que chegam d)Q recebe um marcador para seu canal entrante e pára de registrar o estado desse canal
Instituto de Informática - UFG 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) d)Processo 6 diz ao processo 5 para parar e)Processo 6 vence a eleição e avisa a todos os demais O que acontece na “volta” do processo 7?
Instituto de Informática - UFG Algoritmo de Bullying: Outro exemplo p 1 p 2 p 3 p 4 p 1 p 2 p 3 p 4 C coordinator Stage 4 C election Stage 2 p 1 p 2 p 3 p 4 C election answer election Stage 1 timeout Stage 3 Eventually..... p 1 p 2 p 3 p 4 election answer The election of coordinator p 2, after the failure of p 4 and then p 3
Instituto de Informática - UFG Eleição baseada em Anel Note: The election was started by process 17. The highest process identifier encountered so far is 24. Participant processes are shown darkened
Instituto de Informática - UFG O Algoritmo do Anel Eleição utilizando um anel lógico de processos.
Instituto de Informática - UFG Exclusão Mútua Distribuída
Instituto de Informática - UFG Exclusão Mútua: Um Algoritmo Centralizado a)Processo 1 pede permissão ao coordenador para entrar em uma região crítica. A permissão é concedida. b)Processo 2 então pede permissão para entrar na mesma região crítica. O coordenador não responde. c)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 a)Dois processos (0 e 2) desejam entrar na mesma região crítica (RC) ao mesmo tempo. b)Processo 0 tem a marca de tempo mais baixa; portanto, ele vence. c)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 Exclusão Mútua: Um Algoritmo de Anel de Token a)Um grupo não-ordenado de processos em uma rede. b)Um anel lógico construído em software. c)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 n p 2 p 3 p 4 Token p 1
Instituto de Informática - UFGComparação Uma comparação de três algoritmos de exclusão mútua. Lost token, process crash0 to n – 1 1 to Token ring Crash of any process2 ( n – 1 ) Distributed Coordinator crash23Centralized ProblemsDelay before entry (in message times)Messages per entry/exitAlgorithm
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;request processing deferred here T := request’s timestamp; Wait until (number of replies received = (N – 1)); state := HELD; On receipt of a request at p j (i ≠ j) if (state = HELD or (state = WANTED and (T, p j ) < (T i, p i ))) then queue request from p i without replying; else reply immediately to p i ; end if To exit the critical section state := RELEASED; reply to any queued requests;