UNIKANIE IMPASÓW W SYSTEMACH PROCESÓW WSPÓŁBIEŻNYCH

Podobne dokumenty
Zarządzanie w systemach i sieciach komputerowych. Dr inż. Robert Wójcik

Porządek dostępu do zasobu: procesory obszary pamięci cykle procesora pliki urządzenia we/wy

Systemy operacyjne. wykład 11- Zakleszczenia. dr Marcin Ziółkowski. Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie

POTRZEBY A B C D E P P P P P

Przeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne

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

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych

9.9 Algorytmy przeglądu

WOJSKOWA AKADEMIA TECHNICZNA WYDZIAŁ CYBERNETYKI

J. Ułasiewicz Programowanie aplikacji współbieżnych 1

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

Bazy danych w sterowaniu

Harmonogramowanie przedsięwzięć

Planowanie przejazdu przez zbiór punktów. zadania zrobotyzowanej inspekcji

Zakleszczenie. Problem i przeciwdziałanie. Systemy operacyjne Wykład 8 1

Planowanie wieloasortymentowej produkcji rytmicznej Zastosowanie symulacji jako narzędzia weryfikacyjnego

TEORETYCZNE PODSTAWY INFORMATYKI

Modelowanie procesów współbieżnych

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Przeciwdziałanie zakleszczeniu. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego

Zarządzanie w systemach i sieciach komputerowych. Dr inż. Robert Wójcik. Wykład 1. Charakterystyka kursu Cele i treści programowe przedmiotu

Synchronizacja procesów i wątków

Problem zakleszczenia

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Sortowanie topologiczne skierowanych grafów acyklicznych

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

Wykład z modelowania matematycznego. Zagadnienie transportowe.

Problem zakleszczenia. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Siedem cudów informatyki czyli o algorytmach zdumiewajacych

Metody numeryczne Wykład 4

J. Ułasiewicz Programowanie aplikacji współbieżnych 1

Detekcja zakleszczenia (1)

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

Kolejny krok iteracji polega na tym, że przechodzimy do następnego wierzchołka, znajdującego się na jednej krawędzi z odnalezionym już punktem, w

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

koniec punkt zatrzymania przepływów sterowania na diagramie czynności

Programowanie dynamiczne i algorytmy zachłanne

1 Wprowadzenie do algorytmiki

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

WOJSKOWA AKADEMIA TECHNICZNA WYDZIAŁ CYBERNETYKI

Algorytm. a programowanie -

Zależności funkcyjne

Automatyczne planowanie oparte na sprawdzaniu spełnialności

Logiczne układy bistabilne przerzutniki.

Matematyczne Podstawy Informatyki

Metody Programowania

Modele optymalizacyjne wspomagania decyzji wytwórców na rynku energii elektrycznej

Kolorowanie wierzchołków grafu

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

Planowanie przedsięwzięć

Wprowadzenie do programowania współbieżnego

Algorytm. Krótka historia algorytmów

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

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

9.4 Czasy przygotowania i dostarczenia

Rozwiązywanie problemów metodą przeszukiwania

Wzajemne wykluczanie i zakleszczenie

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Połączenie VPN Host-LAN IPSec z wykorzystaniem Windows Vista/7. 1. Konfiguracja routera. 2. Konfiguracja klienta VPN. 3. Zainicjowanie połączenia

Sterowniki Programowalne (SP) Wykład 11

przykłady problemów; realizacja dostaw części od producenta do klienta:

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

Turing i jego maszyny

Zarządzanie w systemach i sieciach komputerowych. Dr inż. Robert Wójcik

Tadeusz Pankowski Definicja. Definicja

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Imię, nazwisko, nr indeksu

Efektywne zarządzanie mocą farm wiatrowych Paweł Pijarski, Adam Rzepecki, Michał Wydra 2/16

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Programowanie współbieżne Wykład 7. Iwona Kochaoska

Diagnozowanie sieci komputerowej na podstawie opinii diagnostycznych o poszczególnych komputerach sieci

