sistemas distribuídos - wordpress.com · sistemas distribuídos. •permite avaliar predicados...

44
Sistemas Distribuídos Estados globais Vinícius Fernandes Soares Mota 1

Upload: others

Post on 22-Jul-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Sistemas Distribuídos

Estados globais

Vinícius Fernandes Soares Mota

1

Page 2: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Tópicos

• Tempo e relógio lógicos (revisão curta)• Relógios vetoriais

• Estados Globais

• Snapshot distribuído

DECSI/ICEA UFOP

2

Page 3: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Antes...

Por que a sincronização do relógio do computador é necessária?

DECSI/ICEA UFOP

3

Page 4: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Tempo lógico e relógio lógico

• Principais propriedades de um algoritmo distribuído:• Informações são distribuídas pelos vários nodos do

sistema

• Processos tomam decisões baseados apenas nas informações locais

• Sem um ponto único de falhas

• Não existe um relógio global a todo sistema

DECSI/ICEA UFOP

4

Page 5: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Relação Happens-Before

• Notação: A B• Lê-se que “A ocorreu antes de B”

• Significado: todos os processos do sistema concordam que primeiro ocorreu o evento A e então o evento B

• Eventos que não são ordenados pela relação “” são ditos concorrentes.• Notação: A \\ B

DECSI/ICEA UFOP

5

Page 6: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Implementação da Relação Happens-Before• Algoritmo de Lamport

• Utiliza o conceito de relógio lógico (C):• Inteiro monotonicamente crescente armazenado em

cada nodo

• Incrementado a cada evento

• Implementação do conceito de relógio lógico:• Se A B

então C(A) < C(B)

• O contrário não precisa ser verdadeiro

DECSI/ICEA UFOP

6

Page 7: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Atualização de Relógio Lógico

• Relógio (Cp) é incrementado antes de cada evento de (P).

• Quando P envia uma mensagem M para Q, • insere um timestamp t= Cp

• Quando Q recebe (M, t), entãoCq:= max (Cq, t) + 1

(garante-se assim que Cp < Cq)

DECSI/ICEA UFOP

7

Page 8: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Ocorrência de eventos nos processos P1, P2 e P3

DECSI/ICEA UFOP

8

p1

p2

p3

a b

c d

e f

m1

m2

Tempo

Físico

Page 9: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Rótulos de tempo do Algoritmo de Lamport para ordenação de eventos

DECSI/ICEA UFOP

9

a b

c d

e f

m1

m2

21

3 4

51

p1

p2

p3

TempoFísico

Page 10: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Relógios Vetoriais

• Um relógio lógico estabelece uma ordem total de todos os eventos, mesmo quando dois eventos são incomparáveis utilizando a relação happened-before.

• Embora os relógios lógicos não conseguem tratar toda a informação sobre a relação happened before.

• Vamos descrever um mecanismo chamado de vetor de relógios capaz de abranger toda a informação sobre a relação happened-before

DECSI/ICEA UFOP

10

Page 11: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Relógios Vetoriais

Proposto por Mattern and Fidge, cada processoincrementa seu próprio relógio vetorial, e após isso enviajunto com a mensagem uma cópia de seu relógio vetorial.No recebimento da mensagem, atualiza os valores dorelógio vetorial para o máximo de cada um.

DECSI/ICEA UFOP

11

Page 12: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Relógios Vetoriais

DECSI/ICEA UFOP

12

Page 13: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Estado Global

• Estado global capta o conjunto de eventos que

foram executados até o momento.

• Em sistemas distribuídos é complicado avaliar o

estado global, é preciso cuidado ao se estabelecer

o que ocorreu durante a execução.

• São utilizados para resolver muitos problemas em sistemas distribuídos.

DECSI/ICEA UFOP

13

Page 14: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Estado Global - Problemas

• Coleta de lixo distribuída: um objeto é considerado lixo se não existem mais referências a ele em nenhuma parte do sistema distribuído.

• Detecção de deadlock distribuída: um deadlockdistribuído ocorre quando cada processo de uma coleção de processos espera que outro envie uma mensagem para o outro.

• Detecção de término distribuída: detectar se um algoritmo distribuído terminou.

DECSI/ICEA UFOP

14

Page 15: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Estado Global - Problemas

DECSI/ICEA UFOP

15

Page 16: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Estado Global Consistente

