A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Instituto de Computação - UFF Sincronizadores Algoritmos Distribuídos Professora: Lúcia Drummond.

Apresentações semelhantes


Apresentação em tema: "Instituto de Computação - UFF Sincronizadores Algoritmos Distribuídos Professora: Lúcia Drummond."— Transcrição da apresentação:

1 Instituto de Computação - UFF Sincronizadores Algoritmos Distribuídos Professora: Lúcia Drummond

2 Instituto de Computação - UFF 2 Sincronizadores Objetivo Transmitir a todo nó a cada pulso a informação de que todos os vizinhos dos nós estão seguros em relação aquele pulso.

3 Instituto de Computação - UFF 3 Sincronizadores Sincronizador Alpha A informação de que todos os vizinhos dos nós estão seguros com relação ao pulso s 0 é transmitida diretamente pelos próprios vizinhos através de uma mensagem safe(s).

4 Instituto de Computação - UFF 4 Sincronizadores Sincronizador Alpha Um nó pode prosseguir para o pulso s+1 quando receber uma mensagem safe(s) de todos os seus vizinhos. Como não é assumido que os canais sejam FIFO, as mensagens de computação e acks enviadas em conexão com o pulso s são enviadas como comp_msg(s) e acks(s).

5 Instituto de Computação - UFF 5 Sincronizadores Sincronizador Alpha Uma variável expected(s), inicialmente igual a zero, grava para todo s o número de acks esperados. Esta variável é incrementada sempre que são enviadas mensagens de computação.

6 Instituto de Computação - UFF 6 Sincronizadores Sincronizador Alpha A mensagem startup é enviada pelos nós em N para todos os seus vizinhos quando eles iniciam a computação. Esta mensagem ao atingir um nó que não está em N 0 pela primeira vez o acorda e então é propagada por este para todos os outros nós.

7 Instituto de Computação - UFF 7 Sincronizadores Sincronizador Alpha Todos os nós somente executam o pulso s=0 da computação síncrona ao receber um startup de todos os vizinhos (controlado pela variável go).

8 Instituto de Computação - UFF 8 Algoritmo A_Alg(Alpha) Variáveis s i :=0; msg i (s):=0 para todo s; initiaded i :=false; go i j :=false; expected i (s):=0 para todo s; safe i j (s):=false para todo n j viz e para todo s;

9 Instituto de Computação - UFF 9 Algoritmo A_Alg(Alpha) Algoritmo Input: msg i =nil; Ação: initiated i :=true; Envie startup para todo n j viz;

10 Instituto de Computação - UFF 10 Algoritmo A_Alg(Alpha) Algoritmo Input: msg i =startup tal que origem i (msg i )=n j ; Ação: if not initiated i then begin initiated i :=true; Envie startup para todo n k viz; end

11 Instituto de Computação - UFF 11 Algoritmo A_Alg(Alpha) Algoritmo go i j :=true; if go i j para todo n j viz then begin Execute alguma computação; Envie comp_msg(s i ) em cada aresta de um subconjunto de viz; if expected(s i )=0 then Envie safe(s i ) para todo n k viz; end

12 Instituto de Computação - UFF 12 Algoritmo A_Alg(Alpha) Algoritmo Input: msg i =comp_msg(s) tal que origem i (msg i )=n j ; Ação: MSG i (s+1):=MSG i (s+1) {msg i }; Envie ack(s) para n j ;

13 Instituto de Computação - UFF 13 Algoritmo A_Alg(Alpha) Algoritmo Input: msg i =ack(s); Ação: expected i (s):=expected i (s)-1; if expected i (s)=0 then Envie safe(s) para todo n j viz;

14 Instituto de Computação - UFF 14 Algoritmo A_Alg(Alpha) Algoritmo Input: msg i =safe(s) tal que origem i (msg i )=n j ; Ação: safe i j (s)=true; if safe i j (s i ) para todo n k viz then begin s i :=s i +1; Execute alguma computação; Envie uma comp_msg(s i ) em cada aresta do subconjunto de viz;