Teoria obliczeń i złożoność obliczeniowa

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

Logika Temporalna i Automaty Czasowe

Nazwa Wydziału Nazwa jednostki prowadzącej moduł Nazwa modułu kształcenia Kod modułu Język kształcenia Efekty kształcenia dla modułu kształcenia

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

INSTYTUT CYBERNETYKI TECHNICZNEJ POLITECHNIKI WROCŁAWSKIEJ ZAKŁAD SZTUCZNEJ INTELIGENCJI I AUTOMATÓW

Technologie baz danych

Obliczenia inspirowane Naturą

Sortowanie - wybrane algorytmy

Systemy baz danych. Notatki z wykładu

a) 7 b) 19 c) 21 d) 34

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

II. FUNKCJE WIELU ZMIENNYCH

5. Rozwiązywanie układów równań liniowych

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Zagadnienie najkrótszej drogi w sieci

Przykładowe rozwiązania

Zagadnienie transportowe (badania operacyjne) Mgr inż. Aleksandra Radziejowska AGH Akademia Górniczo-Hutnicza w Krakowie

Wstęp do programowania

Lista 4. Kamil Matuszewski 22 marca 2016

Instrukcja postępowania krok po kroku podczas korzystania z programu

Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych

Egzamin, AISDI, I termin, 18 czerwca 2015 r.

komputery? Andrzej Skowron, Hung Son Nguyen Instytut Matematyki, Wydział MIM, UW

Opis efektów kształcenia dla modułu zajęć

Transkrypt:

UNIKANIE IMPASÓW W SYSTEMACH PROCESÓW WSPÓŁBIEŻNYCH Robert Wójcik Instytut Cybernetyki Technicznej Politechniki Wrocławskiej 1. Impasy w systemach procesów współbieżnych 2. Klasyczne algorytmy unikania impasów 3. Podsumowanie

Systemy współbieżnych procesów sekwencyjnych z wzajemnym wykluczaniem Założenia: wzajemne wykluczanie w dostępie do wspólnych zasobów, jednostkowe żądania zasobowe, przetrzymywanie zasobu aż do momentu rezerwacji kolejnego zasobu, występowanie ograniczeń zasobowych. Przykłady. P 1 = (o 1,r 1 ) (o 2,r 2 ) (o 3,r 3 ) - proces sekwencyjny nr 1. P 2 = (o 4,r 4 ) (o 5,r 3 ) (o 6,r 2 ) - proces sekwencyjny nr 2. Przy założeniu jednostkowych pojemności zasobów w systemie może pojawić się stan blokady: P 1 - zakończył operację (o 2,r 2 ), P 2 - zakończył operację (o 5,r 3 ). P 1 o 3 r 2 r 3 o 6 P 2 2

System EGP (Elastyczne Gniazdo Produkcyjne) Niech ZP = { P i i =1,...,n } zbiór zadań (procesów) realizowanych w systemie EGP. Każdy proces ma postać: P i = (o 1,W) (o 2,M 1 ) (o 3,M 2 ) (o 4,W) (o 5,M 3 ). 3

Stan blokady w systemie: P 1 - zakończył (o 3,M 2 ), P 2 - zakończył (o 2,M 1 ), P 3 - zakończył (o 1,W). Pojemności zasobów: W, M 1, M 2, M 3 równe 1. M 2 P 1 o 4 o 3 M 1 W P 3 o 2 P 2 Stan systemu procesów Niech R = { r i i = 1,...,m } - zbiór zasobów, c(r i ) - liczba jednostek zasobu r i. OP = { o i i = 1,...,L } - zbiór operacji realizowanych przez procesy. Stan systemu: S = [ s(1),...,s(i),...,s(l) ], gdzie s(i) - liczba procesów realizujących operację o i OP. 4

