Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Autorzy : Michał Winciorek Łukasz Jackowicz. Pojęcia wstępne proces proces procesy współbieżne (rys a i b) procesy współbieżne (rys a i b)

Podobne prezentacje


Prezentacja na temat: "Autorzy : Michał Winciorek Łukasz Jackowicz. Pojęcia wstępne proces proces procesy współbieżne (rys a i b) procesy współbieżne (rys a i b)"— Zapis prezentacji:

1 Autorzy : Michał Winciorek Łukasz Jackowicz

2 Pojęcia wstępne proces proces procesy współbieżne (rys a i b) procesy współbieżne (rys a i b)

3 komunikacja komunikacja synchronizacja synchronizacja Procesy mogą ze sobą współpracować lub współzawodniczyć. program współbieżny - składa się z kilku sekwencyjnych procesów, w których wykonywanie poszczególnych instrukcji może być przeplatane, lecz same procesy muszą się ze sobą komunikować by synchronizować działanie bądź wymieniać dane. program współbieżny - składa się z kilku sekwencyjnych procesów, w których wykonywanie poszczególnych instrukcji może być przeplatane, lecz same procesy muszą się ze sobą komunikować by synchronizować działanie bądź wymieniać dane.

4 zasób dzielony zasób dzielony sekcja krytyczna sekcja krytyczna Blokada i zagłodzenie blokada – wstrzymana grupa procesów, oczekujących na zdarzenie, blokada – wstrzymana grupa procesów, oczekujących na zdarzenie, które może zapoczątkować tylko jakiś inny proces z tej grupy które może zapoczątkować tylko jakiś inny proces z tej grupy ang. deadlock

5 zagłodzenie – nieskończone wstrzymywanie zagłodzenie – nieskończone wstrzymywanie procesu przez wykonywanie innych, współbieżnych procesu przez wykonywanie innych, współbieżnych do niego procesów do niego procesów Semafor stanowi mechanizm synchronizacji procesów, przeciwdziała stanowi mechanizm synchronizacji procesów, przeciwdziała wystąpieniu zjawisk blokady i zagłodzenia wystąpieniu zjawisk blokady i zagłodzenia definicja semafora ogólnego S – zmienna całkowita, definicja semafora ogólnego S – zmienna całkowita, nieujemna, o nadanej pewnej wartości początkowej nieujemna, o nadanej pewnej wartości początkowej

6 dozwolone operacje na semaforach dozwolone operacje na semaforach Czekaj(S). Jeśli S>0 to S:=S-1, Jeśli nie to wstrzymaj wykonanie procesu. Taki proces nazywamy wstrzymanym przez semafor S. Sygnalizuj(S) Jeśli są procesy wstrzymane przez ten semafor, to wznów jeden z nich, Jeśli nie to S:=S+1. własności semafora własności semafora 1.Czekaj(S) i Sygnalizuj(S) to operacje atomowe 2.Niezmienniki : a) S >= 0 b) S = S0 + #Sygnały - #Oczekiwania

7 3.Sygnalizuj(S) musi wznowić wstrzymany wcześniej proces ale który rodzaje semaforów : rodzaje semaforów : 1.Semafor z kolejką oczekujących procesów – FIFO 2.Semafor z aktywnym czekaniem - wartość S jest sprawdzana w pętli aktywnego czekania Czekaj(S):Loop If S>0 then S:=S-1; exit; endif; End Loop; 3.Silnie i słabo uczciwy semafor. uwagi i wnioski uwagi i wnioski

8 Wzajemne wykluczanie Problem : zsynchronizowanie N procesów, z których każdy w nieskończonej pętli na przemian zajmuje się własnymi sprawami i wykonuje sekcję krytyczną, w taki sposób, aby wykonywanie sekcji krytycznych jakichkolwiek dwóch lub więcej procesów nie pokrywało się w czasie. Problem występujący w rzeczywistych systemach w związku z przydzielaniem zasobów komputera wielu procesom. sposób rozwiązania przy użyciu semafora z kolejką oczekujących procesów Oznaczenia : e(s) – wartość zmiennej semaforoweje(s) – wartość zmiennej semaforowej e 0 (s)– wartość początkowa zm. semaforowej, jej wartość zależy ode 0 (s)– wartość początkowa zm. semaforowej, jej wartość zależy od rozwiązywanego problemu, określa krotność zasobu rozwiązywanego problemu, określa krotność zasobu f(s) – kolejka procesów czekających na dostęp do zasobuf(s) – kolejka procesów czekających na dostęp do zasobu P(s) – procedura wejścia, wykonywana dla każdego procesuP(s) – procedura wejścia, wykonywana dla każdego procesu zgłaszającego chęć skorzystania z zasobu zgłaszającego chęć skorzystania z zasobu V(s) – procedura wyjścia, zwalniająca niepotrzebny danemu procesowiV(s) – procedura wyjścia, zwalniająca niepotrzebny danemu procesowi zasób, wykonywana dla każdego procesu, który kończy zasób, wykonywana dla każdego procesu, który kończy użytkowanie zasobu użytkowanie zasobu

