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

Podobne dokumenty
Problem zakleszczenia

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

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

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

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

Wzmianka o zakleszczeniu (ang. deadlock, inne tłumaczenia: blokada, impas, zastój) pojawiła się przy okazji synchronizacji procesów.

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

Procesy, wątki i zasoby

Synchronizacja procesów i wątków

POTRZEBY A B C D E P P P P P

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

Elekcja, wzajemne wykluczanie i zakleszczenie

Wzajemne wykluczanie i zakleszczenie

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

Procesy, zasoby i wątki

Procesy, zasoby i wątki

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

Procesy, zasoby i wątki

Materiały pomocnicze 1

Detekcja zakleszczenia (1)

WOJSKOWA AKADEMIA TECHNICZNA WYDZIAŁ CYBERNETYKI

Programowanie współbieżne Wykład 5. Rafał Skinderowicz

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

Zarządzanie pamięcią operacyjną

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Przykładowe zadanie z unikania blokad.

Blokady. Model systemu. Charakterystyka blokady

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Działanie systemu operacyjnego

Koordynacja procesów w środowisku rozproszonym

Stan globalny. Krzysztof Banaś Systemy rozproszone 1

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus

Plan wykładu. Przykład. Wprowadzenie BAZY DANYCH. Transakcje Hurtownie danych

Poszukiwanie optymalnego wyrównania harmonogramu zatrudnienia metodą analityczną

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

Synchronizacja procesów

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

Zarządzanie pamięcią w systemie operacyjnym

Działanie systemu operacyjnego

Działanie systemu operacyjnego

Algorytmy stochastyczne laboratorium 03

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

1.1 Definicja procesu

4. Procesy pojęcia podstawowe

Sortowanie topologiczne skierowanych grafów acyklicznych

Planowanie przydziału procesora

1. Liczby i w zapisie zmiennoprzecinkowym przedstawia się następująco

Wykład 6. Metoda eliminacji Gaussa: Eliminacja z wyborem częściowym Eliminacja z wyborem pełnym

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

Wstęp do sieci neuronowych, wykład 9 Sieci rekurencyjne. Autoasocjator Hopfielda

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

(Dantzig G. B. (1963))

Podstawy Automatyki. Wykład 15 - Projektowanie układów asynchronicznych o programach liniowych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

Bazy danych w sterowaniu

miejsca przejścia, łuki i żetony

Podstawy informatyki. Izabela Szczęch. Politechnika Poznańska

Planowanie przydziału procesora

Zarządzanie pamięcią operacyjną

Matematyczne Podstawy Informatyki

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

Sieci Petriego. Sieć Petriego

Algorytmy zarządzania współbieżnym wykonywaniem transakcji część I

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

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

. Podstawy Programowania 2. Grafy i ich reprezentacje. Arkadiusz Chrobot. 9 czerwca 2016

Rozwiązywanie algebraicznych układów równań liniowych metodami iteracyjnymi. Plan wykładu:

Digraf. 13 maja 2017

Podstawy Informatyki. Wykład 6. Struktury danych

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

Matematyka ubezpieczeń majątkowych r.

Wstęp do Sztucznej Inteligencji

Systemy operacyjne III

ROZDZIAŁ 5 SWZP (System Wariantowania Zleceń Produkcyjnych)

Rachunek podziałów i elementy teorii grafów będą stosowane w procedurach redukcji argumentów i dekompozycji funkcji boolowskich.

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

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

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

Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz?

Drzewa. Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2013/2014

Siedem cudów informatyki czyli o algorytmach zdumiewajacych

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

Funkcja STAWKI PODATKU - adres lub C B

Algorytm Lamporta. Czy można to ulepszyć?

4. Procesy pojęcia podstawowe

Informatyka, systemy, sieci komputerowe

Menu główne FUNKCJE SERWISOWE

ĆWICZENIE NR 1 WPROWADZENIE DO INFORMATYKI

Wstęp do sieci neuronowych, wykład 12 Wykorzystanie sieci rekurencyjnych w optymalizacji grafowej

6. ANALIZA POST-OPTYMALIZACYJNA analiza wrażliwości rozwiązania optymalnego

Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska

1. Działania na procesach

Transkrypt:

