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

Preview:

Citation preview

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.

Recommended