arquitetura de sistemas distribuídos - módulo 3: sincronização em sistemas distribuídos 1...

21
Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]

Upload: internet

Post on 17-Apr-2015

111 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]

Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos

1

Sincronização em Sistemas Distribuídos

Módulo 4

[C10,C13,T3]

Page 2: Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]

Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos

2

Conteúdo

Relógios lógicos Relógicos físicos Exclusão mútua Algoritmos de eleição

Page 3: Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]

Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos

3

Relógios Lógicos e Físicos

Alcides Calsavara

Page 4: Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]

Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos

4

Eventos e relógios

A ordem de eventos que ocorrem em processos distintos pode ser crítica em uma aplicação distribuída (ex: make, protocolo de consistência de réplicas).

Em um sistema com n computadores, cada um dos n cristais terá uma frequência própria, fazendo com que os n relógios percam seu sincronismo gradualmente.

Page 5: Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]

Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos

5

Eventos e relógios

A ordem de eventos que ocorrem em processos distintos pode ser crítica em uma aplicação distribuída (ex: make, protocolo de consistência de réplicas).

Em um sistema com n computadores, cada um dos n cristais terá uma frequência própria, fazendo com que os n relógios percam seu sincronismo gradualmente.

Page 6: Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]

Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos

6

Relógios lógicos

Princípios:1. Somente processos que interagem precisam

sincronizar seus relógios.2. Não é necessário que todos os processos

observem um único tempo absoluto; eles somente precisam concordar com relação à ordem em que os eventos ocorrem.

» Ordenação parcial de eventos» Ordenação causal potencial

Page 7: Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]

Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos

7

Relógios lógicos (cont.)

Relação acontece-antes ( -» ):1. Sejam x e y eventos num mesmo processo tal que x

ocorre antes de y. Então x -» y é verdadeiro.

2. Seja x o evento de uma mensagem a ser enviada por um processo, e y o evento dessa mensagem ser recebida por outro processo. Então x -» y é verdadeiro.

3. Sejam x, y e z eventos tal que x -» y e y -» z. Então x -» z é verdadeiro.

Page 8: Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]

Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos

8

Relógios lógicos (cont.)

Eventos ocorrendo em três processos:

p1

p2

p3

a b

c d

e f

m1

m2

TempoFísico

Os processos "a" e "e" são concorrentes: a || e

a -» b, c -» d, e -» f, b -» c, d -» f

a -» f

Page 9: Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]

Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos

9

Relógios lógicos (cont.)

Implementação: Cada processo p mantém seu próprio relógio lógico (um contador, por software), Cp, usado para fazer timestamp de eventos. Cp(x) denota o timestamp do evento x no processo p, e C(x) denota o timestamp do evento x em qualquer processo.LC1: Cp é incrementado antes de cada evento em p.LC2: (a) Quando um processo p envia uma mensagem m,

ele concatena a informação t=Cp a m, enviando (m,t). (b) Quando um processo q recebe a mensagem

(m,t), ele computa Cq := max(Cq, t) e aplica LC1 antes de fazer timestamp do evento de recebimento da mensagem.

Page 10: Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]

Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos

10Exemplo de aplicação do algoritmo de relógios lógicos

P106121824303642485460

P208162432404856647280

P30102030405060708090100

A

B

C

D

Page 11: Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]

Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos

11Exemplo de aplicação do algoritmo de relógios lógicos

P106121824303642487076

P208162432404861697785

P30102030405060708090100

A,0

B,24

C,60

D,69

Page 12: Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]

Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos

12

Relógios lógicos (cont.)

Ordenação total de eventos: dois eventos nunca ocorrem exatamente no mesmo instante de tempo.

1. Se x ocorre antes de y no mesmo processo, então C(x) é menor que C(y).

2. Se x e y correspondem ao envio e ao recebimento de uma mensagem, então C(x) é menor que C(y).

3. Para todos os eventos x e y, C(x) é diferente de C(y).Implementação: concatenar o número do processo ao timestamp.

Page 13: Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]

Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos

13

Relógios físicos

