Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005...

31
Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5

Transcript of Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005...

Page 1: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

Sistemas Distribuídos

Sincronizaçãoe

Coordenação

Instituto de Informática – UFG

Verão 2005

Baseado em: Tanenbaum, cap. 5

Page 2: Sistemas Distribuídos Sincronização e 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.

Page 3: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

Relógios Físicos (1)

Computação do dia solar médio.

Page 4: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

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.

Page 5: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

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.

Page 6: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

Algoritmo de Cristian's

Obtendo o tempo atual a partir de um servidor de tempo.

Page 7: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

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

Page 8: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

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).

Page 9: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

Exemplo: Multicast Totalmente Ordenado

Atualização de um banco de dados replicado deixando-o em um estado inconsistente.

Page 10: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

Estado Global (1)

a) Um corte consistenteb) Um corte inconsistente

Page 11: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

Estado Global (2)

a) Organização de um processo e canais para um “instantâneo” distribuído

Page 12: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

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

Page 13: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

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

Page 14: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

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

Page 15: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

O Algoritmo do Anel

Eleição utilizando um anel lógico de processos.

Page 16: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

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.

Page 17: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

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.

Page 18: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

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.

Page 19: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

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

Page 20: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

O Modelo de Transações (1)

Atualização de um registro mestre com tolerância a falhas.

Page 21: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

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

Page 22: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

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)

Page 23: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

Transações Distribuídas

a) Uma transação aninhadab) Uma transação distribuída

Page 24: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

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

Page 25: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

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)

Page 26: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

Controle de Concorrência (1)

Organização geral de gerentes para tratar transações.

Page 27: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

Controle de Concorrência (2)

Organização geral dos gerentes para tratar transações distribuídas.

Page 28: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

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)

Page 29: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

Two-Phase Locking (1)

Aquisição e liberação de locks no algoritmo de two-phase locking.

Page 30: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

Two-Phase Locking (2)

Two-phase locking estrito – todos os locks são liberados ao mesmo tempo.

Page 31: Sistemas Distribuídos Sincronização e Coordenação Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, cap. 5.

Ordenação com Marcas de Tempo Pessimista

Controle de concorrência usando marcas de tempo.