Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

48
Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

description

Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]. Conteúdo. Exclusão mútua Relógios lógicos Relógicos físicos Algoritmos de eleição. Coordenação Distribuída. Exclusão mútua distribuída: Um conjunto de processos compartilham um - PowerPoint PPT Presentation

Transcript of Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Page 1: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

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

[C10,C13, T3]

Page 2: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

• Exclusão mútua

• Relógios lógicos

• Relógicos físicos

• Algoritmos de eleição

Conteúdo

Page 3: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Coordenação Distribuída

Exclusão mútua distribuída: Um conjunto de processos compartilham umrecurso ou um conjunto de recursos administrados por um servidor.

Eleição distribuída: Dentre um conjunto de processos, é necessário escolherum deles para executar uma regra específica, geralmente privilegiada e comfins de coordenação, durante um certo tempo.

Detecção de propriedades: terminação, deadlock etc.

Page 4: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Exclusão mútua distribuída

Processos distribuídos requerem acesso às suas regiões críticas. No caso distribuído, não há variáveis compartilhadas nem facilidades disponibilizadas por um kernel local único que possam ser usados na solução deste problema.

Algoritmos:

• algoritmo centralizado;• algoritmo em anel (token-ring);• algoritmo distribuído (Ricart & Agrawala).

Page 5: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Exclusão mútua distribuída

Algoritmo centralizado

P1

P2P3

P4

send(S, Req. EM, recurso A)receive(S, permissão A)

t

Entra RC

Sai RC send(S, Libera EM, recurso A)

1

4

3

Fila derequisiçõesdo recursoA

Servidor/Coordenador

send(P1, permissão A)

*

*

(*) Bloqueados no recebimento.

RecursoStatusABC

freefreefree

busyTOKEN X

send(S, Req. EM, recurso A)

Page 6: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Exclusão mútua distribuída

Algoritmo centralizado

• Algoritmo simples de entender e de implementar.• Requer somente três mensagens para entrar em e sair de região crítica.• Coordenador central é um ponto único de falha. Recuperação de uma falha do servidor: um novo servidor deve ser criado ou, então, um dos processos deve assumir esta função. Neste caso, um mecanismo de eleição deve ser executado para definir qual dos processos ativos será o escolhido, já que o servidor tem que ser único.• Outro problema: Como lidar com a falha de um dos processos clientes, principalmente, daquele que detém o token?• Coordenador central pode tornar-se um gargalo!

Page 7: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Exclusão mútua distribuída

Algoritmo em anel (token-ring)

P5 P2 P3 P0 P1 P4 P6

Arranjo físico dos processos

P1P0

P2

P3

P4

P5

P6TO

KEN O processo que detém o token

pode entrar na região crítica.

Arranjo lógico dos processos

Page 8: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Exclusão mútua distribuída

Algoritmo em anel (token-ring)

P(k-1) P(k) P(k+1)TOKEN

Executa sua região crítica

TOKEN

Processo P(k) deseja entrar na região crítica:

Processo P(k) não deseja entrar na região crítica:

P(k-1) P(k) P(k+1)TOKEN TOKEN

Page 9: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Exclusão mútua distribuída

Algoritmo em anel (token-ring)

• O token não é, necessariamente, obtido em ordem “happened-before” (~temporal). Pode levar de 1 a (n-1) mensagens para se obter o token, desde o momento em que se torna necessário.

• Mensagens são enviadas no anel mesmo quando nenhum processo requer o token.

• Tempo máximo de um ciclo = soma dos tempos de execução das regiões críticas de todos os processos.

Page 10: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Exclusão mútua distribuída

Algoritmo em anel (token-ring)

• Token perdido: recuperação baseada no envio de ACK quando do recebimento do token.

• Processo que falha: reconfiguração executada para remover o processo do anel. Enquanto isso, a circulação do token é interrompida.

• Se o processo que falha é quem possui o token: um mecanismo de eleição é necessário para escolher um único processo que irá regenerar o token e iniciar a sua circulação.

Page 11: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Sincronização em Sistemas Distribuídos

Propriedades de algoritmos distribuídos

• As informações relevantes estão espalhadas entre diversas máquinas.• Deve ser evitada a qualquer custo a existência de um ponto único de falha.• Os processos tomam decisões baseados, exclusivamente, nas informações disponíveis no local onde eles estão rodando.• Não existe uma fonte de clock comum ou qualquer outra fonte precisa de tempo global.