Zakleszczenie Problem i przeciwdziałanie Systemy operacyne Wykład 8 1

Klasyfikaca zasobów systemu na potrzeby analizy problemu zakleszczenia Warunki konieczne wystąpienia zakleszczenia Graf przydziału zasobów Zdarzenia związane z dostępem do zasobów Formalna definica zakleszczenia Wykrywanie zakleszczenia Usuwanie zakleszczenia Unikanie zakleszczeń Zapobieganie zakleszczeniom Systemy operacyne Wykład 8 2

Model systemu System składa się z zasobów m różnych typów (rodzaów) ze zbioru Z = {Z 1, Z 2,..., Z m }. Zasób każdego typu może być reprezentowany przez wiele ednorodnych ednostek (egzemplarzy). O zasoby rywalizuą procesy ze zbioru P = {P 1, P 2,..., P n }. Klasyfikaca zasobów z punktu widzenia problemu zakleszczenia: zasoby odzyskiwalne (zwrotne, trwałe, reusable resources), zasoby nieodzyskiwalne (zużywalne, niezwrotne, consumable resources). Systemy operacyne Wykład 8 3

Zasoby odzyskiwalne Liczba ednostek zasobów odzyskiwalnych est ustalona. Zasoby odzyskiwalne po ich zwolnieniu przez akiś proces mogą zostać ponownie użyte przez inny proces. Proces ubiega się o dowolny egzemplarz zasobu odzyskiwalnego według następuącego schematu: 1. zamówienie (ewentualnie oczekiwanie na realizacę), 2. użycie korzystanie zasobu (ego przetrzymywanie), 3. zwolnienie oddanie zasobu do systemu. Przykłady zasobów odzyskiwalnych: procesor, pamięć, kanał weścia-wyścia. Systemy operacyne Wykład 8 4

Zasoby nieodzyskiwalne Jednostki zasobu nieodzyskiwalnego są tworzone przez akiś proces, a następnie zużywane (tym samym usuwane) przez inny proces. Nie ma ograniczenia na liczbę tworzonych ednostek zasobu. Liczba aktualnie dostępnych ednostek est skończona i może się zmieniać w czasie w wyniku zmian stanu systemu. Przykłady zasobów nieodzyskiwalnych: kod znaku z klawiatury, sygnał lub komunikat przekazany do procesu. Systemy operacyne Wykład 8 5

Korzystanie z zasobów nieodzyskiwalnych Proces ubiega się o dowolny egzemplarz zasobu nieodzyskiwalnego według następuącego schematu: 1. zamówienie (ewentualnie oczekiwanie na realizacę), 2. zużycie wykorzystanie zasobu (ego usunięcie). Proces może wyprodukować i przekazać zasób do systemu. Systemy operacyne Wykład 8 6

Warunki konieczne wystąpienia zakleszczenia Wzaemne wykluczanie przynamnie eden zasób musi być niepodzielny, czyli używanie egzemplarza tego zasobu przez eden proces uniemożliwia używanie go przez inny proces do czasu zwolnienia. Przetrzymywanie i oczekiwanie proces, któremu przydzielono akieś ednostki, oczekue na dodatkowe ednostki blokowane przez inny proces. Brak wywłaszczeń ednostki zasobu zwalniane są tylko z inicatywy odpowiednich procesów. Cykl w oczekiwaniu istniee podzbiór {P 1,..., P k } P taki, że P 1 czeka na ednostkę zasobu przetrzymywaną przez P 2, P 2 na ednostkę przetrzymywany przez P 3,...,P k czeka na ednostkę przetrzymywany przez P 1. Systemy operacyne Wykład 8 7

Warunki konieczne w odniesieniu do zasobów nieodzyskiwalnych Wzaemne wykluczanie ednostka zasobu może być zużyta przez eden proces. Przetrzymywanie i oczekiwanie w stanie oczekiwania proces nie produkue ednostek zasobów. Brak wywłaszczeń nie można zmusić procesu do wyprodukowania ednostki zasobu lub zrobić to za niego. Cykl w oczekiwaniu istniee podzbiór {P 1,..., P k } P taki, że P 1 czeka na wyprodukowanie ednostki zasobu przez P 2, P 2 czeka wyprodukowanie ednostki przez P 3,..., P k czeka na wyprodukowanie ednostki przez P 1. Systemy operacyne Wykład 8 8

