Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Systemy operacyjne Wykład nr 8: Zakleszczenia Piotr Bilski.

Podobne prezentacje


Prezentacja na temat: "Systemy operacyjne Wykład nr 8: Zakleszczenia Piotr Bilski."— Zapis prezentacji:

1 Systemy operacyjne Wykład nr 8: Zakleszczenia Piotr Bilski

2 Pojęcia podstawowe Zakleszczenie to nieskończone oczekiwanie procesów na zasoby, których nie mogą otrzymać Przewidywanie zakleszczeń – graf przydziału zasobów Unikanie i zapobieganie zakleszczeniom Wykrywanie i likwidowanie zakleszczeń

3 Założenia System posiada skończoną ilość zasobów Poszczególne zasoby mogą być zwielokrotnione Działania na zasobach odbywają się poprzez funkcje systemowe Proces korzysta z zasobu poprzez: –Zamówienie –Użycie –Zwolnienie

4 Warunki wystąpienia zakleszczenia Wzajemne wykluczanie – istnieje zasób niepodzielny Przetrzymywanie i oczekiwanie – istnieje proces posiadający zasób i czekający na inny Brak wywłaszczeń – procesu nie można pozbawić zasobu Czekanie cykliczne – istnieje cykl procesów czekających na zasoby przetrzymywane przez inne procesy w cyklu

5 Graf przydziału zasobów Służy do opisu zależności zasobów między procesami Zawiera zbiory wierzchołków i krawędzi Wierzchołki to procesy (P) i zasoby (Z) Krawędź od procesu do zasobu to krawędź zamówienia Krawędź od zasobu do procesu to krawędź przydziału

6 Graf przydziału - przykład P1P1 P2P2 P3P3 Z1Z1 Z2Z2 Z3Z3 Z4Z4

7 Przykład zakleszczenia P1P1 P2P2 P3P3 Z1Z1 Z2Z2 Z3Z3 Z4Z4 P1Z2P2Z4P3Z1P1 P2Z4P3Z1P2

8 Przykład cyklu bez zakleszczenia P1P1 P2P2 P3P3 Z1Z1 Z3Z3 P1Z1P2Z3P1 P4P4

9 Obsługa zakleszczeń Protokół gwarantujący brak zakleszczeń (zapobieganie lub unikanie zakleszczeń) Po wystąpieniu zakleszczenia wykrycie i usunięcie go Ignorowanie zakleszczeń

10 Zapobieganie zakleszczeniom Zaprzeczenie warunku wzajemnego wykluczania – trudne (niektóre zasoby niepodzielne)! Aby zamówić zasób, proces nie może posiadać innych zasobów (protokoły) Zapobieganie oczekiwaniu na zasób Numerowanie zasobów i wymaganie zamawiania ich w porządku rosnącym Wada – słabe wykorzystanie zasobów

11 Unikanie zakleszczeń Konieczna informacja o kolejności i typach zamawianych zasobów Każdy proces deklaruje, jaką maksymalną liczbę zasobów określonego typu będzie potrzebować Decyzję o przyznaniu zasobów podejmuje system Algorytm unikania zakleszczenia zapobiega powstawaniu cykli

12 Stan bezpieczny Jest to sytuacja, w której jest możliwy przydział zasobów poszczególnym procesom bez powstawania zakleszczenia Warunek konieczny: istnienie ciągu bezpiecznego procesów W przeciwnym wypadku występuje stan zagrożenia

13 Stan bezpieczny - przykład System dysponuje 12 jednostkami zasobów Potrzeby procesu P i muszą być zaspokojone od razu, lub po zwolnieniu zasobów przez procesy P j, gdzie i>j Ciąg jest bezpieczny ProcesyMax zapotrzebowanieAktualne zapotrzebowanie P0P0 105 P1P1 42 P2P2 92 t 0 : P 0 = 5 (10), P 1 = 4 (4), P 2 =2 (9) t 1 : P 0 = 5 (10),P 1 = 4 (4), P 2 = 3 (9) – danger!!!

14 Algorytm grafu przydziału zasobów Stosowany, gdy każdy zasób ma tylko jeden egzemplarz Oparty na grafie przydziału zasobów Krawędź deklaracji informuje o możliwości zamówienia zasobu przez proces Podczas rzeczywistego zamówienia krawędź deklaracji zamieniana jest na krawędź zamówienia, przy zwolnieniu - odwrotnie

15 Graf przydziału zasobów - przykład P1P1 P2P2 Z1Z1 Z2Z2 P1P1 P2P2 Z1Z1 Z2Z2 Stan zagrożenia (cykl!)

16 Algorytm bankiera Stosowany, gdy zasoby mają wiele egzemplarzy Każdy proces deklaruje maksymalną liczbę egzemplarzy zasobu do użycia System decyduje, czy przydział zasobu nie powoduje ryzyka zakleszczenia