Page 12: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Sincronização de relógios

Nos sistemas centralizados, o tempo é um conceito não-ambíguo. Quando umprocesso deseja saber a hora, basta que ele execute uma chamada de sistema,que o kernel lhe dá as informações a respeito.

Se o processo A pergunta pela hora e, pouco depois, o processo B também faz a mesma pergunta, o valor que B obtém será maior (ou, eventualmente, igual) que o valor obtido por A. Com certeza, o valor que B recebe não será menor que o obtido por A.

Já no caso dos sistemas distribuídos, a conformidade em relação à questão do tempo não é obtida de forma trivial.

Page 13: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Sincronização de relógios

Rede

1 2

6

39

1 2

6

39

1 2

6

39

1 2

6

39Nó B

Nó A

Nó D

Nó C

Page 14: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Sincronização de relógios

Apesar da freqüência de cada oscilador ser bastante estável, não é possível garantir que os cristais de todos os processadores estejam oscilando exatamente na mesma freqüência.

Na prática, quando um sistema tem n processadores, todos os n cristaisestarão oscilando em freqüências ligeiramente diferentes uns dos outros,fazendo que os clocks (software) pouco a pouco percam o sincronismo e forneçam valores diferentes quando lidos pelos processos.

Esta diferença nos valores de tempo é denominada escorregamento do clock (clock skew).

Page 15: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Sincronização de relógios

Computador no qual o compilador está rodando 2144 2145 2146 2147

tempo de acordo como clock local

Computador no qual o editor está rodando 2142 2143 2144 2145

tempo de acordo como clock local

Tempo

Arquivo output.o criado

Arquivo output.c criado

X

X

Um evento ocorrido depois de um outro evento pode ter associadoa ele um valor de tempo local que nos faça concluir que ele ocorreuantes do outro.

t1 t2

Page 16: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Sincronização de relógios

Para muitos propósitos é suficiente que todas as máquinas estejam de acordo sobre uma determinada marcação de tempo, não sendo porém importanteque este tempo coincida com o tempo real.

Para certas classes de algoritmos, o que vale é a consistência interna dos clockse não o quanto eles estão próximos do tempo real.

No âmbito de tais algoritmos, é usual referir-se aos clocks como clocks lógicos.

Page 17: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Sincronização de relógios

Pode haver uma restrição adicional (sistemas de tempo real, por exemplo) queexija que os clocks não somente sejam os mesmos, mas que também não possamdiferir do tempo real mais do que um certo valor.

Neste caso, os clocks são chamados de clocks físicos.

Page 18: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Sincronização de relógios

Sincronização de relógios lógicos: Objetivo: ordenação de eventos em ambiente distribuído.

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.

Page 19: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Sincronização de relógios

Relação “acontecer-antes” (happens-before):

Fornece uma ordenação parcial de eventosNão especifica a exata ordem dos eventos, mas somente define a

ordem de certos elementos que dependem de outros

A expressão ab (a acontece antes de b) significa que todos os processosconcordam com o fato de que primeiro acontece o evento a e depois ocorre o evento b.

Exemplo:If you have three events {A, B, C}, then they are totally ordered if they always have to happen in the order A B C. However, if A must happen before C, but you don't care when B happens, then they are partially ordered. In this case we would say that the sequences A B C, A C B, and B A C all satisfy the partial ordering

Page 20: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Sincronização de relógios

Propriedades da relação :1. Se dois eventos E1 e E2 acontecem no mesmo processo P, a ordem deles é a ordem observada em P, ou seja, se E1 e E2 são eventos no mesmo processo e se E1ocorre antes de E2, então E1E2 é verdadeira.2. Se o processo A envia uma mensagem para o processo B, o evento envio de mensagem “acontece antes” do evento recebimento, ou seja, uma mensagem não pode ser recebida antes de ter sido enviada, pois ela demora um tempo finito para chegar ao destino send(msg) recv(msg)

Regras:1. Transitividade: se ab e bc, então ac.2. Concorrência de eventos: Se os eventos E1 e E2 acontecem em dois processos diferentes que não trocam mensagens então E1E2 e E2E1. Os eventos E1 e E2 são denominados eventos concorrentes (E1 E2).

/ /

Page 21: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Sincronização de relógios

