Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouIsabella Martha Alterado mais de 10 anos atrás
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.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.