Reprezentaca stanu systemu graf przydziału zasobów odzyskiwalnych Zbiór wierzchołków obemue procesy (reprezentowane przez kółka) i zasoby (reprezentowane przez prostokąty) czyli W = P Z. Egzemplarze danego zasobu reprezentowane przez kropki wewnątrz prostokąta. Zbiór skierowanych krawędzi (łuków) obemue: krawędzie zamówienia (request edge) P i Z, krawędzie przydziału (assignment edge) Z P i. Systemy operacyne Wykład 8 9

Przykład grafu zasobów odzyskiwalnych Z 2 P 1 Z 1 P 2 Systemy operacyne Wykład 8 10

Zdarzenia w systemie z zasobami odzyskiwalnymi Zamówienie (request) ednostki zasobu przez procesu P i r i. Nabycie (acquisition) ednostki zasobu przez proces P i a i. Zwolnienie (release) ednostki zasobu przez proces P i d. Systemy operacyne Wykład 8 11

Zmiana stanu systemu a graf zasobów odzyskiwalnych W wyniku zamówienia ednostki zasobu Z przez proces P i w grafie poawia się krawędź zamówienia P i Z. Realizaca zamówienia może nastąpić wówczas, gdy są wolne ednostki żądanego zasobu, a e wynikiem est zmiana kierunku krawędzi żądania, tym samym zamiana na krawędź przydziału Z P i. W wyniku zwolnienia ednostka zasobu est odzyskiwana przez system a krawędź przydziału znika. Systemy operacyne Wykład 8 12

Przykład prześć pomiędzy stanami w przypadku zasobów odzyskiwalnych Z 2 P 1 Z 1 Z 2 P 1 Z 1 P 2 d 2 (Z 1 ) d 2 (Z 2 ) P 2 Z 2 P 1 Z 1 a 1 (Z 1 ) Z 2 P 1 Z 1 P 2 P 2 Systemy operacyne Wykład 8 13

Przykład prześć procesu w systemie z dwoma ednostkami zasobu r i a i r i a i s 0 s 1 i s 3 i s 4 i s 2 i i d i d i Systemy operacyne Wykład 8 14

Przykład prześć dwóch procesów w systemie z dwoma ednostkami zasobu r i a i r i a i σ 00 σ 10 σ 20 σ 30 σ 40 d i r r r r r d i r i a i r i a i σ 01 σ 11 σ 21 σ 31 σ 41 d d d d a a d i a a d i r i a i σ 02 σ 12 σ 22 σ 32 r r d i d r r Systemy operacyne Wykład 8 15

Przykład prześć dwóch procesów w systemie z dwoma ednostkami zasobu cd. r d r d r d r d r i a i r i σ 02 σ 12 σ 22 σ 32 d i r r r r r i a i r i σ 03 σ 13 σ 23 σ 33 d d a a d i r i σ 04 σ 14 Systemy operacyne Wykład 8 16

Definica zakleszczenia procesu Proces P i est wstrzymany (zablokowany) w stanie systemu σ, eśli wszystkie dopuszczalne zdarzenia w systemie maą miesce w innych procesach niż P i. Proces P i est zakleszczony w stanie σ, eśli est wstrzymany w stanie σ i w każdym stanie osiągalnym ze stanu σ. Systemy operacyne Wykład 8 17

Przydział natychmiastowy Z 2 P 1 Z 1 P 2 P 3 Systemy operacyne Wykład 8 18

Własności grafów Dany est graf skierowany G = (N, E), gdzie N zbiór wierzchołków, E N N zbiór łuków (skierowanych krawędzi). Niech dla v N zdefiniowany będzie zbiór O(v) = {u N:(v,u) E} {u N: w N (v,w) E u O(w)} W grafie G występue cykl, gdy: v N v O(v) W grafie występue supeł (węzeł, zatoka, knot), gdy: N N v N ( u N u O(v) u N\N u O(v) ) Systemy operacyne Wykład 8 19

Przykład cyklu w grafie v 1 v 2 v 3 v 5 v 4 Systemy operacyne Wykład 8 20

