Przetwarzanie rozproszone

Podobne dokumenty
Przetwarzanie rozproszone

Przetwarzanie rozproszone

Detekcja zakleszczenia (1)

Rozproszone systemy operacyjne

Proces rozproszony. Plan wykładu. Wykład prowadzą: Jerzy Brzeziński Jacek Kobusiński. Proces rozproszony. Zbiór stanów globalnych (1)

Proces rozproszony 1

Problem detekcji zakończenia (I)

Problem detekcji zakończenia (I)

5. Model komunikujących się procesów, komunikaty

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU

Algorytmy Równoległe i Rozproszone Część VI - Systemy rozproszone, podstawowe pojęcia

Wzajemne wykluczanie i zakleszczenie

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Konstrukcja spójnego obrazu stanu globalnego - wprowadzenie

Problem detekcji zakończenia (II)

Czas wirtualny, złożoność algorytmów

Detekcja zakleszczenia (2)

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

Problem detekcji zakończenia

Inżynieria oprogramowania

Mechanizmy rozgłaszania niezawodnego

Stan globalny. Krzysztof Banaś Systemy rozproszone 1

Najkrótsza droga Maksymalny przepływ Najtańszy przepływ Analiza czynności (zdarzeń)

Wykład 1. Systemy przekazywania wiadomości z założeniem bezbłędności działania

miejsca przejścia, łuki i żetony

Algorytmy Równoległe i Rozproszone Część VII - Systemy rozproszone, wstęp

Język UML w modelowaniu systemów informatycznych

Sieci Petriego. Sieć Petriego

Tryby komunikacji między procesami w standardzie Message Passing Interface. Piotr Stasiak Krzysztof Materla

Czas wirtualny, złożoność algorytmów

Rozszerzenia sieci Petriego

Definicje. Algorytm to:

Rozszerzenia sieci Petriego

Czas wirtualny, złożoność algorytmów

Zalety projektowania obiektowego

Podstawy Informatyki Elementarne podzespoły komputera

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2

Podstawy programowania skrót z wykładów:

Sterowniki Programowalne (SP) Wykład 11

Konstrukcja spójnego obrazu stanu globalnego

Czas wirtualny, złożoność algorytmów

Wykład z modelowania matematycznego. Zagadnienie transportowe.

1. SFC W PAKIECIE ISAGRAF 2. EDYCJA PROGRAMU W JĘZYKU SFC. ISaGRAF WERSJE 3.4 LUB 3.5 1

Multiprocessor Shared-Memory Information Exchange. Damian Klata, Adam Bułak

SEGMENT TCP CZ. II. Suma kontrolna (ang. Checksum) liczona dla danych jak i nagłówka, weryfikowana po stronie odbiorczej

Technika Cyfrowa 1 wykład 12: sekwencyjne układy przełączające

Technika Cyfrowa 1 wykład 11: liczniki sekwencyjne układy przełączające

Płatności CashBill - SOAP

Podział układów cyfrowych. rkijanka

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

S Instrukcje programowania instrukcje obsługi Ethernetu

Sortowanie topologiczne skierowanych grafów acyklicznych

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

Losowość w rozproszonym modelu

Wywoływanie procedur zdalnych

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

Spacery losowe generowanie realizacji procesu losowego

Wywoływanie procedur zdalnych

Wprowadzenie do programowania współbieżnego

Diagramy czynności. Widok logiczny. Widok fizyczny

Wywoływanie procedur zdalnych

Macierzowe algorytmy równoległe

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

A i. i=1. i=1. i=1. i=1. W dalszej części skryptu będziemy mieli najczęściej do czynienia z miarami określonymi na rodzinach, które są σ - algebrami.

Adaptacja sterownika PLC do obiektu sterowania. Synteza algorytmu procesu i sterowania metodą GRAFCET i SFC

4. Procesy pojęcia podstawowe

Zmiany. Initial Step krok inicjujący sekwenser

Programowanie współbieżne Zadanie nr 4 Spotkania

SFC zawiera zestaw kroków i tranzycji (przejść), które sprzęgają się wzajemnie przez połączenia

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Według raportu ISO z 1988 roku algorytm JPEG składa się z następujących kroków: 0.5, = V i, j. /Q i, j

4. Procesy pojęcia podstawowe

Wykład nr 1 Techniki Mikroprocesorowe. dr inż. Artur Cichowski

Podstawy Informatyki Systemy sterowane przepływem argumentów

domykanie relacji, relacja równoważności, rozkłady zbiorów