• •

• •

• •

a b

c d

fe

m2

m1

Tempo

P1

P2

P3

Prop.1

a b

c d

e f

Prop.2

b c

d f

Regra 1

a c a d

b d b f

c f

a f

Regra 2

a e

Page 22: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Sincronização de relógios

• Ordenação causal de eventos garantia que mensagens enviadas por processos diferentes são entregues pela ordem correta no receptor• Não garante que as mensagens dos processos concorrentes sejam

ordenadas

• Ordenação total de eventos garante que quaisquer duas mensagens entregas a qualquer par de receptores são entregues na mesma ordem em ambos

• Ordenação temporal de eventos Uma mensagem m1 precede temporalmente m2 e será recebida por essa ordem por todos os membros do grupo e se só se m1 for enviada antes de m2 com um certo intervalo de tempo (Δt)

Page 23: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Sincronização de relógios

Implementação de relógio lógico (Solução de Lamport):

O sincronismo do clock não precisa ser absoluto.Os processos devem estar de acordo sobre a ordem na qual eventos ocorrem.

• Um valor de clock C(a) é associado a cada evento a .• Se a e b são eventos dentro do mesmo processo e a ocorre antes de b, então C(a) deve ser menor que C(b).• Se a é o evento de envio de mensagem para o processo X e b é o evento de recebimento da mensagem no processo X, então C(a) e C(b) devem ser associados de tal forma que C(a) < C(b).

O tempo medido pelo clock C( ) deve ser sempre crescente, nunca decrescente.Correções nos valores do clock podem ser feitas adicionando-se um valorpositivo ao valor corrente do clock, nunca subtraindo-se.

Page 24: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Sincronização de relógiosAlgoritmo:

• Cada processo P mantém um relógio Cp inicializado com 0 e incrementado a cada evento interno a P.

• Ao enviar uma mensagem m, o processo envia (m, t) onde t = Cp.

• Ao receber uma mensagem (m, t), o processo Q faz CQ=max (CQ, t) + 1

Page 25: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Sincronização de relógios

•Clock em P

P • • • •0 1 2 3 9 10

•Clock em Q

Q • •• • • •0 1 2 3 7 8 9

•Clock em R

R • • • • •0 1 4 5 6 7

Tempo real

(M1,1)

(M3,6)(M2,3)

M4

a b

CR= max (CR , t) + 1CR = max (1, 3) + 1

2X

X4

X

c d

jihf ge

k l m n o

Page 26: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Sincronização de relógiosEste algoritmo fornece somente uma forma de ordenação parcial de todos oseventos do sistema, já que alguns pares de distintos eventos, gerados pordiferentes processos, têm idênticos timestamps.

Entretanto, pode-se estender este algoritmo para ordenação total, acrescentando-seao timestamp a identificação do processo no qual o evento ocorreu. Desta forma, um evento a ocorrido no processo pa com timestamp local Ta e um evento b ocorrido no processo pb com timestamp local Tb, receberiam timestamps globais(Ta, pa) e (Tb, pb), respectivamente.

Define-se, então, que (Ta, pa) < (Tb, pb) se e somente se Ta < Tb ou Ta = Tb e pa < pb.

Page 27: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

• 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

Relógios físicos

Page 28: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

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

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

Relógios físicos (cont)

*WWV = sinal que o United States National Institute of Standards and Technology (NIST) transmite continuamente com frequência e tempo controlado por um relógio atômico. São emitias frequências padrões para calibrar dispositivos

Page 29: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

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

Relógios físicos (cont)

Page 30: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

T0

R

I

T1

R ?d

d

Máquina M Timer Server

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

Algoritmo de Cristian

Page 31: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Exclusão mútua distribuída (cont.)Algoritmo distribuído (Ricart & Agrawala):

•Agora que já foi falado sobre ordenação total de eventos podemos falar desse algoritmo• Apresentado pela primeira vez no artigo de Lamport sobre sincronização de clocks (1978).• Ricart & Agrawala (1981) tornaram este algoritmo mais eficiente.• Premissas:

• Ordenação total de todos os eventos.• Assume-se que o envio de mensagens é confiável, ou seja, toda mensagem é reconhecida pelo receptor.• Comunicação de mensagens em grupo, se disponível, deve ser usada em vez de mensagens individuais.