Przykłady supła w grafie v 1 v 2 v 3 v 1 v 2 v 5 v 4 v 3 v 5 v 4 Systemy operacyne Wykład 8 21

Cykl w grafie przydziału zakleszczenie Z 2 P 1 Z 1 P 2 P 3 Systemy operacyne Wykład 8 22

Cykl w grafie przydziału brak zakleszczenia Z 2 P 1 Z 1 P 2 P 3 Systemy operacyne Wykład 8 23

Supeł w grafie przydziału zakleszczenie Z 2 P 1 Z 1 P 2 P 3 Systemy operacyne Wykład 8 24

Brak supła w grafie przydziału zakleszczenie Z 2 P 1 Z 1 P 2 P 3 Systemy operacyne Wykład 8 25

Brak supła w grafie przydziału zakleszczenie P 1 Z 2 Z 1 Z 3 P 3 P 2 Systemy operacyne Wykład 8 26

Własności grafu zasobów odzyskiwalnych a stan zakleszczenia Zasoby poedyncze: cykl zakleszczenie Przydział natychmiastowy (stan zupełny): supeł zakleszczenie Zasoby reprezentowane przez wiele egzemplarzy w systemie z przydziałem natychmiastowym (w stanie zupełnym), dopuszczaącym poedyncze żądania: supeł zakleszczenie Systemy operacyne Wykład 8 27

Reprezentaca stanu systemu graf przydziału zasobów zużywalnych Zbiór wierzchołków obemue procesy (reprezentowane przez kółka) i zasoby (reprezentowane przez prostokąty) czyli W = P Z. Egzemplarze danego zasobu reprezentowane przez kropki wewnątrz prostokąta. Zbiór skierowanych krawędzi obemue: krawędzie zamówienia (request edge) P i Z, krawędzie utworzenia (czyli produkci, producer edge) Z P i. Każdy zasób musi mieć krawędź utworzenia. Systemy operacyne Wykład 8 28

Zdarzenia w systemie z zasobami nieodzyskiwalnymi Zamówienie (request) ednostki zasobu przez procesu P i r i. Nabycie (acquisition) ednostki zasobu przez proces P i a i. Utworzenie (production) ednostki zasobu przez proces P i d i. Systemy operacyne Wykład 8 29

Zmiana stanu systemu w przypadku zasobów nieodzyskiwalnych W wyniku zamówienia zasobu Z przez proces P i w grafie poawia się krawędź zamówienia P i Z. Po zrealizowaniu zamówienia przez system, krawędź ta znika wraz z kropką reprezentuącą ednostkę zasobu. Krawędź utworzenia istniee zawsze nie ma ograniczenia na liczbę tworzonych ednostek zasobu. Jednostki zasobu Z tworzone są przez P i wówczas, gdy istniee krawędź utworzenia Z P i i proces P i nie oczekue na realizacę żądań (nie ma krawędzi zamówienia P i Z k ). Systemy operacyne Wykład 8 30

Przykład prześć pomiędzy stanami w przypadku zasobów zużywalnych P 1 P 1 P 1 P 1 P 1 Z 1 Z 1 Z 1 Z 1 Z 1 d 2 r 1 d 2 a 1 P 2 P 2 P 2 P 2 P 2 Systemy operacyne Wykład 8 31

Przykład analizy grafu przydziału zasobów nieodzyskiwalnych Z 3 P 2 Z 1 P 1 P 4 Z 2 P 3 Z 4 Systemy operacyne Wykład 8 32

Własności grafu zasobów zużywalnych a stan zakleszczenia Ogólnie: zakleszczenie cykl Przydział natychmiastowy (stan zupełny): supeł zakleszczenie Przydział natychmiastowy (stan zupełny), poedyncze żądania: supeł zakleszczenie Systemy operacyne Wykład 8 33

Podeścia do zakleszczenia w przypadku zasobów odzyskiwalnych Zignorowanie problemu zakleszczenie traktowane est ako awaria systemu. Zapobieganie zakleszczeniom przeciwdziałanie powstaniu któregoś z warunków koniecznych. Unikanie zakleszczeń utrzymywanie rezerwy wolnych zasobów, umożliwiaących bezpieczne zakończenie procesów. Wykrywanie i likwidowanie zakleszczeń dopuszczenie do zakleszczenia, ale wykrywanie i usuwanie takich stanów przez odzyskanie zasobów, niezbędnych do zakończenia zadań przez (niektóre) procesy. Systemy operacyne Wykład 8 34

