Pr-1st-1.1-m08-Slajd07: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Szopen (dyskusja | edycje)
Nie podano opisu zmian
 
m Zastępowanie tekstu – „ </math>” na „</math>”
 
Linia 7: Linia 7:


Z kolei wiadomość <math>M_1</math>, odebrana przez <math>P_1</math> po zapamiętaniu stanu lokalnego, zostaje uwzględniona w stanie kanału <math>C_{3,1}</math>. Zajście zdarzenia <math>\delta_1^3</math> powoduje, że ostatecznie stan kanału <math>C_{3,1}</math> będzie zawierał wiadomość <math>M_1</math>. Ostatecznie więc zostaje wyznaczony następujący stan spójny:
Z kolei wiadomość <math>M_1</math>, odebrana przez <math>P_1</math> po zapamiętaniu stanu lokalnego, zostaje uwzględniona w stanie kanału <math>C_{3,1}</math>. Zajście zdarzenia <math>\delta_1^3</math> powoduje, że ostatecznie stan kanału <math>C_{3,1}</math> będzie zawierał wiadomość <math>M_1</math>. Ostatecznie więc zostaje wyznaczony następujący stan spójny:
:<math>\mathit\Gamma ^1 = \left \langle S_1^1, S_2^1, S_3^1, L_{1,2} = \emptyset, L_{1,3} =\emptyset, L_{2,1} = \emptyset, L_{2,3} = \emptyset, L_{3,1} = \{ M_1 \}, L_{3,2} = \emptyset \right \rangle </math>
:<math>\mathit\Gamma ^1 = \left \langle S_1^1, S_2^1, S_3^1, L_{1,2} = \emptyset, L_{1,3} =\emptyset, L_{2,1} = \emptyset, L_{2,3} = \emptyset, L_{3,1} = \{ M_1 \}, L_{3,2} = \emptyset \right \rangle</math>


Dla porównania stan wyznaczony w procesie detekcji na dolnej części rysunku wygląda następująco:  
Dla porównania stan wyznaczony w procesie detekcji na dolnej części rysunku wygląda następująco:  
:<math>\mathit\Gamma ^2 = \left \langle S_1^1, S_2^2, S_3^3, L_{1,2} = \emptyset, L_{1,3} =\emptyset, L_{2,1} = \emptyset, L_{2,3} = \emptyset, L_{3,1} = \{ M_1 \}, L_{3,2} = \{ M_2 \} \right \rangle </math>
:<math>\mathit\Gamma ^2 = \left \langle S_1^1, S_2^2, S_3^3, L_{1,2} = \emptyset, L_{1,3} =\emptyset, L_{2,1} = \emptyset, L_{2,3} = \emptyset, L_{3,1} = \{ M_1 \}, L_{3,2} = \{ M_2 \} \right \rangle</math>





Aktualna wersja na dzień 10:50, 5 wrz 2023

Ilustracja działania algorytmu Chandy-Lamporta

Ilustracja działania algorytmu Chandy-Lamporta


Dla zilustrowania działania tego algorytmu przeanalizujemy przykład przedstawiony na slajdzie. Przyjęto na nim, że linia czerwona oznacza przesłanie wiadomości aplikacyjnej (na przykład M1 ) natomiast liniami zielonymi oznaczono przesłanie znacznika między monitorami. Założono ponadto, że topologia przetwarzania reprezentuje graf w pełni połączony. Inicjatorem detekcji jest monitor Qα=Q1 . Na górnej części rysunku w wyniku zdarzenia δ11 zachodzącego w Q1 w zmiennej procStatei zapamiętany zostaje stan lokalny S11 procesu P1, zmiennej chanStatei nadawana jest wartość początkowa , a znaczniki zostają wysłane do monitorów Q2 oraz Q3. Odebranie pierwszego znacznika przez Q3 w wyniku zdarzenia δ31 powoduje zapamiętanie stanu lokalnego S31 i uznanie kanału wejściowego C1,3 za pusty (podstawienie recvMark3[1]:=True ).

Z kolei wiadomość M1, odebrana przez P1 po zapamiętaniu stanu lokalnego, zostaje uwzględniona w stanie kanału C3,1. Zajście zdarzenia δ13 powoduje, że ostatecznie stan kanału C3,1 będzie zawierał wiadomość M1. Ostatecznie więc zostaje wyznaczony następujący stan spójny:

Γ1=S11,S21,S31,L1,2=,L1,3=,L2,1=,L2,3=,L3,1={M1},L3,2=

Dla porównania stan wyznaczony w procesie detekcji na dolnej części rysunku wygląda następująco:

Γ2=S11,S22,S33,L1,2=,L1,3=,L2,1=,L2,3=,L3,1={M1},L3,2={M2}


Jak widać, mimo, że proces detekcji w obu przypadkach rozpoczęty został w tej samej chwili przez ten sam monitor, otrzymane konfiguracje spójne Γ1 oraz Γ2 są różne. Łatwo też zauważyć, że Γ1 reprezentuje stan Σ(τb), podczas gdy Γ2reprezentuje stan, który nie wystąpił w rozpatrywanej realizacji (w żadnej chwili nie ma jednocześnie w kanałach C3,1 i C3,2 wiadomości). Ta różnica nie powinna zaskakiwać z uwagi na asynchronizm komunikacji i wynikający z tego niedeterminizm przetwarzania.


<< Poprzedni slajd | Spis treści | Następny slajd >>