• Para achar estados globais consistentes é utilizado uma técnica de corte.

• Este corte é uma divisão na execução do sistema, ou seja é um subconjunto do histórico global.

• Eventos à direita do corte estão fora do estado global e eventos à esquerda do corte estão dentro do estado global.

• Corte podem ser:• Consistentes: obedecem causalidade;

• Insconsistentes: não obedecem causalidade.

DECSI/ICEA UFOP

16

Page 17: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Estado Global Consistente

• Histórico local do processo i: hi = < e0, e1, e2,..>

• Histórico global : H = h0 ∪ h1 ∪ ... ∪ hN-1

DECSI/ICEA UFOP

17

Page 18: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Estado Global Consistente

DECSI/ICEA UFOP

18

m1 m2

p1

p2Tempo físico

e1

0

Corte consistente

Corte insconsitente

e 1

1e 1

2e 1

3

e 20

e 21

e 22

Page 19: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Estado Global Consistente

• O corte da esquerda é inconsistente porque, em p2, ele inclui a recepção da mensagem m1, mas p1 não inclui o envio dessa mensagem.

• Isso está mostrando um efeito sem causa.

DECSI/ICEA UFOP

19

m1 m2

p1

p2Tempo físico

e1

0

Corte consistenteCorte insconsitente

e 1

1e 1

2e 1

3

e 20

e 21

e 22

Page 20: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Estado Global Consistente

• O corte da direita é consistente. Ele inclui tanto o envio como a recepção da mensagem m1. Ele inclui o envio, mas não a recepção da mensagem m2.

• Isso é consistente com a execução real – afinal, a mensagem levou algum tempo para chegar.

DECSI/ICEA UFOP

20

m1 m2

p1

p2Tempo físico

e1

0

Corte consistenteCorte insconsitente

e 1

1e 1

2e 1

3

e 20

e 21

e 22

Page 21: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Algoritmo snapshot distribuído

• Algoritmo de Chandy e Lamport (1985).

• Determina estados globais consistentes em sistemas distribuídos.

• Permite avaliar predicados estáveis.

• Características instáveis em relação a um objeto: possui lixo, estar em deadlock ou estar terminado.

• Qualquer processo pode inciar o snapshot.

• Vários snapshots podem estar executando em paralelo.

DECSI/ICEA UFOP

21

Page 22: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Premissas do algoritmo

• n processos no sistema.

• Cada canal de comunicação é unidirecional com entrega FIFO.• FIFO: mensagem enviada primeiro é recebida primeiro.

• Não existe falha no envio de mensagens.

• Todas mensagens chegam intactas (sem perda de informação) e não são duplicadas.

• Processos continuam a executar normalmente durante o snapshot.

DECSI/ICEA UFOP

22

Page 23: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Algoritmo de Chandy e Lamport

• Definido por meio de duas regras• Regra de recepção de marcador

• Regra de envio de marcador

• Ideia Básica

DECSI/ICEA UFOP

23

• cada processo registra seu estado e, também, para cada canal de entrada, um conjunto de mensagens recebidas nele.

• Para cada canal, o processo grava as mensagens que chegaram depois dele ter gravado seu estado e antes que o remetente tenha gravado seu próprio estado.

• Essa organização permite gravar os estados dos processos em diferentes momentos

Page 24: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Algoritmo de Chandy e Lamport

• Regra de recepção de marcadorNa recepção pi de uma mensagem de marcador pelo canal c:

if (pi ainda não tiver gravado seu estado) elegrava seu estado de processo atual;

grava o estado de c como o conjunto vazio;

ativa a gravação de mensagens que chegam por outros ;

elsepi grava o estado de c como o conjunto de mensagens recebidas por c

desde que salvou seu estado.

end if

DECSI/ICEA UFOP

24

Page 25: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Algoritmo de Chandy e Lamport

• Regra de envio de marcadorApós pi ter gravado seu estado, para cada canal de saída c:

pi envia uma mensagem de marcador por c

(antes de enviar qualquer outra mensagem por c).

DECSI/ICEA UFOP

25

Page 26: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

DECSI/ICEA UFOP

26

Algoritmo em ação

p

qSq

0 Sq1 Sq

2 Sq3

Sp0 Sp

1 Sp2 Sp

3

m1 m2 m3

Page 27: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

DECSI/ICEA UFOP

27

Algoritmo em ação

p

qSq