Programowanie w Logice Przykłady programów. Przemysław Kobylański

Mechanizmy pracy równoległej. Jarosław Kuchta

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Wykład z Technologii Informacyjnych. Piotr Mika

Konstrukcja spójnego obrazu stanu globalnego algorytmy

Konstrukcja spójnego obrazu stanu globalnego algorytmy

ALGEBRA Z GEOMETRIĄ BAZY PRZESTRZENI WEKTOROWYCH

Konstrukcja spójnego obrazu stanu globalnego algorytmy

Uzupełnienia dotyczące zbiorów uporządkowanych (3 lutego 2011).

Komunikacja asynchroniczna... 23

Projektowanie systemów informacyjnych

Komunikowanie jest procesem porozumiewania się jednostek, grup lub instytucji. Jego celem jest wymiana myśli, dzielenie się wiedzą, informacjami i

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Definicja sieci. Sieć Petriego jest czwórką C = ( P, T, I, O ), gdzie: P = { p 1, p 2,, p n } T = { t 1, t 2,, t m }

Przerzutnik ma pewną liczbę wejść i z reguły dwa wyjścia.

Procesy stochastyczne

Układy równań i nierówności liniowych

Zagadnienia Semestr IV Inżynieria Oprogramowania WSZiB

Sortowanie przez wstawianie Insertion Sort

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1

Internet Semantyczny i Logika I

Technologie baz danych

Transkrypt:

Wykład prowadzą: Jerzy Brzeziński Jacek Kobusiński Plan wykładu Proces sekwencyjny Komunikaty, kanały komunikacyjne Stan kanału Operacje komunikacyjne Model formalny procesu sekwencyjnego Zdarzenia Warunek uaktywnienia Modele żądań (2) Proces sekwencyjny Procesem rozproszonym (przetwarzaniem rozproszonym) nazywamy współbieżne i skoordynowane (ang. concurrent and coordinated) wykonanie w środowisku rozproszonym zbioru P procesów sekwencyjnych P 1, P 2, P 3,..., P n współdziałających w realizacji wspólnego celu przetwarzania. Nieformalnie, każdy proces sekwencyjny jest działaniem wynikającym z wykonywania w pewnym środowisku (kontekście) programu sekwencyjnego (algorytmu sekwencyjnego), który składa się z ciągu operacji (instrukcji, wyrażeń) atomowych (nieprzerywalnych). (3) (4)

Klasy operacji Komunikat - definicja Wyróżnia się dwie podstawowe klasy operacji: wewnętrzne (ang. internal) odnoszą się tylko do zmiennych lokalnych programu komunikacyjne (ang. communication) odnoszą się do środowiska i dotyczą komunikatów (ang. messages) oraz kanałów (ang. channels) Komunikat (wiadomość) jest dynamiczną strukturą danych: M = tag, mid, sid, rid, data identyfikator typu wiadomości identyfikator wiadomości identyfikator procesu nadawcy (ang. sender) identyfikator procesu odbiorcy (ang. receiver) dane (5) (6) Kanał - definicja Kanały incydentne, wejściowe i wyjściowe Kanał jest obiektem (zmienną) skojarzonym z uporządkowaną parą procesów, P j, modelującym jednokierunkowe łącze transmisyjne. Typem tego obiektu jest zbiór wiadomości, którego rozmiar nazywany jest pojemnością kanału. Kanał skojarzony z parą procesów, P j, oznaczamy przez C i,j oraz nazywamy kanałem incydentnym z procesem i z procesem P j. Ponadto, kanał C i,j nazywamy kanałem wyjściowym procesu oraz kanałem wejściowym procesu P j. P j C i,j (7) (8)

Zbiory kanałów Zbiory procesów sąsiednich Zbiór kanałów wejściowych i wyjściowych tego procesu odpowiednio przezc i IN ic i OUT. Zbiór wszystkich kanałów incydentnych procesu oznaczymy przezc i. Tak więc: C i =C i IN C i OUT (2.1) C i IN Zbiór sąsiednich procesów wejściowych procesu P IN i = {P j : P j, C IN i } (2.2) Zbiór sąsiednich procesów wyjściowych procesu P OUT i = {P j :, P j C OUT i } (2.3) OUT C i OUT IN (9) (10) Stan kanału Modelowanie opóźnienia w kanale Przez stan L i,j kanału C i,j rozumieć będziemy zbiór, lub uporządkowany zbiór, wiadomości wysłanych przez proces lecz jeszcze nie odebranych przez proces P j. W celu modelowania w kanale opóźnień komunikacyjnych, w zbiorze wiadomości L i,j wyróżnia się dwa rozłączne podzbiory: zbiór wiadomości transmitowanych L i,j T (ang. in-transit) zbiór wiadomości dostępnych L i,j A (ang. available, arrived, ready) Oczywiście, w każdej chwili L i,j = L i,jt L i,j A (2.4) (11) (12)