17 Algorytm bankiera – struktury danych Dostępne Maksymalne … m … n m Maksymalne[i,j]=k Proces P i może zamówić k egzemplarzy zasobu Z j

18 Algorytm bankiera – struktury danych (c.d.) Przydzielone Potrzebne … n m Przydzielone[i,j]=k Proces P i ma przydzielone k egzemplarzy zasobu Z j … n m Potrzebne[i,j]=k Proces P i potrzebuje jeszcze k egzemplarzy zasobu Z j

19 Algorytm bezpieczeństwa Roboczy i Skończone to wektory o długości m i n. Najpierw: Roboczy=Dostępne, Skończone[i] = F Znajdujemy i, dla którego –Skończone[i] == F –Potrzebne i <= Roboczy Roboczy = Roboczy + Przydzielone Jeśli Skończone[i] == T, dla każdego i, to system jest w stanie bezpiecznym

20 Algorytm zamawiania zasobów Zamówienia to wektor zamówień poszczególnych zasobów przez proces Podczas zamówienia wykonywane są operacje: –Jeśli Zamówienia > Potrzebne – zgłoś błąd –Jeśli Zamówienia > Dostępne – czekaj –Przydziel zasoby: Dostępne = Dostępne – Zamówienia Przydzielone = Przydzielone + Zamówienia Potrzebne = Potrzebne - Zamówienia

21 Realizacja ABC P0P0 010 P1P1 200 P2P2 302 P3P3 211 P4P4 002 ABC P0P0 753 P1P1 322 P2P2 902 P3P3 222 P4P4 433 ABC P0P0 743 P1P1 122 P2P2 600 P3P3 011 P4P4 431 ABC 332 Przydzielone Maksymalne Dostępne Potrzebne - cykl spełniający kryterium bezpieczeństwa

22 Realizacja (c.d.) ABC P0P0 010 P1P1 302 P2P2 302 P3P3 211 P4P4 002 ABC P0P0 743 P1P1 020 P2P2 600 P3P3 011 P4P4 431 ABC 230 Przydzielone Dostępne Potrzebne Zamówienia 1 = (1,0,2) Zamówienia 1 <= Dostępne? ABC 332 Dostępne - cykl spełniający kryterium bezpieczeństwa

23 Wykrywanie zakleszczeń Jeśli zakleszczenie może wystąpić, to potrzebne są algorytmy: –Sprawdzający stan systemu na obecność zakleszczenia –Likwidujący zakleszczenie Istnieją wersje algorytmów dla pojedynczych i wielokrotnych typów zasobów

24 Wykrywanie zakleszczeń dla zasobów pojedynczych Wykorzystuje graf oczekiwania Zawiera wyłącznie wierzchołki procesów powiązane zależnościami zasobów: –P i P j P i Z q, Z q P j Zakleszczenie może zaistnieć, gdy w grafie istnieje cykl

25 Wykrywanie zakleszczeń dla zasobów pojedynczych - przykład P1P1 P2P2 P3P3 Z1Z1 Z2Z2 Z3Z3 Z4Z4 P5P5 P4P4 Z5Z5 P5P5 P3P3 P2P2 P1P1 P4P4 graf oczekiwania

26 Wykrywanie zakleszczeń dla zasobów wielokrotnych Struktury wykorzystywane: –Wektor Dostępne, macierze Przydzielone i Zamówienia Algorytm odbiera zasoby procesowi, jeśli posiada on wszystko, czego potrzebuje

27 Wykrywanie zakleszczeń dla zasobów wielokrotnych - przykład ABC P0P0 010 P1P1 200 P2P2 303 P3P3 211 P4P4 002 ABC P0P0 000 P1P1 202 P2P2 000 P3P3 100 P4P4 002 ABC 000 Przydzielone Zamówienia Dostępne - cykl nie będący w stanie zakleszczenia

28 Zakleszczenie - przykład ABC P0P0 010 P1P1 200 P2P2 303 P3P3 211 P4P4 002 ABC P0P0 000 P1P1 202 P2P2 001 P3P3 100 P4P4 002 ABC 000 Przydzielone Zamówienia Dostępne - cykl nie będący w stanie zakleszczenia

29 Likwidowanie zakleszczeń Metody są stosowane w przypadku wykrycia zakleszczenia Dwa podejścia: –Zaniechanie wszystkich zakleszczonych procesów –Usuwanie pojedynczych procesów do momentu wyeliminowania zakleszczenia Problemem są zasoby użytkowane przez proces w momencie zaniechania

30 Likwidowanie zakleszczeń – c.d. Kryteria wyboru procesu do zaniechania: –Priorytet –Wiek i pozostały czas życia –Ilość wykorzystywanych zasobów –Ilość zasobów potrzebnych –Charakter procesu (pierwszo- czy drugoplanowy)


Pobierz ppt "Systemy operacyjne Wykład nr 8: Zakleszczenia Piotr Bilski."

Podobne prezentacje


Reklamy Google