Page 32: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Exclusão mútua distribuída (cont.)Na inicialização:state := RELEASED

Para obter EM(token):state:= WANTEDenvia Req.EM para todos os processos (multicast)T := timestamp da requisiçãowait( (n-1) respostas recebidas)state := HELD

Ao receber Req.EM (Ti, pi) em pj (i j):if ((state = HELD) or (state = WANTED and (T,pj) < (Ti, pi))) coloca Req. de pi na fila e não respondeelse responde OK imediatamente a pi

Para liberar EM(token):state := RELEASEDresponde OK a todas as Req. que estão na fila

Page 33: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Exclusão mútua distribuída (cont.)

P1

Pn

P2

•••

send(Req.EM, pid, timestamp local)

send(Req.EM, pid, timestamp local)

Entrar na região crítica

Processo que recebe mensagem solicitando EM:1. não quer entrar na RC: envia OK para o emissor2. está na RC: não responde3. quer entrar na RC:

• timestamp do receptor < timestamp do emissor: enfileirar pedido e não responder• timestamp do receptor > timestamp do emissor: envia OK para emissor

Page 34: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Exclusão mútua distribuída (cont.)

P1

P3

P2

send(EM,P3,12)

10

12

send(EM,P1,10)

P1

P3

P2

state:=WANTED state:=RELEASED

state:=WANTED

OK

OK

OK

state:=HELD

Entra naregiãocrítica

P1

P3

state:=RELEASEDenvia OK para todos da fila

Sai daregiãocrítica

OK

state:=HELDcoloca P3 na fila

Entra naregiãocrítica

Page 35: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Exclusão mútua distribuída (cont.)

• Número de mensagens necessárias por entrada na RC: 2(n-1)• n pontos de falha. Se qualquer dos processos tiver um problema e não responder, a ausência de resposta será interpretada incorretamente como uma negativa para execução da região crítica. Bloqueio de todos os processos. Receptor deverá sempre enviar uma resposta, aceitando ou negando a permissão solicitada.• Comunicação em grupo é desejável ou cada processo deve manter sua própria lista de membros do grupo.• Todos os processos estão, igualmente, envolvidos em todas as decisões relativas às entradas nas regiões críticas X gargalo de desempenho do algoritmo centralizado.

Page 36: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Eleição

• A maioria dos algoritmos distribuídos precisa de um processo para agir como coordenador, inicializador, seqüenciador ...• Uma eleição é um procedimento para escolha de um processo dentre um grupo de processos (tipicamente, para assumir a função de coordenador).• A escolha deve ser única, apesar de vários processos se candidatarem e executarem algoritmos de eleição, concorrentemente.•O processo coordenador pode falhar um novo coordenador deve ser eleito.• Em geral, os algoritmos eletivos tendem a designar como coordenador o processo com o número de identificação mais alto. Esta identificação consiste de um número único, por exemplo, seu endereço na rede (por simplicidade, considere um processo por máquina).• Qualquer número de falhas pode ocorrer durante o processo de eleição.

Page 37: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

EleiçãoAlgoritmo do tirano (bully algorithm):

• Garcia-Molina (1982)

•O algoritmo de Bully serve para eleger um líder (processo coordenador) em algoritmos distribuídos

•Processos são identificados por um identificador numérico, único, fixo e atribuído antes do início da eleição. Cada processo sabe os números de identificação de cada um dos demais processos. Os processos não sabem é quais processos estão ativos e quais estão inativos.

•A topologia não é limitada a um anel e cada um dos processos pode se comunicar com qualquer outro no sistema.

•A execução do algoritmo busca eleger o processo de maior identificador e fazer com que todos reconheçam o novo líder.

Page 38: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

• Algoritmo do tirano (bully algorithm):– Se um dos processos identifica a perda de contato com o líder, inicia uma nova eleição enviando a todos os outros uma

mensagem contendo seu identificador.– Todos os nós respondem ao processo que iniciou a eleição com os seus próprios identificadores.– Se o processo que iniciou a eleição possui o maior identificador entre todos os outros, proclama-se líder e avisa todos os

outros. Senão aguarda que o processo de maior identificador inicie uma eleição e se torne líder.

•Este algoritmo possui este nome justamente por seu comportamento de bully. (Bullying é um termo em inglês utilizado para descrever atos de violência física ou psicológica, intencionais e repetidos)