Stan kanału przykład Predykaty opisujące stan kanału L i,j L i,j A empty(c i,j ) L i,j T in-transit(c i,j ) C i,j P j available(c i,j ) (13) (14) Predykat empty Predykat in-transit empty(c i,j ) L i,j = (2.5) in-transit(c i,j ) L i,j T (2.6) C i,j P j C i,j P j (15) (16)

Predykat available Indywidualne operacje komunikacyjne (1) available(c i,j ) L i,j A (2.7) send(, P j, M) C i,j P j Efektem wykonania tej operacji jest umieszczenie wiadomości M w kanale C i,j, a więc wykonanie podstawienia L i,j := L i,j {M} (2.8) (17) (18) Indywidualne operacje komunikacyjne (2) Grupowe operacje komunikacyjne (1) receive(, P j, inm) Jeżeli kanał C i,j nie jest pusty i pewna wiadomość M jest bezpośrednio dostępna (available(c i,j ) ma wartość True), to efektem wykonania tej operacji jest pobranie wiadomości M z kanału C i,j, a więc wykonanie podstawienia: L i,j := L i,j \ {M} oraz inm := M (2.9) send(,r, M) Efektem wykonania tej operacji jest umieszczenie wiadomości we wszystkich kanałach C i,j, takich że P j R, a więc podstawienie dla wszystkich tych kanałów: L i,j := L i,j {M} (2.10) (19) (20)

Grupowe operacje komunikacyjne (2) Rodzaje komunikacji receive(p js, P j, sinm) Efektem wykonania operacji receive(p js, P j, sinm) jest atomowe pobranie wiadomości M i od procesów P js i umieszczanie ich w sinm. Tym samym, dla każdego procesu P js, wykonywane jest kolejno podstawienie L i,j := L i,j \ {M i } oraz sinm := sinm {M i } (2.11) Kanały o niezerowej pojemności umożliwiają realizację operacji następujących typów komunikacji: nieblokowanej blokowanej (21) (22) Komunikacja synchroniczna Komunikacja asynchroniczna W komunikacji synchronicznej, nadawca i odbiorca są blokowani aż odpowiedni odbiorca odczyta przesłaną do niego wiadomość (ang. rendez-vous). W przypadku komunikacji asynchronicznej, nadawca lub odbiorca komunikuje się w sposób nieblokowany. send( ) receive( ) send( ) receive( ) P j P j (23) (24)

Model formalny procesu sekwencyjnego Stan procesu (1) Formalnie, proces sekwencyjny może być opisany (modelowany) przez uporządkowaną czwórkę: = S i, S i0, E i, F (2.12) gdzie S i jest zbiorem stanów S i procesu S i0 jest zbiorem stanów początkowych,s i0 S i E i jest zbiorem zdarzeń procesu F jest funkcją tranzycji, takąże:f i S i E i S i, a S, E, S F i, (2.13) jeżeli zajście zdarzenia E w stanie S jest możliwe i prowadzi do zmiany stanu na S (25) Stan S i (t) procesu w chwili t czasu lokalnego jest w ogólności zbiorem wartości wszystkich zmiennych lokalnych skojarzonych z procesem w chwili t oraz ciągów wiadomości wysłanych (wpisanych) do incydentnych kanałów wyjściowych i ciągów wiadomości odebranych z incydentnych kanałów wejściowych do chwili t. (26) Stan procesu (2) Definicja zdarzenia Dla każdego t, S i (t) S i. W celu uproszczenia notacji, zależność stanu od czasu można przyjąć za domyślną i jeśli nie prowadzi to do niejednoznaczności, oznaczać stan w pewnej chwili t przez S i. ZbiórS i0 jest zbiorem stanów początkowych, których wartości są zadawane wstępnie, bądź są wynikiem zajścia wyróżnionego zdarzenia inicjującego E i0. Zdarzenie E ik odpowiada unikalnemu wykonaniu operacji atomowej, zmieniającemu stan S i procesu i ewentualnie stan incydentnych z procesem kanałów C i,j lub C j,i. Jeżeli operacja odpowiadająca zdarzeniu została wykonana, to powiemy,że zdarzenie zaszło. (27) (28)

