Pr-1st-1.1-m12-Slajd77

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Ilustracja algorytmu zgodnego rozgłaszania niezawodnego z globalnym uporządkowaniem wiadomości

Ilustracja algorytmu zgodnego rozgłaszania niezawodnego z globalnym uporządkowaniem wiadomości


Przeanalizujmy teraz przykład przedstawiony na slajdzie. Początkowo wszystkie pozycje wszystkich tablic vSeqNo są wyzerowane. Monitor Q1 procesu P1 wysyła pakiet z wiadomością M1 i seqNo=1. W wyniku tego wartość jego tablicy vSeqNo1[1]:=1, a pakiet z wiadomością M1 dołączana jest do zbioru pending1. Analogicznie, monitor Q3 procesu P3 wysyła pakiet z wiadomością M3 i seqNo=1, przypisując vSeqNo3[3]:=1, a pakiet z wiadomością M3 dołączana jest do zbioru pending3.


Monitor Q2 po otrzymaniu pakietu z wiadomością M1 modyfikuje swoją tablicę vSeqNo, wykonując przypisanie vSeqNo2[1]:=1. Ponieważ nadesłany pakiet posiada licznik sekwencyjny większy niż licznik lokalny zawarty w vSeqNo2[2], więc dodatkowo wykonuje operację przypisania vSeqNo2[2]:=1 oraz rozsyła wiadomości SNUPDATE do pozostałych monitorów. Odpowiada to wierszom 12-16 z przedstawionego algorytmu. Pozostałe monitory otrzymując tę wiadomość aktualizują odpowiednie pozycje lokalnej tablicy vSeqNo.


Załóżmy, że pakiet od monitora Q3 dociera do Q1 oraz Q2. Powoduje to odpowiednią modyfikację tablic vSeqNo. W tej chwili dla obu monitorów zachodzi warunek z wiersza 21 algorytmu – numer sekwencyjny pakietu z wiadomością M1 jest równy wszystkim pozycjom tablicy vSeqNo, a identyfikator jej nadawcy jest mniejszy od identyfikatorów nadawców wszystkich pozostałych wiadomości. Po dostarczeniu M1 i usunięciu odpowiedniego pakietu ze zbioru pendingi, oba monitory Q1 oraz Q2 mogą następnie dostarczyć wiadomość M3. Wreszcie, kiedy pakiet z wiadomością M1 dotrze ostatecznie do Q3, zostanie ona uznana za możliwą do dostarczenia (znowu zajdzie warunek z wiersza 21 algorytmu), i będzie można następnie dostarczyć również M2.


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