Podeścia do zakleszczenia w przypadku zasobów zużywalnych Zignorowanie problemu zakleszczenie traktowane est ako awaria systemu. Zapobieganie zakleszczeniom przeciwdziałanie powstaniu któregoś z warunków koniecznych. Wykrywanie i likwidowanie zakleszczeń dopuszczenie do zakleszczenia, ale wykrywanie takich stanów i usuwanie zakleszczonych procesów. Systemy operacyne Wykład 8 35

Reprezentaca stanu systemu Graf: graf przydziału zasobów, graf oczekiwania (wait-for graph). Macierze: opis zasobów systemu opis stanu przydziału ednostek, opis żądań procesów, opis deklaraci procesów odnośnie maksymalnych żądań zasobowych. Systemy operacyne Wykład 8 36

Transformaca grafu przydziału do grafu oczekiwania P 1 P 3 P 1 Z 1 Z 2 P 2 P 2 P 3 Systemy operacyne Wykład 8 37

Grafowa reprezentaca stanu wykrywanie zakleszczenia Wykrycie zakleszczenia polega na stwierdzeniu w zależności od charakterystyki zasobów oraz zamówień procesów cyklu lub supła w grafie oczekiwania. Zależności pomiędzy własnościami grafu oczekiwania a stanem zakleszczenia są takie, ak zostało to określone dla grafu przydziału zasobów. Podeście bazuące na grafowe reprezentaci stanu systemu est ograniczone do szczególnych przypadków, wyszczególnionych w odniesieniu do grafu przydziału zasobów omówionego wcześnie. Systemy operacyne Wykład 8 38

Macierzowa reprezentaca stanu systemu C m-elementowy wektor liczebności zasobów systemu, C[] całkowita liczba ednostek zasobu Z, zarządzanych przez system. R macierz n m zamówień procesów, R[i,] liczba ednostek zasobu Z zamówiona i oczekiwana przez proces P i. A macierz n m przydzielonych ednostek zasobów, A[i,] liczba ednostek zasobu Z przydzielona procesowi P i. F m-elementowy wektor wolnych ednostek, F[] liczba ednostek zasobu Z pozostaących w dyspozyci systemu (nie przydzielona procesom). Systemy operacyne Wykład 8 39

Systemy operacyne Wykład 8 40 Integralność macierzowe reprezentaci stanu systemu C R i A i A i C F A i C m n i n i m n i m,,,, 1 1 1 1 1 1

Macierzowa reprezentaca stanu zakleszczenie P P P P i P 1 m R i, F A k, Pk P zasoby zwolnione przez nie zakleszczo ne procesy Systemy operacyne Wykład 8 41

Macierzowa reprezentaca stanu wykrywanie zakleszczenia W m-elementowy wektor liczby wolnych ednostek zasobów, uwzględniaący ednostki zwrócone do systemu przez procesy, które mogą się zakończyć, W[] liczba ednostek zasobu Z do rozdysponowania. K n-elementowy wektor wartości logicznych, informuący o odzyskaniu zasobów procesu, K[i] wartość logiczna informuąca, że proces P i zwrócił do systemu przydzielone mu ednostki zasobów. Systemy operacyne Wykład 8 42

Macierzowa reprezentaca stanu wykrywanie zakleszczenia 1 m W : F 1 i n K i : false 1 m A i, 0 TAK 1 i n K i false NIE 1 m R i, W 1 K i : m W true : W A i, TAK 1 i n K i false NIE zakleszczenie brak zakleszczenia Systemy operacyne Wykład 8 43

Przykład działania algorytmu wykrywania zakleszczenia System dysponue 3 typami zasobów: Z1, Z2, Z3 o liczebności odpowiednio 6, 5, 4. W systemie współpracuą 4 procesy: P1, P2, P3 i P4. Stan systemu: A[1] A[2] A[3] R[1] R[2] R[3] P 1 P 2 P 3 P 4 1 0 2 3 1 0 1 1 1 0 2 1 3 1 0 0 1 3 1 0 0 0 1 1 Systemy operacyne Wykład 8 44

