Sistemas Distribuídos
Sincronizaçãoe
Coordenação
Instituto de Informática – UFG
Verão 2005
Baseado em: Tanenbaum, cap. 5
Sincronização de Relógios
Quando cada máquina tem seu próprio relógio, um evento que ocorreu depois de outro pode, não obstante, ser associado a um tempo anterior.
Relógios Físicos (1)
Computação do dia solar médio.
Relógios Físicos (2)
Segundos TAI são de duração constante, diferentemente de segundos solares. Segundos “bissextos” são introduzidos quando
necessário para manter em fase com o sol.
Algoritmos de Sincronização de Relógios
A relação entre tempo de relógio e o tempo UTC quando os relógios “ticam” com taxas diferentes.
Algoritmo de Cristian's
Obtendo o tempo atual a partir de um servidor de tempo.
O Algoritmo de Berkeley
a) O daemon de tempo pergunta a todas as máquinas os valores de seus relógios locais
b) As máquinas respondemc) O daemon de tempo instrui todas as máquinas a atualizarem seus relógios
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).
Exemplo: Multicast Totalmente Ordenado
Atualização de um banco de dados replicado deixando-o em um estado inconsistente.
Estado Global (1)
a) Um corte consistenteb) Um corte inconsistente
Estado Global (2)
a) Organização de um processo e canais para um “instantâneo” distribuído
Estado Global (3)
b) Processo Q recebe um marcador pela primeira vez e registra seu estado local
c) Q registra todas as mensagens que chegamd) Q recebe um marcador para seu canal entrante e pára de registrar o
estado do canal entrante
Eleição de Líder:O Algoritmo de “Bullying” (1)
O algoritmo de eleição de bullying• Processo 4 inicia a eleição (após detectar a falha do antigo líder)• Processos 5 e 6 respondem, dizendo ao processo 4 para parar• Agora os processos 5 e 6 cada um iniciam suas eleições
Eleição de Líder:O Algoritmo de “Bullying” (2)
d) Processo 6 diz ao processo 5 para parare) Processo 6 vence a eleição e avisa a todos os demais
O Algoritmo do Anel
Eleição utilizando um anel lógico de processos.
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.
Exclusão Mútua:Um Algoritmo Distribuído
a) Dois processos 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.
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.
Comparação
Uma comparação de três algoritmos de exclusão mútua.
AlgorithmMessages per
entry/exitDelay before entry (in message times)
Problems
Centralized 3 2 Coordinator crash
Distributed 2 ( n – 1 ) 2 ( n – 1 )Crash of any process
Token ring 1 to 0 to n – 1Lost token, process crash
O Modelo de Transações (1)
Atualização de um registro mestre com tolerância a falhas.
O Modelo de Transações (2)
Exemplos de primitivas para transações.
Primitive Description
BEGIN_TRANSACTION Make the start of a transaction
END_TRANSACTION Terminate the transaction and try to commit
ABORT_TRANSACTION Kill the transaction and restore the old values
READ Read data from a file, a table, or otherwise
WRITE Write data to a file, a table, or otherwise
O Modelo de Transações (3)
a) Transação para reservar três vôos concluída com sucesso, i.e., commit
b) Transação é abortada quando a reserva do terceiro vôo falha
BEGIN_TRANSACTION reserve WP -> JFK; reserve JFK -> Nairobi; reserve Nairobi -> Malindi;END_TRANSACTION
(a)
BEGIN_TRANSACTION reserve WP -> JFK; reserve JFK -> Nairobi; reserve Nairobi -> Malindi full =>ABORT_TRANSACTION (b)
Transações Distribuídas
a) Uma transação aninhadab) Uma transação distribuída
Espaço de Trabalho Privativo
a) O índice de arquivos e blocos de disco para um arquivo de três blocosb) Situação após uma transação ter modificado o bloco 0 e concatenado o bloco 3c) Após o commit da transação
Writeahead Log
a) Uma transaçãob) – d) O log antes de cada sentença ser executada
x = 0;
y = 0;
BEGIN_TRANSACTION;
x = x + 1;
y = y + 2
x = y * y;
END_TRANSACTION;
(a)
Log
[x = 0 / 1]
(b)
Log
[x = 0 / 1]
[y = 0/2]
(c)
Log
[x = 0 / 1]
[y = 0/2]
[x = 1/4]
(d)
Controle de Concorrência (1)
Organização geral de gerentes para tratar transações.
Controle de Concorrência (2)
Organização geral dos gerentes para tratar transações distribuídas.
Serializabilidade
a) – c) Três transações: T1, T2, e T3
d) Possíveis escalonamentos
BEGIN_TRANSACTION x = 0; x = x + 1;END_TRANSACTION
(a)
BEGIN_TRANSACTION x = 0; x = x + 2;END_TRANSACTION
(b)
BEGIN_TRANSACTION x = 0; x = x + 3;END_TRANSACTION
(c)
Schedule 1 x = 0; x = x + 1; x = 0; x = x + 2; x = 0; x = x + 3 Legal
Schedule 2 x = 0; x = 0; x = x + 1; x = x + 2; x = 0; x = x + 3; Legal
Schedule 3 x = 0; x = 0; x = x + 1; x = 0; x = x + 2; x = x + 3; Illegal
(d)
Two-Phase Locking (1)
Aquisição e liberação de locks no algoritmo de two-phase locking.
Two-Phase Locking (2)
Two-phase locking estrito – todos os locks são liberados ao mesmo tempo.
Ordenação com Marcas de Tempo Pessimista
Controle de concorrência usando marcas de tempo.