Dla systemu EGP: S = [ s(1), s(2), s(3), s(4), s(5) ]. Stan początkowy: S 0 = [0,0,0,0,0]. Stan blokady: S b = [1,1,1,0,0]. Przestrzeń stanów - zbiór stanów osiągalnych ze stanu początkowego S 0 = [0,...,0]. Stan blokady (impasu) stan, w którym istnieje zbiór procesów, dla których nie można już wykonać żadnego przydziału zasobowego. Stany niebezpieczne - stany, z których po skończonej sekwencji przydziałów osiągany jest stan blokady. Stany zabronione - stany niebezpieczne lub stany blokady. Można pokazać, że w przypadku systemu EGP możliwe są 22 stany z czego 2 są stanami niedozwolonymi (jeden stan niebezpieczny i jeden stan blokady całkowitej). 5

Przestrzeń stanów systemu EGP 6

Złożoność obliczeniowa problemu Problem unikania impasów sprowadza się do wykrywania i eliminacji stanów zabronionych. W ogólnym przypadku jest to problem trudny obliczeniowo (NP-zupełny). Stan badań Rozwiązania (algorytmy) opracowane dla ogólnego przypadku oparte są na warunkach wystarczających dla unikania blokad, tzn. mogą odrzucać niektóre stany poprawne. Przy uwzględnieniu pewnych dodatkowych założeń można podać warunki wystarczające i konieczne dla unikania blokad (stanowią podstawę algorytmów maksymalnie dopuszczających). 7

Klasyczne algorytmy unikania impasów 1. Algorytm oparty na koncepcji wszystko albo nic. 2. Algorytm bankiera. 3. Algorytm oparty na koncepcji stref synchronizacji. 4. Algorytm wykorzystujący graf żądań zasobowych. Kryteria oceny algorytmów Liczba elementów przestrzeni stanów akceptowalnych. Złożoność obliczeniowa. 8

Algorytm wszystko albo nic A i - zbiór zasobów wykorzystywanych przez proces P i. Reguła alokacji zasobów Proces P i może rozpocząć wykonywanie operacji jeżeli zarezerwuje wszystkie zasoby należące do zbioru A i. Złożoność obliczeniowa testu: O(m), gdzie m = R - liczba zasobów. Przykładowe protokoły: 1. Algorytm Dekkera - synchronizacja dwóch procesów. 2. Algorytm Pettersona synchronizacja dwóch procesów 3. Algorytm Dijkstry - synchronizacja n procesów. Literatura: Raynal M., Algorithms for Mutual Exclusion, The MIT Press Cambridge, Massachusetts, 1986. 9

Stany akceptowalne - algorytm wszystko albo nic 10

Algorytm bankiera c(r i ) - liczba jednostek zasobu r i, ma(r i,p j ) - maksymalna liczba jednostek zasobu r i wykorzystywana przez proces P j. Reguła alokacji zasobów Proces Pj może zarezerwować żądane zasoby, jeżeli w wyniku rezerwacji pojawi się stan, w którym zbiór aktywnych procesów można uporządkować w taki sposób, aby możliwe było spełnienie maksymalnych żądań zasobowych procesów. Przykład. Jeden zasób w systemie: c(r) = 10. Maksymalne żądania procesów: ma(r,p1) = 8, ma(r,p2) = 6 Stan odrzucany Stan akceptowany P1 - żąda 5 jednostek P1 - żąda 4 jednostki P2 - żąda 3 jednostki P2 - żąda 5 jednostek Bankier - wolne 2 jednostki Bankier - wolna 1 jednostka Złożoność obliczeniowa testu: O(mn 2 ), gdzie m - liczba zasobów, n - liczba procesów. Literatura: Peterson L., Silberschatz A., Operating Systems Concepts, Addison-Wesley, Amsterdam, 1983. 11

