Proces rozproszony Wykład prowadzą: Jerzy Brzeziński Jacek Kobusiński Pan wykładu Proces rozproszony Wykonanie procesu, historia procesu Stan osiągany Reacja poprzedzania zdarzeń Diagramy przestrzenno-czasowe Niedeterminizm przetwarzania Graf stanów osiąganych Monitory Konwencja zapisu agorytmów Proces rozproszony () Proces rozproszony Zbiór stanów gobanych () Proces rozproszony Π, będący współbieżnym wykonaniem zbiorup={p, P,..., P n } procesów sekwencyjnych P i, opisuje uporządkowana czwórka Π = Σ,Σ 0,Λ,Φ, (.) gdzie: Σ jest zbiorem stanów gobanych procesu rozproszonego, Σ S S... S n, Σ 0 jest zbiorem stanów początkowych,σ 0 S 0 S 0... S n 0, Λ jest zbiorem zdarzeń,λ = E... E n ; Φ jest funkcją tranzycji, takążeφ Σ Λ Σ. Zbiór stanów gobanych Σ jest podzbiorem ioczynu kartezjańskiego S S... S n, zbiorów stanów okanych procesów składowych przetwarzania rozproszonego. Stan gobany procesu rozproszonego Π w chwii τ czasu gobanego oznaczony przez Σ(τ), jest więc uporządkowanym zbiorem stanów okanych wszystkich procesów składowych w chwii τ: Σ(τ) = S (τ),s (τ),...,s n (τ) (.) Proces rozproszony () Proces rozproszony ()
Zbiór stanów gobanych () Gobana funkcja tranzycji Zbiór gobanych stanów początkowych Σ 0 jest podzbiorem ioczynu kartezjańskiego S 0 S 0... S n 0 zbiorów stanów początkowych procesów składowych. Zbiór zdarzeń gobanych Λ jest sumą mnogościową E... E n zbiorów zdarzeń procesów składowych. Gobana funkcja tranzycji Φ jest złożeniem funkcji tranzycji procesów składowych, a więc jest zbiorem trójek Σ, E, Σ', da których istnieje takie k, k n, że Σ = S, S,..., S k,..., S n, (.) Σ' = S, S,..., S k ',..., S n, (.) oraz S k, E, S k ' F k. (.5) Proces rozproszony (5) Proces rozproszony (6) Wykonanie częściowe procesu Wykonanie procesu Częściowe wykonanie procesu rozproszonego Π = Σ,Σ 0,Λ,Φ utożsamia się z ciągiemσ 0,,Σ, E,,Σ s, E s+,σ s+, składającym się naprzemiennie ze stanów i zdarzeń, takim że da każdego u, 0 u s, Przez wykonanie (reaizację) ϒ procesu Π rozumieć będziemy natomiast częściowe wykonanie rozpoczynające się stanem początkowym Σ 0 Σ 0. Σ u, E u+,σ u+ Φ. (.6) Proces rozproszony (7) Proces rozproszony (8)
Stan osiągany Gobany stan osiągany Powiemy,że stanσ procesu Π jest osiągany ze stanuσ, co oznaczymy przez Σ Σ, (.7) jeżei istnieje częściowe wykonanieσ 0,,Σ, E,...,Σ s, E s+, Σ s+ procesuπ, takieżeσ=σ 0 a Σ =Σ s+. Oznaczmy przez ϒ zbiór wszystkich możiwych wykonań (reaizacji) procesu Π. Jeżei istnieje wykonanie procesu Π, takie że Σ jest stanem końcowym, to stan ten nazwiemy gobanym stanem osiąganym (spójnym) procesu rozproszonego Π (ang. reachabe, consistent). Proces rozproszony (9) Proces rozproszony (0) Historia wykonania Proces rozproszony jako graf Każdemu wykonaniu ϒ ϒ procesu Π, odpowiada pewien ciąg stanów Σ 0, Σ, Σ,..., Σ s, Σ s+, nazywany śadem wykonania (reaizacji) procesuπ, oraz ciąg zdarzeń E 0,, E,..., E s, E s+, nazywany historią wykonania (reaizacji) procesu. Historię E 0,, E,..., E s, oznaczamy przez Ξ s, a zbiór historii przezξ. Proces rozproszony jest często przedstawiana jako graf: G = V,A (.8) w którym : wierzchołki grafu V i V reprezentują procesy składowe P i P przetwarzania rozproszonego, krawędzie (V i, V j ) A,A V V, grafu niezorientowanego ub łuki V i, V j A grafu zorientowanego, reprezentują kanały C i,j odpowiednio dwu ub jednokierunkowe. Proces rozproszony () Proces rozproszony ()
Topoogia przetwarzania rozproszonego Reacja poprzedzania zdarzeń () Graf G = V, A nazywany jest grafem procesu rozproszonego ub topoogią przetwarzania (topoogią procesu rozproszonego). Oznaczmy przez a reację poprzedzania (ang. happen before, causa precedence, happened before) zdefiniowaną na zbiorzeλwnastępujący sposób: E ik a E j ) i= j k<, ub ) i j oraz E ik jest zdarzeniem e_send(p i, P j, M) wysłania wiadomości M, a zdarzenie E j jest zdarzeniem e_receive(p i, P j, M) odbioru tej samej wiadomości, ub ) istnieje sekwencja zdarzeń E 0,, E,..., E s, takaże E 0 = E ik, E s = E j i da każdej pary E u, E u+ gdzie 0 u s-, zachodzi ) abo ). Proces rozproszony () Proces rozproszony () Reacja poprzedzania okanego Zdarzenia przyczynowo-zaeżne Przez a i oznaczamy reację poprzedzania okanego zdarzeń procesu, taką że: E ik a i E j wtedy i tyko wtedy, gdy i=j oraz k< (ub gdy i=j oraz E ik a E j ). Zdarzenia E k i i E j nazywamy przyczynowo-zaeżnymi, jeżei: E ik a E j abo E j a E i k (.9) W przeciwnym razie zdarzenie te nazwiemy przyczynowoniezaeżnymi ub współbieżnymi (ang. concurrent, causay independent), co będziemy oznaczać przez E ik E j. Proces rozproszony (5) Proces rozproszony (6)
Diagramy przestrzenno-czasowe Przykładowy diagram P 5 Reaizację przetwarzania rozproszonego można przedstawić graficznie w postaci diagramu przestrzenno-czasowego (ang. space-time diagram), w którym osie reprezentują upływ czasu gobanego, a punkty na osiach zdarzenia. P P E E E E, E,,, a, a E, a E, a, a E, a E E Proces rozproszony (7) Proces rozproszony (8) Reacja poprzedzania stanów okanych Stany współbieżne Przez anaogię do reacji na zbiorze zdarzeń, można zdefiniować częściowy porządek na zbiorze stanów wszystkich procesów P i P w sposób następujący: Stany okane, da których nie zachodzi ani reacja S ik a S j ani też reacja S j a S ik, nazywamy współbieżnymi. E k+ i a E j, ub S ik a S j (.0) E k+ i = E j Proces rozproszony (9) Proces rozproszony (0)
Graf stanów osiąganych Przykład grafu stanów osiąganych Zbiór częściowo uporządkowany Λ, a może być przedstawiony w postaci grafu zorientowanego, w którym wierzchołki odpowiadają stanomσ, a łuki Σ k,σ oznaczają istnienie zdarzenia dopuszczanego takiego,że Σ k, E,Σ Φ. (.) P P P E M M M E Σ,, Σ,,0 Σ,, Σ,, Σ 0,,0 Σ,, Σ 0,, Σ 0,0,0 Σ 0,, Σ 0,0, Σ 0,0, Graf taki, będziemy nazywać grafem stanów osiąganych przetwarzania rozproszonego ub siatką obiczeń rozproszonych. Σ,, Σ,, Σ,, Σ,, Σ,, Σ,, Proces rozproszony () Proces rozproszony () Niedeterminizm przetwarzania Niedeterministyczne zdarzenie okane W kontekście grafu stanów osiąganych przetwarzania rozproszonego, każda reaizacja przetwarzania rozproszonego jest pewną ścieżką w tym grafie. Istnienie wiee różnych ścieżek iustruje niedeterminizm przetwarzania rozproszonego, oznaczający że da danego stanu może istnieć wiee stanów następnych. Lokane zdarzenie procesu jest niedeterministyczne, gdy jego zajście może być zastąpione przez zajście innego zdarzenia i wybór ten nie jest przewidywany. Jeżei przykładowo sekwencyjne wykonanie procesu może być w każdej chwii zmienione w wyniku zajścia przerwania zewnętrznego, to wszystkie zdarzenia tego procesu są niezdeterminowane. Proces rozproszony () Proces rozproszony ()
Przetwarzanie zdeterminowane i niedeterministyczne Przetwarzanie quasi-deterministyczne Przetwarzanie nazywamy zdeterminowanym jeżei wszystkie zdarzenia są zdeterminowane. W przeciwnym wypadku, przetwarzanie nazywamy niedeterministycznym. W ramach niedeterministycznego przetwarzania rozproszonego wyróżnia się podkasę przetwarzania quasi deterministycznego (ang. quasi-deterministic, piece-wice deterministic, event-driven), w której niedeterminizm jest wyłącznie konsekwencją niedeterminizmu operacji odbioru. Proces rozproszony (5) Proces rozproszony (6) Diagramy równoważne Przykład diagramów równoważnych Naeży zauważyć, że w ogóności istnieje wiee różnych diagramów przestrzenno-czasowych, którym odpowiada taki sam zbiór częściowo uporządkowany Λ, a. Diagramy takie nazywa się diagramami równoważnymi. P P P E M M M E P P P E M M M E Proces rozproszony (7) Proces rozproszony (8)
Monitor Cechy monitora Proces apikacyjny P i Monitor Q i Środowisko komunikacyjne Ocena wartości predykatów gobanych wymaga w pierwszej koejności obserwacji (monitorowania) stanów okanych procesów składowych. W tym ceu przyjmiemy, że z każdym procesem P i skojarzony jest proces monitora Q i. Monitor może odczytywać (obserwować) zmienne okane procesu Monitor może obserwować i kontroować zdarzenia komunikacyjne Monitor nie ma natomiast możiwości zmiany stanu procesu przez przypisanie jego zmiennym okanym nowych wartości Proces rozproszony (9) Proces rozproszony (0) Konwencja zapisu agorytmów typ FRAME Typy komunikatów: apikacyjne kontrone sygnały pakiety Wspóne atrybuty: identyfikator typu komunikatu identyfikator komunikatu identyfikator nadawcy identyfikator odbiorcy type FRAME is record of tag:... /* poe identyfikatora typu */ mid:... /* poe identyfikatora wiadomości */ sid:... /* poe identyfikatora nadawcy */ rid:... /* poe identyfikatora odbiorcy */ Proces rozproszony () Proces rozproszony ()
typ MESSAGE typ CONTROL type MESSAGE extends FRAME is record of... type CONTROL extends FRAME is record of... Proces rozproszony () Proces rozproszony () typ SIGNAL typ PACKET type SIGNAL extends FRAME is record of type PACKET extends FRAME is record of... data: MESSSAGE Proces rozproszony (5) Proces rozproszony (6)