Przykład działania algorytmu wykrywania zakleszczenia Wolne zasoby w systemie F = [1, 1, 0]. Zmiana wektora W oraz K w kolenych krokach: Początkowo po zakl. P 3 po zakl. P 4 W[1] W[2] W[3] K[1] K[2] K[3] K[4] 1 1 0 2 2 1 2 4 2 F F F F F F T F F F T T Systemy operacyne Wykład 8 45

Redukca grafu przydziału 1. Jeśli nie istniee taki proces P i, którego żądania zasobowe mogą zostać zaspokoone przez dostępne ednostki zasobów, przeście do punktu 5. 2. Usunięcie wierzchołka procesu P i, wraz z wszystkimi ego krawędziami, eśli żądania można zrealizować. 3. Zwolnienie wszystkich ednostek zasobów odzyskiwalnych, przetrzymywanych przez proces P i oraz utworzenie odpowiednie liczby ednostek zasobów nieodzyskiwalnych, których producentem est P i. 4. Przeście do punktu 1. 5. Jeśli pozostały nie usunięte procesu, to są one zakleszczone. Systemy operacyne Wykład 8 46

Przykład redukci grafu przydziału P 1 P 1 Z 2 Z 1 Z 2 Z 1 P 2 Z 2 Z 1 Systemy operacyne Wykład 8 47

Problem redukci grafu zasobów nieodzyskiwalnych Z 3 P 2 Z 1 P 1 P 4 Z 2 P 3 Z 4 Systemy operacyne Wykład 8 48

Likwidowanie zakleszczenia Zakończenie procesu: zakończenie wszystkich zakleszczonych procesów, usuwanie procesów poedynczo, aż do wyeliminowania cyklu zakleszczenia. Wywłaszczenie zasobów (zabieranie zasobów procesom): wybór ofiary które zasoby i komu odebrać, wycofanie w akim stanie pozostawić proces, któremu odebrano zasoby, głodzenie w aki sposób zagwarantować, że nie dodzie do głodzenia procesu. Systemy operacyne Wykład 8 49

Unikanie zakleszczeń Wymagana est dodatkowa informaca o tym, akie zasoby będą zamawiane przez proces. W naprostszym przypadku est to maksymalna liczba ednostek poszczególnych zasobów, niezbędna do zakończenia zadania przez proces. Przy każdym zamówieniu zarządca decydue, czy można e zrealizować, czy należy wstrzymać realizacę, biorąc pod uwagę aktualny stan zasobów. W przypadku zadeklarowania maksymalne liczby ednostek zasobów system musi zapewnić, że nie dodzie do cyklu w oczekiwaniu na zasoby. Systemy operacyne Wykład 8 50

Stan bezpieczny Stan systemu est bezpieczny, eśli istniee porządek przydziału zasobów żądaącym tego procesom (nawet w stopniu maksymalnym), gwarantuący uniknięcie zakleszczenia. Formalnie: system est w stanie bezpiecznym, eśli istniee ciąg bezpieczny, czyli taki ciąg procesów P 1, P 2,..., P n, że w danym stanie przydziału zasobów zapotrzebowanie procesu P i może być zaspokoone przez bieżąco dostępne zasoby oraz zasoby użytkowane przez wszystkie proces poprzedzaące go w ciągu, czyli procesy P, gdzie < i. Systemy operacyne Wykład 8 51

Przykład stanu i ciągu bezpiecznego Procesy P1, P2, P3 ubiegaą się o ednostki zasobu Z1, których łączna liczba est 12. Maksymalne zapotrzebowanie oraz bieżący przydział est następuący: proces P 1 P 2 P 3 maks. zapotrzeb. bieżący przydział Czy istniee ciąg bezpieczny? Czy można zrealizować żądanie przydziału 1 ednostki zasobu Z1 procesowi P3? 10 4 9 5 2 2 Systemy operacyne Wykład 8 52

