Systemy operacyjne Zaleszczenie Zaleszczenie Rozważmy system sładający się z n procesów (zadań) P 1,P 2,...,P n współdzielący s zasobów nieprzywłaszczalnych tzn. zasobów, tórych zwolnienie może nastąpić jedynie z inicjatywy zadania dysponującego zasobem. Każdy zasób słada się z m jednoste dla =1,2,...,s. Jednosti zasobów tego samego typu są równoważne. Każda jednosta w ażdej chwili może być przydzielona tylo do jednego zadania, czyli dostęp do nich jest wyłączny. W ażdej chwili zadanie P j jest scharateryzowane przez: wetor masymalnych żądań (ang. claims), C T ) = [ C1 ), C2( Pj ),, Cs )] oznaczający masymalne żądanie zasobowe zadania P j w dowolnej chwili czasu wetor atualnego przydziału (ang. current allocations), T A ) = [ A1 ), A2 ),, As )] wetor rang zdefiniowany jao różnica między wetorami C i A, H P ) = C( P ) A( P ) ( j j j (c) Załad Systemów Informatycznych Slajd 3
Zaleszczenie (2) Załadamy, że jeżeli żądania zadania przydziału zasobów są spełnione w sończonym czasie, to zadanie to zaończy się w sończonym czasie i zwolni wszystie przydzielone mu zasoby. Na podstawie liczby zasobów w systemie oraz wetorów atualnego przydziału można wyznaczyć wetor zasobów wolnych f, gdzie T f = f, f,, f ] [ 1 2 s gdzie n f = m A ) = 1,2,, s j= 1 (c) Załad Systemów Informatycznych Slajd 4 Typy żądań Wyróżniamy dwa typy żądań, tóre mogą być wygenerowane przez ażde zadanie P j żądanie przydziału dodatowych zasobów (ang. request for resource allocation), a a a a T ρ ) = [ ρ1 ), ρ 2 ),, ρ s )] gdzie a ρ ) jest liczbą jednoste zasobu R żądanych dodatowo przez P j żądanie zwolnienia zasobu (ang. request for resource release), r r r r T ρ ) = [ ρ1 ), ρ 2 ),, ρ s )] gdzie r ρ ( P j ) jest liczbą jednoste zasobu R zwalnianych przez P j (c) Załad Systemów Informatycznych Slajd 5
Łatwo wyazać: a ρ ) H ) j ρ r P ) A ( P ) j Zadanie przebywające w systemie ( j j Oczywiście żądanie przydziału dodatowego zasobu może być spełnione tylo wówczas gdy: a ρ ) f j = 1,2,, s Przez zadanie przebywające w systemie rozumiemy zadanie, tóremu przydzielono co najmniej jedną jednostę zasobu. Stan systemu jest zdefiniowany przez stan przydziału zasobu wszystim zadaniom. Mówimy, że stan jest realizowalny jeżeli jest spełniona następująca zależność: n j= 1 A ) m = 1,2,, s (c) Załad Systemów Informatycznych Slajd 6 Stan bezpieczny Stan systemu nazywamy stanem bezpiecznym (ang. safe) ze względu na zaleszczenie, jeżeli istnieje sewencja wyonywania zadań przebywających w systemie oznaczona {P 1,P 2,...,P n } i nazywana sewencją bezpieczną, spełniającą następującą zależność: j 1 j i H ( P ) f + A ( P ) i= 1 = 1,2, s j = 1,2,, n W przeciwnym razie, tzn. jeżeli sewencja taa nie istnieje, stan jest nazywany stanem niebezpiecznym. Innymi słowy, stan jest bezpieczny jeżeli istnieje taie uporządowanie wyonywania zadań, że wszystie zadania przebywające w systemie zostaną zaończone. Powiemy, że tranzycja stanu systemu wyniająca z aloacji zasobów jest bezpieczna, jeżeli stan ońcowy jest stanem bezpiecznym. (c) Załad Systemów Informatycznych Slajd 7
Zaleszczenie defninicja Przez zaleszczenie (ang. deadloc) rozumieć będziemy formalnie stan systemu, w tórym spełniany jest następujący warune: Ω Φ j Ω ρ > f + A ( P ) i Ω gdzie Ω jest zbiorem indesów (lub zbiorem zadań) a Mówimy, że system jest w stanie zaleszczenia (w systemie wystąpił stan zaleszczenia), jeżeli istnieje niepusty zbiór Ω zadań, tóre żądają przydziału dodatowych zasobów nieprzywłaszczalnych będących atualnie w dyspozycji innych zadań tego zbioru. Innymi słowy, system jest w stanie zaleszczenia, jeżeli istnieje niepusty zbiór Ω zadań, tórych żądania przydziału dodatowych zasobów nieprzywłaszczalnych nie mogą być spełnione nawet jeśli wszystie zadania nie należące do Ω zwolnią wszystie zajmowane zasoby. i Jeżeli Ω Φ, to zbiór ten nazywamy zbiorem zadań zaleszczonych. (c) Załad Systemów Informatycznych Slajd 8 Graf aloacji zasobów P 1 R 2 R 1 R 3 P 2 P 3 Legenda: P i R j proces P i zasób R j posiadający 3 jednosti w systemie P i R j proces P i posiadający jednostę zasobu R j P i R j proces P i żądający jednosti zasobu R j (c) Załad Systemów Informatycznych Slajd 9
Grafy oczeiwania Z grafu aloacji zasobów można uzysać graf uproszczony przez usunięcie węzłów zasobowych i złączenie odpowiednich rawędzi. To uproszczenie wynia z obserwacji, że zasób może być jednoznacznie identyfiowany przez bieżącego właściciela. Ten uproszczony graf jest nazywany grafem oczeiwania (ang. wait-for-graph). P 1 P 1 R 2 R 1 uproszczenie P 3 P 2 P 3 P 2 (c) Załad Systemów Informatycznych Slajd 10 Waruni onieczne wystąpienia zaleszczenia Warunami oniecznymi wystąpienia zaleszczenia są: 1. Wzajemne wyluczanie (ang. mutual exclusion condition), W ażdej chwili zasób może być przydzielony co najwyżej jednemu zadaniu. 2. Zachowywanie zasobu (ang. wait for condition), Proces oczeujący na przydzielenie dodatowych zasobów nie zwalnia zasobów będących atualnie w jego dyspozycji. 3. Nieprzywłaszczalność (ang. non preemption condition), Zasoby są nieprzywłaszczalne tzn. ich zwolnienie może być zainicjowane jedynie przez proces dysponujący w danej chwili zasobem. 4. Istnienie cylu oczeiwań (ang. circular wait condition), Występuje pewien cyl procesów z tórych ażdy ubiega się o przydział dodatowych zasobów będących w dyspozycji olejnego procesu w cylu. (c) Załad Systemów Informatycznych Slajd 11
Przeciwdziałanie zaleszczeniom Konstrucje systemów immanentnie wolnych od zaleszczenia (ang. construction of deadloc free systems) Podejście to polega w ogólności na wyposażeniu systemu w taą liczbę zasobów, aby wszystie możliwe żądania zasobowe były możliwe do zrealizowania. Przyładowo, uzysuje się to, gdy liczba zasobów ażdego rodzaju jest nie mniejsza od sumy wszystich masymalnych i możliwych jednocześnie żądań. Detecja zaleszczenia i odtwarzanie stanu wolnego od zaleszczenia (ang. detection and recovery). W podejściu detecji i odtwarzania, stan systemu jest periodycznie sprawdzany i jeśli wyryty zostanie stan zaleszczenia, system podejmuje specjalne acje w celu odtworzenia stanu wolnego do zaleszczenia. Unianie zaleszczenia (ang. avoidance). W podejściu tym załada się znajomość masymalnych żądań zasobowych. Każda potencjalna tranzycja stanu jest sprawdzana i jeśli jej wyonanie prowadziłoby do stanu niebezpiecznego, to żądanie zasobowe nie jest w danej chwili realizowane. Zapobieganie zaleszczeniu (ang. prevention) W ogólności podejście to polega na wyeliminowaniu możliwości zajścia jednego z warunów oniecznych zaleszczenia (c) Załad Systemów Informatycznych Slajd 12 Algorytm Habermana Detecja zaleszczenia 1. Zainicjuj D := {1, 2,...,n} i f; 2. Szuaj zadania o indesie j D taiego, że ρ α (P j ) f 3. Jeżeli zadanie taie nie istnieje, to zbiór zadań odpowiadający zbiorowi D jest zbiorem zadań zaleszczonych. Zaończ wyonywanie algorytmu. 4. W przeciwnym razie, podstaw: D := D {j}; f := f + A(P j ) 5. Jeżeli D =, to zaończ wyonywanie algorytmu. W przeciwnym razie przejdź do rou 2. (c) Załad Systemów Informatycznych Slajd 13
Algorytm Holt'a: 1. begin 2. initialize:i =1, =1,2,...,s; c i =s,i=1,2,...,n; c 0 =n; 3. LS: Y:=False; 4. for = 1 step 1 until s do 5. begin 6. while E 1,,I f I n do 7. begin 8. c E2,,I :=c E2,,I -1; 9. I :=I -1; 10. if c E2,,I =0 then 11. begin 12. c 0 :=c 0-1; 13. Y:=True; 14. for i = 1 step 1 until s do 15. f i :=f i +A i (P E2,,I ); 16. end; 17. end; 18. end; 19. if Y = true c 0 > 0 then go to LS; 20. if Y = true then answer "no" 21. else answer "yes"; Odtwarzanie stanu Spośród zadań zaleszczonych wybierz zadanie (zadania), tórego usunięcie spowoduje osiągnięcie stanu wolnego od zaleszczenia najmniejszym osztem. 22. end. (c) Załad Systemów Informatycznych Slajd 14 Wady i zalety podejścia detecji do odtwarzania stanu Narzut wyniający z opóźnionego wyrycia stanu zaleszczenia Narzut czasowy algorytmu detecji i odtwarzania stanu Utrata efetów dotychczasowego przetwarzania odrzuconego zadania. Bra ograniczeń na współbieżność wyonywania zadań Wysoi stopień wyorzystania zasobów Podejście uniania (c) Załad Systemów Informatycznych Slajd 15
Algorytm podejścia uniania 1. Za ażdym razem, gdy wystąpi żądanie przydziału dodatowego zasobu, sprawdź bezpieczeństwo tranzycji stanu odpowiadającej realizacji tego żądania. Jeśli tranzycja ta jest bezpieczna, to przydziel żądany zasób i ontynuuj wyonywanie zadania. W przeciwnym razie zawieś wyonywanie zadania. 2. Za ażdym razem, gdy wystąpi żądanie zwolnienia zasobu, zrealizuj to żądanie i przejrzyj zbiór zadań zawieszonych w celu znalezienia zadania, tórego tranzycja z nowego stanu odpowiadałaby tranzycji bezpiecznej. Jeśli taie zadanie istnieje, zrealizuj jego żądanie przydziału zasobów (c) Załad Systemów Informatycznych Slajd 16 Wady i zalety podejścia uniania Duży narzut czasowy wyniający z onieczności wyonywania algorytmu uniania przy ażdym żądaniu przydziału dodatowego zasobu i przy ażdym żądaniu zwolnienia zasobu. Mało realistyczne założenie o znajomości masymalnych żądań zasobów. Założenie, że liczba zasobów w systemie nie może maleć Potencjalnie wyższy stopień wyorzystania zasobów niż w podejściu zapobiegania. (c) Załad Systemów Informatycznych Slajd 17
Podejście zapobiegania Rozwiązania wyluczające możliwość wystąpienia cylu żądań. Algorytm wstępnego przydziału 1. Przydziel w chwili początowej wszystie wymagane do realizacji zadania zasoby lub nie przydzielaj żadnego z nich. Algorytm przydziału zasobów uporządowanych 1. Uporząduj jednoznacznie zbiór zasobów. 2. Narzuć zadaniom ograniczenie na żądania przydziału zasobów, polegające na możliwości żądania zasobów tylo zgodnie z uporządowaniem zasobów Przyładowo, proces może żądać olejno zasobów 1, 2, 3, 6,..., natomiast nie może żądać zasobu 3 a później 2. Jeśli więc z ontestu programu wynia olejność żądań inna niż narzucony porząde, to proces musi zażądać wstępnej aloacji zasobów, generując na przyład żądanie przydział zasobów 2 i 3. (c) Załad Systemów Informatycznych Slajd 18 Alogrytmy Wait-Die i Wound-Wait Algorytm Wait-Die Rozwiązanie negujące zachowywanie zasobów (ang. wait for condition) 1. Uporząduj jednoznacznie zbiór zadań według etyiet czasowych. 2. Jeżeli zadanie P 1, będące w onflicie z zadaniem P 2, jest starsze (ma mniejszą etyietę czasową), to P 1 czea (wait) na zwolnienie zasobu przez P 2. W przeciwnym razie zadania P 1 jest w całości odrzucane (abort) i zwalnia wszystie posiadane zasoby. Algorytm Wound-Wait Rozwiązanie dopuszczające przywłaszczalność 1. Uporząduj jednoznacznie zbiór zadań według etyiet czasowych. 2. Jeżeli zadanie P 1, będące w onflicie z zadaniem P 2, jest starsze (ma mniejszą etyietę czasową), to zadanie P 2 odrzucane (abort) i zwalnia wszystie posiadane zasoby. W przeciwnym razie P 1 czea (wait) na zwolnienie zasobu przez P 2. (c) Załad Systemów Informatycznych Slajd 19
Wady i zalety podejścia zapobiegania Ograniczony stopień wyorzystania zasobów. Prostota i mały narzut czasowy. (c) Załad Systemów Informatycznych Slajd 20