W przypadku systemu EGP pojemności zasobów W, M1, M2, M3 są równe 1. Maksymalne żądania zasobowe procesów, dotyczące każdego zasobu są więc równe 1. W klasycznym algorytmie Bankiera zakłada się, że w dowolnym stanie proces pi może zgłosić maksymalne żądania zasobowe dotyczące każdego zasobu, który wykorzystuje w programie. Podczas podejmowania decyzji o przydziale zasobowym nie jest brana pod uwagę informacja o strukturze sekwencyjnych programów, a jedynie informacja o maksymalnych żądaniach zasobowych występujących w całym programie. Stąd w danym stanie systemu uwzględnia się możliwość zażądania przez proces wszystkich zasobów wykorzystywanych w całym programie w maksymalnych ilościach, w tym nawet tych zasobów, które były wykorzystywane na już zrealizowanych etapach programu sekwencyjnego. W takim przypadku stan Si = [ s(1), s(2), s(3), s(4), s(5) ] = [1, 1, 0, 0, 0] ( W, M1, M2, W, M3) zostanie uznany przez klasyczny algorytm Bankiera za niebezpieczny, gdyż proces realizujący operację s(2) korzysta z zasobu M1 i teoretycznie może zażądać każdego z potrzebnych mu w programie zasobów, tj. W, M1, M2, M3. Podobnie proces realizujący operację s(1) korzysta z zasobu W i teoretycznie może zażądać każdego z potrzebnych mu w programie zasobów, tj. W, M1, M2, M3. W przypadku, gdy pojemności zasobów są równe jeden żadne z tych żądań nie może być spełnione. 12

Podobna sytuacja zachodzi w przypadku stanu Sj = [ s(1), s(2), s(3), s(4), s(5) ] = [1, 0, 0, 0, 1]. Dla procesu, realizującego operację s(5) nie jest uwzględniana informacja o tym, że proces ten kończy program i dlatego w stanie Sj Bankier przyjmuje, że w kolejnym kroku proces może żądać przydziału zasobów W, M1, M2, M3, podobnie jak proces realizujący operację s(1). Stąd stan ten zostanie uznany przez klasyczny algorytm Bankiera za niebezpieczny. W ogólnym przypadku, w systemach, w których pojemności wszystkich zasobów są równe 1 klasyczny algorytm Bankiera będzie zawsze dopuszczał w jednym programie sekwencyjnym do realizacji tylko jeden proces, tj. będzie dopuszczał alokacje zasobów zgodnie z regułą wszystko albo nic. W przypadku programów sekwencyjnych znana jest struktura programów i może ona być uwzględniona podczas wykonywania alokacji zasobowych. Proponowana modyfikacja polega na uwzględnianiu w każdym stanie systemu maksymalnych żądań zasobowych procesów tylko w ramach niezrealizowanych fragmentów ich programów sekwencyjnych, a nie tak jak w klasycznym algorytmie Bankiera zawsze żądań zasobowych dotyczących całego programu realizowanego przez proces. W tym podejściu nadal stan Si = [ s(1), s(2), s(3), s(4), s(5) ] = [1, 1, 0, 0, 0] zostanie uznany za niebezpieczny i odrzucony. Jednak już stan Sj = [ s(1), s(2), s(3), s(4), s(5) ] = [1, 0, 0, 0, 1] zostanie uznany za bezpieczny (otrzymaną przestrzeń stanów dopuszczalnych pokazano na kolejnym rysunku). 13

Stany akceptowalne zmodyfikowany algorytm bankiera 14

Algorytm strefowy RS - zbiór zasobów, z których każdy wykorzystywany jest przez co najmniej dwie operacje (zasoby powtarzalne), RU - zbiór zasobów, z których każdy wykorzystywany jest przez tylko jedną operację (zasoby niepowtarzalne), OS - zbiór operacji korzystających z zasobów RS, OU - zbiór operacji korzystających z zasobów RU. Strefa synchronizacji - ciąg operacji tego samego rodzaju, tzn. operacji klasy OS lub OU. Zbiór stref: Z = ZS ZU & ZS ZU =, gdzie ZS - zbiór stref złożonych z operacji OS (s. powtarzalne), ZU - zbiór stref złożonych z operacji OU (s. niepowtarzalne). Dla systemu EGP: P i = (o 1,W) (o 2,M 1 ) (o 3,M 2 ) (o 4,W) (o 5,M 3 ), RS = { W }, RU = { M 1, M 2, M 3 }, OS = { o 1, o 4 }, OU = { o 2, o 3, o 5 }, ZS = { z 1, z 3 }, ZU = { z 2, z 4 }, o 1 o 2 o 3 o 4 o 5 - podział na strefy. z1 z2 z3 z4 S U S U 15