• O processo de maior identificador predomina sobre os de menor número e mesmo que um destes ganhe uma eleição, rapidamente toma o posto do eleito propondo uma nova eleição.

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.

Eleição

Page 39: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Eleição

Algoritmo do tirano (bully algorithm):

Processo pi, ao verificar falha:Envia mensagem indicativa de eleição para todos os processos pj,tal que i < j. Depois de um tempo t Se não recebeu nenhuma resposta , pi se elege e envia mensagem indicativa de novo coordenador para todos os demais. Senão desiste da eleição.

Processo pi, ao receber mensagem indicativa de eleição de pj:Responde a pj e inicia sua própria eleição.

Page 40: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Eleição

0

1

2

7

35

6

4

Eleição

E

E

0

1

2

7

35

6

4

OK

OK

Processo 4 verifica que o processocoordenador (7) falhou e convocaeleições.

X

Processos 5 e 6 respondem, informando ao processo 4 queseu trabalho terminou.

Page 41: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Eleição

0

1

2

7

35

6

4

Eleição

E

0

1

2

7

35

6

4

OK

Processos 5 e 6 convocam eleições.

X

Processos 6 responde, informandoao processo 5 que seu trabalhoterminou.

XE

Page 42: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Eleição

0

1

2

7

35

6

4

Coordenador

C

O processo 6 anuncia a todos osdemais processos que é o novocoordenador.

X C

CC

C

Page 43: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Eleição

0

1

2

7

35

6

4

Coordenador

O processo 7, ao ser reinicializado, verifica que possuinúmero de identificação maior do que o coordenadoratual e assume a coordenação de forma tirânica, ditatorial(daí a origem do nome do algoritmo).

C C

C

C

CC

Page 44: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

EleiçãoAlgoritmo em anel (ring-based election algorithm):

• Ao contrário do algoritmo em anel para exclusão mútua, este algoritmo não usa o conceito de token. •Processos são organizados em um anél lógico sendo que cada um possui um identificador.•Valores são únicos e completamente ordenados

• Identificadores podem ser dinâmicos. Por exemplo (identificador da máquina/ load)

•Cada processo sabe exatamente quem é seu sucessor. •Todas as mensagens são passadas no sentido horário•O objetivo é escolher como coordenador aquele que possui maior identificaro•Cada processo pode iniciar a eleição colocando seu identificador em uma mensagem de eleição e mandando ao seu vizinho. Ele vai alterar então seu estado de não participante para participante

Page 45: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

EleiçãoAlgoritmo em anel (ring-based election algorithm):

• Quando recebe uma mensagem de eleição compara seu id com o da mensagem

• Se id da mensagem > que o seu id e seu estado é participante, simplesmente passa mensagem adiante.

• Se id da mensagem > que o seu id e seu estado é não participante. Muda seu estado para participante e passa mensagem intocada

• Se seu id > que o id da mensagem e estado não participante, muda seu estado para participante e repassa uma nova mensagem de eleição com seu id inserido

•Quando recebe uma mensagem de eleição contendo seu próprio identificador venceu a eleição. Muda seu estado para não participante e envia uma mensagem com eleito contendo seu identificador

•Quando recebe uma mensagem eleito cada processo muda seu estado para não participante e muda suas variaveis internas para refletir o novo coordenador

Page 46: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Eleição

0

1

2

7

35

6

4

E(6)

Processo 5 detecta a falha do coordenador (7)e convoca eleições circulando uma mensagemidentificativa de eleição (E).

E(6)

E(6)

E(6)E(6)

E(5)

E(6)Não responde

Page 47: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Eleição

0

1

2

7

35

6

4

C

A mensagem muda para uma outra, informando que há um novocoordenador, cuja identificação consta da mensagem. Esta mensagemindica também quem são os novos membros do anel.

C

C

CC

C

C

XC = Eleito(6)

Page 48: Coordenação e Sincronização em Sistemas Distribuídos [C10,C13, T3]

Eleição

Os processos 2 e 5 descobrem, simultaneamente, falha do coordenadoranterior (7). Observe que o fato de haver a circulação de mensagens extrasnão traz nenhum problema, exceto um pouco de desperdício da banda passante.

0

1

2

7

35

6

4

E(6)

E(2)

E(3)

E(5)

E(6)Não responde

E(4)

E(6)X