15 Instituto de Computação - UFF 15 Algoritmo A_Alg(Alpha) Algoritmo if expected i (s i )=0 then envie safe(s i ) para todo n k viz; end

16 Instituto de Computação - UFF 16 Sincronizadores Sincronizador Beta O sincronizador Beta exige uma spanning tree já estabelecida em G. A função do líder do sincronizador Beta é reunir de todos os outros nós a informação de segurança necessária para prosseguir para futuros pulsos e então propagar esta informação para todos eles.

17 Instituto de Computação - UFF 17 Sincronizador Beta Os detalhes deste procedimento são os seguintes: Quando um nó que não é um líder se torna seguro com relação a um certo pulso, e recebe uma mensagem de safe de todos exceto de um do seus vizinhos na árvore, Então este envia uma mensagem de safe para o único vizinho do qual ele não recebeu uma mensagem de safe (aresta da árvore conectando a este vizinho leva ao líder).

18 Instituto de Computação - UFF 18 Sincronizador Beta O líder ao receber mensagens safe sobre todas as arestas da árvore que são incidentes a ele, e estando seguro com relação ao pulso, propaga um mensagem sobre a árvore, indicando que a computação de um novo pulso pode ser executada. Esta mensagem pode ser também uma mensagem de safe, e então a regra para um nó prosseguir para o próximo pulso é ter recebido uma mensagem de safe de todas as arestas incidentes a ele.

19 Instituto de Computação - UFF 19 Sincronizador Beta O líder ao receber mensagens safe sobre todas as arestas da árvore que são incidentes a ele, e estando seguro com relação ao pulso, propaga um mensagem sobre a árvore, indicando que a computação de um novo pulso pode ser executada. Esta mensagem pode ser também uma mensagem de safe, e então a regra para um nó prosseguir para o próximo pulso é ter recebido uma mensagem de safe de todas as arestas incidentes a ele.

20 Instituto de Computação - UFF 20 Sincronizador Beta O líder ao receber mensagens safe sobre todas as arestas da árvore que são incidentes a ele, e estando seguro com relação ao pulso, propaga um mensagem sobre a árvore, indicando que a computação de um novo pulso pode ser executada. Esta mensagem pode ser também uma mensagem de safe, e então a regra para um nó prosseguir para o próximo pulso é ter recebido uma mensagem de safe de todas as arestas incidentes a ele.

21 Instituto de Computação - UFF 21 Sincronizador Beta O líder ao receber mensagens safe sobre todas as arestas da árvore que são incidentes a ele, e estando seguro com relação ao pulso, propaga um mensagem sobre a árvore, indicando que a computação de um novo pulso pode ser executada. Esta mensagem pode ser também uma mensagem de safe, e então a regra para um nó prosseguir para o próximo pulso é ter recebido uma mensagem de safe de todas as arestas incidentes a ele.

22 Instituto de Computação - UFF 22 Sincronizador Beta O líder ao receber mensagens safe sobre todas as arestas da árvore que são incidentes a ele, e estando seguro com relação ao pulso, propaga um mensagem sobre a árvore, indicando que a computação de um novo pulso pode ser executada. Esta mensagem pode ser também uma mensagem de safe, e então a regra para um nó prosseguir para o próximo pulso é ter recebido uma mensagem de safe de todas as arestas incidentes a ele.

23 Instituto de Computação - UFF 23 Sincronizadores Sincronizador Gama O sincronizador Gama é uma combinação dos outros dois sincronizadores. Dentro dos clusters, o sincronizador Gama opera como sincronizador Alpha. Os nós são agrupados em clusters. Entre os clusters, como sincronizador Beta.


Carregar ppt "Instituto de Computação - UFF Sincronizadores Algoritmos Distribuídos Professora: Lúcia Drummond."

Apresentações semelhantes


Anúncios Google