9 implementacja procedur implementacja procedur P(s) : begin e(s):=e(s)-1 e(s):=e(s)-1 if e(s) < 0 then if e(s) < 0 then begin begin stan(R):=zawieszony stan(R):=zawieszony R do kolejki f(s) R do kolejki f(s) end end else else R zajmuje zasób R zajmuje zasóbend V(s) : begin e(s):=e(s)+1 e(s):=e(s)+1 if e(s) <= 0 then if e(s) <= 0 then begin begin wyprowadź Q z kolejki f(s) wyprowadź Q z kolejki f(s) stan(Q):=aktywny stan(Q):=aktywny end endend Ug. R to proces pytający o dostęp do zasobu

10 Problem obiadujących filozofów Założenia: Filozof je tylko wtedy gdy ma dwa widelce, przy czym nie może podnieść na raz dwóch widelców.Filozof je tylko wtedy gdy ma dwa widelce, przy czym nie może podnieść na raz dwóch widelców. Dwóch filozofów nie może jeść jednocześnie tym samym widelcemDwóch filozofów nie może jeść jednocześnie tym samym widelcem Nie można wyróżniać żadnego z filozofówNie można wyróżniać żadnego z filozofów Żaden z filozofów nie zajmuje się tylko jedzeniem, po skończonym posiłku zapada w medytacjeŻaden z filozofów nie zajmuje się tylko jedzeniem, po skończonym posiłku zapada w medytacje

11 Rozwiązanie: Można przyjąć, że każdy widelec jest semaforem. Filozof próbując podnieść widelec wykonuje operacje czekaj w stosunku do semafora. Odkładając widelec wykonuje natomiast operacje sygnalizuj. Zatem dzielone dane to : var pałeczka: arrey[0..4] of semafor; przy czym wszystkie elementy tablicy pałeczka mają na początku wartość 1. Repeat czekaj(pałeczka[i]); czekaj(pałeczka[i]); czekaj(pałeczka[i + 1mod 5]); czekaj(pałeczka[i + 1mod 5]); jedzenie jedzenie sygnalizuj(pałeczka[i]); sygnalizuj(pałeczka[i]); sygnalizuj(pałeczka[i + 1mod 5]); sygnalizuj(pałeczka[i + 1mod 5]); myślenie myślenie Until false;

12 Problem pięciu obiadujących filozofów jest uznawany za klasyczne zagadnienie synchronizacji, z uwagi na to, że stanowi przykład szerokiej klasy problemów sterowania współbieżnością. Jest prostym odzwierciedleniem konieczność przydzielania wielu zasobów do wielu procesów w sposób grożący zakleszczeniem i zagłodzeniem. Sposoby rozwiązania problemu zakleszczenia: pozwolić zasiadać do stołu co najwyżej czterem filozofom naraz pozwolić zasiadać do stołu co najwyżej czterem filozofom naraz pozwolić filozofowi na podnoszenie widelców tylko wtedy, gdy są oba dostępne (tego zabiegu należy dokonać w sekcji krytycznej) pozwolić filozofowi na podnoszenie widelców tylko wtedy, gdy są oba dostępne (tego zabiegu należy dokonać w sekcji krytycznej) zastosować rozwiązanie asymetryczne, tzn. filozof o numerze nieparzystym podnosi najpierw widelec po lewej stronie, a potem sięga na prawo, podczas gdy filozof parzysty rozpoczyna od widelca znajdującego się po jego prawej stronie a potem zwraca się ku lewej stronie. zastosować rozwiązanie asymetryczne, tzn. filozof o numerze nieparzystym podnosi najpierw widelec po lewej stronie, a potem sięga na prawo, podczas gdy filozof parzysty rozpoczyna od widelca znajdującego się po jego prawej stronie a potem zwraca się ku lewej stronie.


Pobierz ppt "Autorzy : Michał Winciorek Łukasz Jackowicz. Pojęcia wstępne proces proces procesy współbieżne (rys a i b) procesy współbieżne (rys a i b)"

Podobne prezentacje


Reklamy Google