Algorytm strefowy Reguły alokacji zasobów Proces Pi może wykonać operację oj w strefie powtarzalnej za ZS, jeżeli równocześnie spełnione są warunki: żądany zasób jest dostępny, każdy zasób, wykorzystywany przez operacje następujące po oj w strefie za, posiada co najmniej jedną wolną jednostkę, w strefie niepowtarzalnej zb ZU, następującej po strefie powtarzalnej za ZS, istnieje operacja korzystająca z zasobu posiadającego co najmniej jedną wolną jednostkę. Proces Pi może wykonać operację oj w strefie niepowtarzalnej zb ZU, jeżeli żądany zasób jest dostępny. Złożoność obliczeniowa testu: O(L), gdzie L - liczba operacji realizowanych przez procesy. Literatura: Banaszak Z., Krogh B., Deadlock Avoidance in Flexible Manufacturing Systems..., IEEE Trans. On Rob. and Automation, 1990, Vol.6, No.6. 16

Stany akceptowalne - algorytm strefowy 17

Algorytm grafowy G = (R, E) - graf żądań zasobowych, gdzie R = { r i i = 1,...,m } - zbiór zasobów, L - liczba operacji, E = { (x,y) k {1,...,L-1} (o k,r i ) & (o k+1,r j ) & & (x = r i ) & (y = r j ) } - zbiór krawędzi. W przypadku systemu EGP: P i = (o 1,W) (o 2,M 1 ) (o 3,M 2 ) (o 4,W) (o 5,M 3 ), R = { W, M 1, M 2, M 3 }. Graf żądań zasobowych M 1 M 3 M 2 W H - zbiór zasobów należących do cyklu o najmniejszej pojemności, c(ri) - liczba jednostek zasobu ri, c(h) = c(ri) & ri H - pojemność minimalnego cyklu. Dla systemu EGP: H = { W, M 1, M 2 } & c(h) = 3. 18

Algorytm grafowy c(h) - pojemność minimalnego cyklu, d(s) - liczba procesów (zadań) realizowanych w systemie w stanie S. Reguła alokacji zasobów W stanie S k przydział zasobu do procesu jest dozwolony, jeżeli w osiąganym stanie S k+1 spełniony jest warunek d(s k+1 ) c(h) - 1. W przypadku systemu EGP: d(s k+1 ) 2. Złożoność obliczeniowa testu: O(1). Literatura: Peterson L., Silberschatz A., Operating Systems Concepts, Addison-Wesley, Amsterdam, 1983. Fanti M.P., Maione B., Mascolo S., Turchiano B., Event Based Feedback Control for Deadlock Avoidance in Flexible Production Systems, IEEE Trans. On Rob. and Automation, 1997, Vol.13, No.3. 19

Stany akceptowalne - algorytm grafowy 20

Podsumowanie 1. Przedstawione algorytmy oparte są na warunkach wystarczających dla unikania blokad i dlatego mogą odrzucać niektóre stany bezpieczne. 2. W przypadku systemu EGP najwięcej stanów akceptuje algorytm strefowy (17 stanów z ogólnej liczby 20 stanów bezpiecznych), następnie algorytm grafowy - 15 stanów, algorytm bankiera - 10 stanów, oraz algorytm wszystko albo nic - 6 stanów. 3. Jeżeli liczba operacji realizowanych przez procesy jest niewielka oraz nie ulega zmianie w czasie działania systemu, to można wyznaczyć całą przestrzeń stanów bezpiecznych w trybie off-line. 4. W celu zwiększenia liczby stanów akceptowalnych można stosować test kaskadowy złożony ze znanych algorytmów uporządkowanych według pewnego klucza (np. rosnącej złożoności obliczeniowej). W przypadku, gdy określony algorytm odrzuci badany stan wykorzystywany jest kolejny test. 21