A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Sistemas Distribuídos Sincronização e Coordenação

Apresentações semelhantes


Apresentação em tema: "Sistemas Distribuídos Sincronização e Coordenação"— Transcrição da apresentação:

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

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

3 Computação do dia solar médio.
Relógios Físicos (1) Computação do dia solar médio.

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

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.

6 Algoritmo de Cristian's
Obtendo o tempo atual a partir de um servidor de tempo.

7 O Algoritmo de Berkeley
O daemon de tempo pergunta a todas as máquinas os valores de seus relógios locais As máquinas respondem O daemon de tempo instrui todas as máquinas a atualizarem seus relógios

8 Marcas de Tempo de Lamport
Três processos, cada um com seu próprio relógio. Os relógios “correm” a taxas diferentes. O algoritmo de Lamport corrige os relógios (relógios lógicos).

9 Exemplo: Multicast Totalmente Ordenado
Atualização de um banco de dados replicado deixando-o em um estado inconsistente.

10 Estado Global (1) Um corte consistente Um corte inconsistente

11 Estado Global (2) Organização de um processo e canais para um “instantâneo” distribuído

12 Estado Global (3) Processo Q recebe um marcador pela primeira vez e registra seu estado local Q registra todas as mensagens que chegam Q recebe um marcador para seu canal entrante e pára de registrar o estado do canal entrante

13 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

14 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

15 Eleição utilizando um anel lógico de processos.
O Algoritmo do Anel Eleição utilizando um anel lógico de processos.

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

17 Exclusão Mútua: Um Algoritmo Distribuído
Dois processos 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.

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

19 Messages per entry/exit Delay before entry (in message times)
Comparação Algorithm Messages per entry/exit Delay before entry (in message times) Problems Centralized 3 2 Coordinator crash Distributed 2 ( n – 1 ) Crash of any process Token ring 1 to  0 to n – 1 Lost token, process crash Uma comparação de três algoritmos de exclusão mútua.

20 O Modelo de Transações (1)
Atualização de um registro mestre com tolerância a falhas.

21 O Modelo de Transações (2)
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 Exemplos de primitivas para transações.

22 O Modelo de Transações (3)
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ção para reservar três vôos concluída com sucesso, i.e., commit Transação é abortada quando a reserva do terceiro vôo falha

23 Transações Distribuídas
Uma transação aninhada Uma transação distribuída

24 Espaço de Trabalho Privativo
O índice de arquivos e blocos de disco para um arquivo de três blocos Situação após uma transação ter modificado o bloco 0 e concatenado o bloco 3 Após o commit da transação

25 Writeahead Log a) Uma transação
x = 0; y = 0; BEGIN_TRANSACTION; x = x + 1; y = y + 2 x = y * y; END_TRANSACTION; (a) Log [x = 0 / 1] (b) [y = 0/2] (c) [x = 1/4] (d) a) Uma transação b) – d) O log antes de cada sentença ser executada

26 Controle de Concorrência (1)
Organização geral de gerentes para tratar transações.

27 Controle de Concorrência (2)
Organização geral dos gerentes para tratar transações distribuídas.

28 Serializabilidade a) – c) Três transações: T1, T2, e T3
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; Schedule 3 x = 0; x = 0; x = x + 1; x = 0; x = x + 2; x = x + 3; Illegal (d) a) – c) Três transações: T1, T2, e T3 d) Possíveis escalonamentos

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

30 Two-Phase Locking (2) Two-phase locking estrito – todos os locks são liberados ao mesmo tempo.

31 Ordenação com Marcas de Tempo Pessimista
Controle de concorrência usando marcas de tempo.


Carregar ppt "Sistemas Distribuídos Sincronização e Coordenação"

Apresentações semelhantes


Anúncios Google