Grafowa reprezentaca stanu unikanie zakleszczenia W celu uwzględnienia potencalnych żądań, w grafie przydziału zasobów wprowadza się dodatkową krawędź deklaraci, wskazuącą, że proces może zamówić egzemplarz zasobu do realizaci zadania. Gdy proces zamawia zasób, krawędź deklaraci zamieniana est na krawędź zamówienia, a gdy go zwalnia, ale się nie kończy, krawędź przydziału zamieniana est na krawędź deklaraci. Zamówienie może być zrealizowane, gdy zamiana krawędzi zamówienia na krawędź przydziału nie spowodue cyklu lub supła (zależnie od charakterystyki systemu) w grafie oczekiwania, uwzględniaącym krawędzie deklaraci. Systemy operacyne Wykład 8 53

Graf przydziału z krawędziami deklaraci P 1 Z 2 Z 1 P 2 Systemy operacyne Wykład 8 54

Grafowa reprezentaca stanu zagrożenie zagrożenie brak zagrożenia P 1 P 1 Z 2 Z 1 Z 2 P 2 Z 1 P 2 Systemy operacyne Wykład 8 55

Macierzowa reprezentaca stanu unikanie zakleszczenia Przed rozpoczęciem realizaci zadania proces musi zadeklarować maksymalną liczbę ednostek poszczególnych typów zasobów, których może potrzebować. Na podstawie deklaraci i bieżącego stanu systemu zarządca musie rozstrzygnąć, czy przydział zasobów pozostawi system w stanie bezpiecznym. Jeśli tak, to zasoby mogą zostać przydzielone, a eśli nie, to proces musi poczekać. Systemy operacyne Wykład 8 56

Macierzowa reprezentaca stanu unikanie zakleszczenia cd. D macierz o wymiarach n m określaąca maksymalne zapotrzebowanie poszczególnych procesów na poszczególne zasoby. B macierz o wymiarach n m określaąca zapotrzebowanie poszczególnych procesów na poszczególne zasoby, które est eszcze do zrealizowania (nie wykorzystana eszcze część deklaraci). Systemy operacyne Wykład 8 57

Macierzowa reprezentaca stanu unikanie zakleszczenia R[i] zamówienie od P[i] TAK 1 R i, B i, m NIE błąd NIE 1 R i, m F TAK 1 1 m m F A i, : F : A i, R i, R i, 1 m B i, : B i, R i, odłóż realizacę zamówienie i ew. wycofa zmiany NIE stan bezpieczny? TAK akceptu zamówienie Systemy operacyne Wykład 8 58

Macierzowa reprezentaca stanu unikanie zakleszczenia 1 m W : F 1 i n K i : false TAK 1 i n K i false NIE 1 m B i, W 1 K i : m W true : W A i, TAK 1 i n K i false NIE stan zagrożenia stan bezpieczny Systemy operacyne Wykład 8 59

Przykład działania algorytmu System dysponue zasobami Z 1, Z 2, po 8 ednostek. W systemie współpracue 5 procesów: P 1, P 2, P 3, P 4, P 5. Stan systemu: P 1 P 2 P 3 P 4 P 5 A[1] A[2] D[1] D[2] B[1] B[2] 2 2 2 0 0 1 1 0 0 2 6 4 7 2 2 3 3 4 2 6 4 2 5 2 2 2 2 4 2 4 Systemy operacyne Wykład 8 60

Przykład działania algorytmu Wolne zasoby w systemie F = [3, 3]. Zmiana wektora W oraz K w kolenych krokach: początkowo po zak. P 3 po zak. P 4 po zak. P 5 po zak. P 1 po zak. P 2 W[1] W[2] 3 3 3 4 4 4 4 6 6 8 8 8 K[1] K[2] K[3] K[4] K[5] F F F F F F F T F F F F T T F F F T T T T F T T T T T T T T Systemy operacyne Wykład 8 61

Przykład działania algorytmu Stan systemu po zrealizowaniu żądania [1,0] procesu P 2 : P 1 P 2 P 3 P 4 P 5 A[1] A[2] D[1] D[2] B[1] B[2] 2 2 3 0 0 1 1 0 0 2 6 4 7 2 2 3 3 4 2 6 4 2 4 2 2 2 2 4 2 4 Systemy operacyne Wykład 8 62

