Pr-1st-1.1-m08-Slajd07

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

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