Klasy zdarzeń Zdarzenie e_send e_send e_receive e_internal e_send (, P j, M) zachodzi w procesie, w wyniku wykonania przez ten proces operacji send(, P j, M) e_send (,R, M) zachodzi w procesie, w wyniku wykonania przez ten proces operacji send(, R, M) (29) (30) Zdarzenie e_receive Zdarzenie e_internal e_receive (, P j, M) zachodzi w procesie P j, gdy P j wykonał operację receive(, P j, inm), a odczytana do zmiennej lokalnej inm wiadomość M pochodziła od procesu e_receive (P js, P j, M js ) zachodzi w procesie P j, gdy P j wykonał operację receive(p js, P j, sinm), a odczytane do zmiennej lokalnej sinm wiadomości M i M S j pochodzą od procesów P S j e_internal ( ) zachodzi gdy proces wykonał operację, która nie zmienia stanu jego kanałów incydentnych. Do zdarzeń lokalnych zalicza się między innymi zdarzenia: e_init(, S ik ) które nadaje procesowi P j stan S i k (w szczególności stan początkowy) e_stop( ) które kończy wykonywanie procesu (31) (32)

Dostępność wiadomości Funkcja tranzycji Dostępność wiadomości utożsamiać można z zajściem zdarzeń w środowisku komunikacyjnym: zdarzenie dostarczenia wiadomości M e_deliver(, P j, M) zdarzenia nadejścia wiadomości M e_arrive(, P j, M) Przez P ja oznaczać będziemy zbiór procesów, których wiadomości dotarły i są dostępne dla P j. Funkcja tranzycjif i S i E i S i opisuje reguły zmiany stanu S na S w wyniku zajścia zdarzenia E. Elementy S, E, S 2 F i nazwiemy tranzycjami lub krokami. W zależności od zachodzącego zdarzenia E, tranzycję nazwiemy odpowiednio tranzycją wejścia, wyjścia lub lokalną. (33) (34) Zdarzenia dopuszczalne Zdarzenia gotowe Funkcja tranzycji dopuszcza możliwość zajścia zdarzenia E tylko w tych stanach S, dla których S, E, S 2 F i. Dlatego też, w wypadku gdy S, E, S 2 F i, powiemyże zdarzenie jest dopuszczalne (ang. allowed) w stanie S. Wprowadzimy też predykat allowed(e) oznaczający, że w danej chwili zdarzenie E jest dopuszczalne. Oprócz czynnika wewnętrznego (stanu procesu), zajście zdarzenia może być dodatkowo uwarunkowane stanem kanałów wejściowych (środowiska). Jeśli zdarzenie może zajść ze względu na warunki zewnętrzne (stan kanałów), to powiemy że zdarzenie jest przygotowane lub gotowe (ang. ready). Fakt gotowości zdarzenia E w danej chwili wyrażać będzie predykat ready(e). (35) (36)

Predykat enable Procesy zakończone, wstrzymane Powiemy, że proces jest w stanie końcowym S ie, jeżeli zbiór zdarzeń dopuszczalnych w tym stanie jest pusty. Predykat enable(e), oznacza, że zdarzenie jest aktywne, czyli jednocześnie gotowe i dopuszczalne. Stąd też: enable(e) ready(e) allowed(e) (2.14) Jeżeli natomiast niepusty zbiór zdarzeń dopuszczalnych zawiera wyłącznie zdarzenia odbioru i żadne z tych zdarzeń nie jest aktywne (gotowe), to powiemy że proces jest wstrzymany (zablokowany). (37) (38) Procesy aktywne, pasywne Proces aktywny Proces wstrzymany lub zakończony nazwiemy pasywnym. Przez proces aktywny będziemy natomiast rozumieć proces, który nie jest pasywny. Przyjmujemy, że w każdej chwili t stan procesu reprezentuje zmienna logiczna passive i, przyjmująca wartość Aktywny proces (passive i =False) może wysyłać i odbierać wiadomości, wykonywać tranzycje lokalne, a więc potencjalnie może również spontanicznie (w dowolnej chwili) zmienić swój stan na pasywny. True, gdy proces jest pasywny False, gdy proces jest aktywny (39) (40)