0 Sq1 Sq

2 Sq3

Sp0 Sp

1 Sp2 Sp

3

m1 m2 m3

q grava seu estado Sq1 , envia marcador para p

Page 28: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

DECSI/ICEA UFOP

28

Algoritmo em ação

p

qSq

0 Sq1 Sq

2 Sq3

Sp0 Sp

1 Sp2 Sp

3

m1 m2 m3

p grava seu estado como Sp2, estado do canal vazio

Page 29: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

DECSI/ICEA UFOP

29

Algoritmo em ação

p

qSq

0 Sq1 Sq

2 Sq3

Sp0 Sp

1 Sp2 Sp

3

m1 m2 m3

q grava seu estado como m3

Page 30: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

DECSI/ICEA UFOP

30

Algoritmo em ação

p

qSq

0 Sq1 Sq

2 Sq3

Sp0 Sp

1 Sp2 Sp

3

m1 m2 m3

Estado Global = ((Sp2, Sq

1), (0,m3) )

Page 31: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

DECSI/ICEA UFOP

31

Por que é consistente?

• Prova:

se recv(m) foi gravado entãosend(m) também foi gravado

p q

mM

Page 32: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Algoritmo de Chandy e Lamport

DECSI/ICEA UFOP

32

• O algoritmo seleciona um corte a partir do histórico da execução.

• O corte e, portanto, o estado gravado por esse algoritmo, são consistentes.

Page 33: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Algoritmo de Chandy e Lamport

DECSI/ICEA UFOP

33

m1 m2

p1

p2Physical

time

(1,0) (2,0) (4,3)

(2,1) (2,2) (2,3)

(3,0)

x1= 1 x1= 100 x1= 105

x2= 100 x2= 95 x2= 90

x1= 90

Corte C

O envio dos estados em forma de um relógio vetorial

Page 34: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Um exemplo mais completo

DECSI/ICEA UFOP

34

P1 Inicia o processoMarca o estado como S1Envia Marcador para P2 e P3Abre canal para esperar resposta de p2 e p3 C21 e C31

Page 35: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Um exemplo mais completo

DECSI/ICEA UFOP

35

S1, aguarda respostas C21 e C31

Primeiro marcadorMarca estado como S3Canal C13 vazio (recebeu marcador do P1)

Envia marcador para P2

Aguarda resposta de P2 cana C23

Page 36: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Um exemplo mais completo

DECSI/ICEA UFOP

36

S1, aguarda respostas C21 e C31

S3C13 = <>Aguarda C23

Page 37: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Um exemplo mais completo

DECSI/ICEA UFOP

37

S1, aguarda C21 e C31

S3C13 = <>Aguarda C23

Marcador duplicadoC31 = <>

Page 38: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Um exemplo mais completo

DECSI/ICEA UFOP

38

S1, aguarda C21 e C31

S3C13 = <>Aguarda C23

C31 = <>

S2C32 = <>Aguarda C12

Page 39: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Um exemplo mais completo

DECSI/ICEA UFOP

39

S1, aguarda C21 e C31

S3C13 = <>Aguarda C23

C31 = <>

S2C32 = <>Aguarda C12

Duplicado

Page 40: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Um exemplo mais completo

DECSI/ICEA UFOP

40

S1, aguarda C21 e C31

S3C13 = <>Aguarda C23

C31 = <>

S2C32 = <>

Duplicado

DuplicadoC23= D f

Page 41: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Snapshot

DECSI/ICEA UFOP

41

S1, aguarda C21 e C31

S3C13 = <>

C31 = <>

S2C32 = <>C13 =<>

Duplicado

DuplicadoC23= D f

Page 42: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Snapshot

DECSI/ICEA UFOP

42

S1, aguarda C21 e C31

S3C13 = <>

C31 = <>C21 = <>

S2C23 = <>C13 =<>

Duplicado

DuplicadoC23= D f

Page 43: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Estados finais

DECSI/ICEA UFOP

43

S1 C21 =<>, C31 =<>S2 C12 = <>, C32 = <>S3 C13 = <>, C23 = d f

Page 44: Sistemas Distribuídos - WordPress.com · sistemas distribuídos. •Permite avaliar predicados estáveis. • Características instáveis em relação a um objeto: possui lixo, estar

Questões

DECSI/ICEA UFOP

Vinícius Fernandes Soares Mota

Tempo e relógios

44