Przykład działania algorytmu Wolne zasoby w systemie F = [2, 3]. Zmiana wektora W oraz K w kolenych krokach: początkowo po zak. P 3 po zak. P 4 po zak. P 5 W[1] W[2] 2 3 2 4 3 4 3 6 K[1] K[2] K[3] K[4] K[5] F F F F F F F T F F F F T T F F F T T T Systemy operacyne Wykład 8 63

Zapobieganie zakleszczeniom wzaemne wykluczanie Konieczność zagwarantowania wzaemnego wykluczania wynika z charakterystyki zasobu wzaemne wykluczanie musi być zachowane w przypadku dostępu do zasobów niepodzielnych. Zasoby współdzielone nie wymagaą dostępu w trybie wyłącznym, więc używanie zasobu przez eden proces nie blokue dostępu do niego innym procesom. Systemy operacyne Wykład 8 64

Zapobieganie zakleszczeniom przetrzymywanie i oczekiwanie Przeciwdziałanie warunkowi przetrzymywania i oczekiwania polega na uniemożliwieniu procesowi zamawiania zasobów w czasie, gdy proces sam przetrzymue akieś zasoby i blokue do nich dostęp. Metoda 1: proces musi zamówić i uzyskać wszystkie zasoby, zanim rozpocznie realizacę zadania, do którego zasoby te są potrzebne. Metoda 2: przed zamówieniem dodatkowych zasobów proces musi zwolnić zasoby przydzielone dotychczas (ewentualnie zamówić e ponownie łącznie z nowymi zasobami). Systemy operacyne Wykład 8 65

Zapobieganie zakleszczeniom brak wywłaszczeń Dopuszczenie wywłaszczeń oznacza możliwość odebrania procesowi zasobu. Metoda 1: zwolnienie zasobów procesu w momencie zamówienia dodatkowych zasobów, przetrzymywanych przez inne procesy. Metoda 2: odbieranie żądanych zasobów przetrzymuącym e procesom, gdy procesy te są w stanie oczekiwania na inne zasoby. Systemy operacyne Wykład 8 66

Zapobieganie zakleszczeniom cykl w oczekiwaniu W celu przeciwdziałania cyklowi w oczekiwaniu procesów na zasoby, należy zapewnić, że wszystkie zasoby będą zamawiane w te same dla wszystkich procesów koleności. Metoda: nadanie unikalnych numerów wszystkim typom zasobów, czyli odwzorowanie zbiorów f : Z ℵ, i zamawianie zasobów zgodnie z zasadą: f(z ) > f(z i ) ednostka (lub ednostki) zasobu Z są zamawiane po zrealizowaniu zamówienia na ednostki zasoby Z i. Inacze: nie można zamawiać ednostek zasobu Z i eśli są przydzielone ednostki zasobu Z, gdy f(z ) f(z i ). Systemy operacyne Wykład 8 67

Łączenie metod postępowania z zakleszczeniami W zależności od rodzau zasobu systemu komputerowego stosowane są różne metody postępowania. Zasoby dzieli się na liniowo uporządkowane grupy. Żądania procesów realizowane są w koleności wynikaące z porządku grup, w których znaduą się żądane zasoby. W obrębie zasobów w dane grupie stosowana est właściwa dla te grupy strategia realizaci żądań. Systemy operacyne Wykład 8 68

Przykład grup zasobów 1. Pamięć pomocnicza obszary pamięci w strefie wymiany na dysku. 2. Zasoby zadania pliki, urządzenia itp. 3. Pamięć główna obszary pamięci w obrębie fizyczne przestrzeni adresowe. 4. Zasoby wewnętrzne zasoby używane przez system do zarządzania procesami (np. bloki kontrolne, kanały weścia-wyścia). Systemy operacyne Wykład 8 69

Przykład metod w obrębie grup zasobów 1. Pamięć pomocnicza wstępny przydział (wymagania odnośnie maksymalne zaętości przestrzeni adresowe są znane w momencie ładowania procesu). 2. Zasoby zadania unikanie zakleszczeń (wymagane est zidentyfikowanie żądań na podstawie opisu procesu) lub uporządkowanie liniowe. 3. Pamięć główna wywłaszczanie (przenoszenie zawartości pamięci w obszar wymiany). 4. Zasoby wewnętrzne liniowe uporządkowanie zasobów. Systemy operacyne Wykład 8 70