Proces pasywny Warunek uaktywnienia W stanie pasywnym procesu (passive i =True) dopuszczalne są natomiast co najwyżej zdarzenia odbioru. Zmiana stanu procesu z pasywnego na aktywny uwarunkowana jest osiągnięciem gotowości przez choćby jedno z dopuszczalnych zdarzeń odbioru, czyli spełnieniem tak zwanego warunku uaktywnienia. Warunek uaktywnienia (ang. activation condition) procesu związany jest ze zbiorem warunkującymd i, zbiorema, oraz predykatem activate i (X). (41) (42) Zbiór warunkujący Predykat activate Predykat activate i (X) zdefiniowany jest w sposób następujący: Zbiór warunkujący (ang. dependent set), jest sumą mnogościową zbiorów S wszystkich zdarzeń odbioru dopuszczalnych w danej chwili. 1. jeżelix =D i, to activate i (X) = True 2. jeżelix =, to activate i (X) = False 3. jeżelix D i ix, to: activate i (X) X :: X X X (A =X ( passive i passive i )) (2.15) gdzie passive i passive i oznacza, że pasywny proces zmieni swój stan na aktywny w skończonym, choć nieprzewidywalnym czasie. (43) (44)

Predykat ready Modele żądań Warunek uaktywnienia procesu formalnie wyraża predykat ready i (X): ready i (X) (A X) activate i (X) (2.17) Gdy proces jest uaktywniany, to wiadomości, których dostarczanie doprowadziło do spełnienia warunku uaktywnienia, są atomowo pobierane z buforów wejściowych i dalej przetwarzane. model jednostkowy model AND model OR podstawowy model k spośród r model OR-AND dysjunkcyjny model k spośród r model predykatowy (45) (46) Model jednostkowy Model AND W modelu jednostkowym warunkiem uaktywnienia pasywnego procesu jest przybycie wiadomości od jednego, ściśle określonego nadawcy. W tym przypadku D i = 1, dla każdego naturalnego i, 1 i n. Model ten odpowiada szerokiej klasie systemów, w których procesy żądają kolejno po jednym tylko zasobie. D i W modelu AND proces pasywny staje się aktywnym, jeżeli dotarły wiadomości od wszystkich procesów tworzących zbiór warunkujący. Model ten nazywany jest również modelem zasobowym. D i (47) (48)

Model OR Podstawowy model k spośród r W modelu OR do uaktywnienia procesu wystarczy jedna wiadomość od któregokolwiek z procesów ze zbioru warunkującego. Model ten nazywany jest również modelem komunikacyjnym. D i W podstawowym modelu k spośród r, z pasywnym procesem skojarzony jest zbiór warunkujący D i, liczba naturalna k i, 1 k i D i, oraz liczba r i = D i. W modelu tym proces staje się aktywny tylko wówczas, gdy uzyska wiadomości od co najmniej k i różnych procesów ze zbioru warunkującegod i. (49) (50) Podstawowy model k spośród r przykład Model OR-AND D i W modelu OR-AND zbiór warunkujący D i pasywnego procesu jest zdefiniowany jakod i1 D i2... D qi i, gdzie dla każdego naturalnego u, 1 u q i,d iu P. r i =5 k i =2 Proces staje się aktywny po otrzymaniu wiadomości od każdego z procesów tworzących zbiórd i1 lub od każdego z procesów tworzących zbiór D i2 lub... lub od każdego z procesów tworzących zbiórd i qi. (51) (52)

Model OR-AND przykład Dysjunkcyjny model k spośród r D i 1 D i 2 W modelu dysjunkcyjnym k spośród r z każdym pasywnym procesem skojarzony jest zbiór warunkujący D i =D i1 D i2... D qi i, liczby naturalne k i1, k i2,..., k i qi, oraz liczby naturalne r i1, r i2,..., r i qi, gdzie dla każdego naturalnego u, 1 u q i,d iu P, 1 k iu r iu = D iu. D i 3 Proces staje się aktywny po otrzymaniu wiadomości od k 1 i różnych procesów ze zbioru D i1, lub k i2 wiadomości od różnych procesów ze zbiorud i2, lub... lub k iu wiadomości od różnych procesów ze zbiorud i qi. (53) (54) Dysjunkcyjny model k spośród r Model predykatowy Model dysjunkcyjny k spośród r redukuje się do: modelu OR-AND, gdy k iu = D iu dla każdego u modelu podstawowego k spośród r, gdy q i =1 modelu AND, gdy q i =1 i k i1 = D i1 modelu OR, gdy q i =1 i k i1 =1 W modelu predykatowym, dla każdego pasywnego procesu ze zbiorem warunkującym D i określony jest predykat activate i (X), gdziex P. Jak łatwo zauważyć, stosownie definiując predykat activate i (X) można oczywiście uzyskać wszystkie wcześniej omówione modeleżądań. (55) (56)