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

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

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

Apresentações semelhantes


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

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

2 Instituto de Computação - UFF 2 Detecção de Terminação Os algoritmos síncronos terminam após um certo número de pulsos. Para alguns algoritmos assíncronos regulares e bem estruturados não há problema na detecção de que não existem mais mensagens esperadas. Por exemplo, o Algoritmo de Propagação de Informação.

3 Instituto de Computação - UFF 3 Detecção de Terminação Os algoritmos assíncronos que não apresentam a regularidade que permite tal análise simples de terminação, utilizam a detecção de terminação global. Um algoritmo assíncrono terminou globalmente quando todos os nós estão ociosos e todas as arestas estão vazias no estado global.

4 Instituto de Computação - UFF 4 Algoritmo Detect_Termination Variáveis suspects i ; edge_state i j :={} para todo n j ; recorded i :=false; received i j :=false para todo n j ; max_tag i :=0; terminated i :=false;

5 Instituto de Computação - UFF 5 Algoritmo Detect_Termination Algoritmo Input: msg i =nil; Ação se n i N 0 : Execute alguma computação; Envie comp_msg em cada aresta de um subconjunto de Out i ;

6 Instituto de Computação - UFF 6 Algoritmo Detect_Termination Algoritmo if suspects i then begin max_tag i :=max_tag i +1; recorded i :=true; Envie marker(max_tag i ) para todo n j ; end

7 Instituto de Computação - UFF 7 Algoritmo Detect_Termination Algoritmo Input: msg i =comp_msg tal que origem i (msg i )=(n j n i ); Ação: Execute alguma computação; Envie comp_msg em cada aresta de um subconjunto de Out i ; if recorded i then if not received i j then edge_state i j := edge_state i j {msg i };

8 Instituto de Computação - UFF 8 Algoritmo Detect_Termination Algoritmo if suspects i then begin edge_state i k :={} para todo n k ; received i k := false para todo n k ; max_tag i := max_tag i + 1; recorded i := true; Envie marker(max_tag i ) para todo n j ; end

9 Instituto de Computação - UFF 9 Algoritmo Detect_Termination Algoritmo Input: msg i =marker(t) tal que origem i (msg i )=(n j n i ); Ação: if t=max_tag i then received i j := true; if t>max_tag i then begin max_tag i :=t; edge_state i k := {} para todo n k ; recorded i = false; received i k :=false para todo n k ;

10 Instituto de Computação - UFF 10 Algoritmo Detect_Termination Algoritmo if suspects i then begin received i j := true; recorded i := true; Envie marker(max_tag i ) para todo n j ; end If received i k para todo n k then Envie edge_state i k para todo n k, juntamente com max_tag i para n 1 ;

11 Instituto de Computação - UFF 11 Algoritmo Detect_Termination Algoritmo Input: msgi=terminate; Ação se n in 1 : terminated i :=true;

12 Instituto de Computação - UFF 12 Algoritmo Detect_Termination_D Terminação por Difusão Variáveis expected i :=0; parent i :=nil; terminated i :=false;

13 Instituto de Computação - UFF 13 Algoritmo Input: msg i =nil; Ação se n i N 0 : Execute alguma computação; Envie comp_msg em cada aresta de um subconjunto de Inc i ; Algoritmo Detect_Termination_D

14 Instituto de Computação - UFF 14 Algoritmo Input: msg i =comp_msg tal que origem(msg i )=n j ; Ação: if expected i > 0 then begin Envie ack para n j ; Execute alguma computação; Envie comp_msg em cada aresta de um subconjunto de Inc i ; end Algoritmo Detect_Termination_D

15 Instituto de Computação - UFF 15 Algoritmo else begin Execute alguma computação; Envie comp_msg em cada aresta de um subconjunto de Inc i ; if expected i > 0 then parent i :=n j ; Else Envie ack para n j ; end Algoritmo Detect_Termination_D

16 Instituto de Computação - UFF 16 Algoritmo Input: msg i =ack; Ação: expected i := expected i -1; if expected i = 0 then if parent i nil then Envie ack para parent i ; Algoritmo Detect_Termination_D

17 Instituto de Computação - UFF 17 Algoritmo Input: msg i =terminate; Ação se n in 1 : terminated i := true; Algoritmo Detect_Termination_D

18 Instituto de Computação - UFF 18 Teorema: Todo estado global no qual n 1 tem terminado localmente, é um estado global no qual a terminação global ocorre. Teorema Prova: Se n 1 terminou localmente, então todo nó deve ter enviado um número finito de mensagens de computação. Como estas mensagens de computação e os correspondentes acks foram recebidos, o valor de expected i para o nó n i, inicialmente igual a zero, se tornou positivo e zero, diversas vezes.

19 Instituto de Computação - UFF 19 Prova (cont): Sempre que uma transição ocorresse no valor de expected i de zero para uma valor positivo, parent i seria atualizado para apontar para o nó que enviou a mensagem de computação correspondente. Teorema Considere os estados do sistema nos quais todos os nós n i estão: ou em um estado positivo de expected i, seguindo a última transição de zero para este valor, se já enviou uma mensagem de computação durante a difusão, ou em qualquer outro estado, caso contrário.

20 Instituto de Computação - UFF 20 Prova (cont): Claramente, no mínimo um destes estados de sistema é um estado global, como por exemplo, aquele no qual todo nó que já enviou mensagens de computação está no seu estado que imediatamente precede a recepção do último ack. Teorema Neste estado global, somente há acks sobres as arestas, nenhum deles enviado como consequência da recepção de um último ack. Consideremos um destes estados globais.

21 Instituto de Computação - UFF 21 Prova (cont): Neste estado global, as variáveis parent i para n in 1 induzem uma árvore que se espalha por todos os nós em G correspondentes aos nós que enviaram no mínimo uma mensagens de computação durante a computação por difusão. Teorema Esta árvore muda dinamicamente com a execução do algoritmos, e parent i pode apontar para diversos vizinhos n i. A raiz dessa árvore é n 1 e suas folhas correspondem a aqueles nós dos quais nenhum outro nó n i recebeu a mensagem de computação que disparou a última transição de zero para um valor positivo de expected i.

22 Instituto de Computação - UFF 22 Prova (cont): A prova é por indução na árvore. Teorema Pela indução, a prova a ser feita é de que todo estado global no qual a raiz da sub-árvore tem terminado localmente é um estado global no qual todo outro nó na sub-árvore tem também terminado localmente. A base da indução é dada pelas sub-árvores com raízes nas folhas. Como nenhuma folha n i é tal que n i =parent j para algum nó n j, então a afirmação vale.

23 Instituto de Computação - UFF 23 Prova (cont): Como hipótese de indução, assuma esta afirmação para todas as sub-árvores com raízes em n j tal que parent j =n 1. Teorema Então, n 1 recebe expected 1 acks, no momento em que terminou localmente, e pela hipótese de indução, também todos os outros nós.


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

Apresentações semelhantes


Anúncios Google