GMT: Greenwich Mean Time BIH: Bureau Internacional de l’Heure TAI: International Atomic Time UTC: Universal Coordinated Time NIST: National Institute of Standard Time WWV: estação de rádio de ondas curtas GEOS: Geostationary Environment Operational

Satellite

Page 14: Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]

Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos

14

Relógios físicos (cont.)

Algoritmo de Berkeley:– A rede não dispõe de uma máquina com um receptor

WWV– A rede dispõe de um time server que faz polling nas

outras máquinas a fim de obter a hora marcada por cada uma, fazer uma média entre essas horas e divulgar essa média para todas as máquinas.

NTC: Network Time Protocol– Sub-rede hierárquica de sincronização– Servidores primários (WWV) e secundários

Page 15: Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]

Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos

15

Relógios físicos (cont.)

Algoritmo de Cristian:– A rede dispõe de um time server (receptor WWV)

– Uma máquina cliente envia uma mensagem pedindo a hora certa ao time server

– Ao receber a mensagem resposta do time server, o cliente adiciona o tempo médio de envio de mensagens à hora recebida. Esse tempo médio é calculado pelo próprio cliente considerando as horas de envio e recebimento das mensagens e ainda o tempo gasto pelo time server para processar o pedido.

Page 16: Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]

Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos

16

Algoritmo de Cristian

T0

R

I

T1

R ?d

d

Máquina M Timer Server

d = ( T1 – T0 – I ) / 2 T = R + d

Page 17: Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]

Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos

17

Exclusão mútua

Controle de acesso a regiões críticas Algoritmo centralizado:

– Um processo é eleito o coordenador

– Os processos concorrentes devem requisitar permissão de acesso ao coordenador

– Um processo que termina de fazer acesso a uma região crítica deve comunicar a liberação da região ao coordenador

– Processos que tentam entrar em uma região crítica ocupada devem aguardar em uma fila controlada pelo coordenador

Page 18: Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]

Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos

18

Exclusão mútua (cont.)

Algoritmo distribuído:– Baseado em ordenação total de eventos e comunicação confiável em

grupo (multicast ou broadcast).– Um processo que deseja entrar em uma região crítica constrói uma

mensagem com o nome da região, o número do processo e a hora, e a envia a todos os demais processos concorrentes.

– Um processo que recebe a mensagem:» Caso não esteja na região crítica e não intencione entrar nela, retorna

OK.» Caso já esteja na região crítica, não responde e enfileira a requisição.» Caso também intencione entrar na região crítica, determina o

processo que tentou primeiro (comparando timestamps) e responde OK ou enfileira a requisição, apropriadamente.

Page 19: Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]

Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos

19

Exclusão mútua (cont.)

Algoritmo de Token Ring:– Os processos são conectados por um anel e numerados

sequencialmente a partir de 0.– Na iniciação do anel, uma token é dada ao processo 0.– A token é passada do processo k para o processo k+1.– Ao receber a token, um processo pode retê-la ou passá-la

imediatamente para o próximo processo, dependendo se deseja ou não, respectivamente, entrar na região crítica. Enquanto o processo estiver na região crítica, a token fica retida, e somente ao sair da região crítica é repassada adiante.

Page 20: Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]

Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos

20

Algoritmos de eleição

Eleição de um processo coordenador em algoritmos distribuídos

Algoritmo Bully:1. Um processo P envia uma mensagem ELECTION para

todos os processos de maior número.

2. Se nenhum processo responde, P vence a eleição e se torna o coordenador.

3. Se um dos processos responde este inicia sua participação na eleição a partir do passo 1. O trabalho de P está feito.

Page 21: Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]

Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos

21

Algoritmos de eleição (cont.)

Algoritmo de Anel:– Um processo constrói uma mensagem ELECTION

contendo seu número e envia ao seu sucessor. Se o sucessor estiver parado, a mensagem é enviado ao sucessor do sucessor.

– O processo que recebe a mensagem insere seu próprio número na mensagem e passa para o seu sucessor.

– Quando a mensagem retorna ao processo que originou a eleição, este descobre quem é novo coordenador (o processo com número maior) e, em seguida, envia uma mensagem COORDINATOR comunicando o fato.