Wykład nr 8: Zakleszczenia

Slides:



Advertisements
Podobne prezentacje
Podstawowe pojęcia programowania współbieżnego
Advertisements

Grafy spełniające nierówność Γ(G) < IR(G)
Grażyna Mirkowska PJWSTK, 10 stycznia 2001
Macierzowa reprezentacja sieci
Grażyna Mirkowska PJWSTK 15 listopad 2000
Wprowadzenie do optymalizacji wielokryterialnej.
Wykład 6 Najkrótsza ścieżka w grafie z jednym źródłem
SYSTEMY OPERACYJNE ZAKLESZCZENIA (BLOKADY)
Rynek bilansujący = Rynek czasu rzeczywistego = Rynek spot
Kategorie systemów czasu rzeczywistego
Struktura problemu decyzyjnego
Grafika komputerowa Wykład 7 Krzywe na płaszczyźnie
Ciągi de Bruijna generowanie, własności
WYKŁAD 5. Skojarzenia – ciąg dalszy
WYKŁAD 2. Kolorowanie wierzchołków
WYKŁAD 7. Spójność i rozpięte drzewa
WYKŁAD 1. Grafy są wokół nas. Pojęcia wstępne.
GRAFY PLANARNE To grafy, które można narysować na płaszczyźnie tak, by krawędzie nie przecinały się (poza swoimi końcami). Na przykład K_4, ale nie K_5.
WYKŁAD 5. Skojarzenia – ciąg dalszy
Rozwiązywanie układów
Wykład nr 7: Synchronizacja procesów
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Zadanie 1.
Algorytmy grafowe Reprezentacja w pamięci
Projektowanie i programowanie obiektowe II - Wykład IV
ZARZĄDZANIE PROCESAMI
Problem rozbieżności czasów jednym z wielu problemów pojawiających się w systemach rozproszonych jest rozbieżność wartości zegarów na poszczególnych węzłach-maszynach.
6. SZEREGOWANIE PROCESÓW
8. LOGIKA TEMPORALNA Składnia zdaniowej logiki temporalnej:
Elementy budowy organizacji wg.J.A.F.Stonera
ALGORYTMY I STRUKTURY DANYCH
WYKŁAD 7. Spójność i rozpięte drzewa Graf jest spójny, gdy dla każdego podziału V na dwa rozłączne podzbiory A i B istnieje krawędź z A do B. Definicja.
TRANSAKCJE TYLKO ODCZYT TYLKO ZAPIS
ALGORYTMY Martyna K. Luiza K..
SIEĆ P2P 1. Definicja sieci równouprawnionej. To taka sieć, która składa się z komputerów o takim samym priorytecie ważności, a każdy z nich może pełnić.
Inżynieria Oprogramowania
ogólne pojęcia struktury
Kod Graya.
Przepływy w sieciach. Twierdzenie minimaksowe.
Podstawy programowania
Podstawy programowania II
Urządzenia dla osób niepełnosprawnych – nowoczesne rozwiązania konstrukcyjne, doświadczenia związane z montażem i eksploatacją SEMINARIUM - Dźwigi, podesty,
Systemy Rozproszone Synchronizacja 2
Architektura komputerów
Problem sekcji krytycznej
Algorytmy.
Wspomaganie Decyzji II
Elastyczność.
Logistyka Transport.
Wykład 7 Synchronizacja procesów i wątków
W ą t e k (lekki proces) thread.
Podstawy Przetwarzania Rozproszonego
Zadanie 1.
Ocena ryzyka zawodowego w małych przedsiębiorstwach
D. Ciołek BADANIA OPERACYJNE – wykład 4
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
Literatura podstawowa
NP-zupełność Problemy: rozwiązywalne w czasie wielomianowym - O(nk)
LOGISTYKA PRODUKCJI 2009/2010.
Plan sprzedaży wyrobu gotowego Plan produkcji wyrobu gotowego
Wstęp do programowania Wykład 7
Pojęcia podstawowe c.d. Rachunek podziałów Elementy teorii grafów
Metody Badań Operacyjnych Michał Suchanek Katedra Ekonomiki i Funkcjonowania Przedsiębiorstw Transportowych.
Logistyka – Ćwiczenia nr 6
Algorytmy. Co to jest algorytm? Przepis prowadzący do rozwiązania zadania.
Zagadnienia transportowe Katedra Ekonomiki i Funkcjonowania Przedsiębiorstw Transportowych.
Liczbami naturalnymi nazywamy liczby 0,1,2,3,..., 127,... Liczby naturalne poznaliśmy już wcześniej; służą one do liczenia przedmiotów. Zbiór liczb.
Grzegorz Chodak Wykład
Zarządzanie projektami
Zapis prezentacji:

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

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ń

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

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

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

Graf przydziału - przykład

Przykład zakleszczenia P1→Z2→P2→Z4→P3→Z1→P1 P2→Z4→P3→Z1→P2 P1 P2 P3 Z1 Z3

Przykład cyklu bez zakleszczenia P1→Z1→P2→Z3→P1 P4 P1 P2 P3 Z3 Z1

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

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

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

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

Stan bezpieczny - przykład Procesy Max zapotrzebowanie Aktualne zapotrzebowanie P0 10 5 P1 4 2 P2 9 System dysponuje 12 jednostkami zasobów Potrzeby procesu Pi muszą być zaspokojone od razu, lub po zwolnieniu zasobów przez procesy Pj, gdzie i>j Ciąg <P1, P0, P2> jest bezpieczny t0: P0 = 5 (10), P1 = 4 (4), P2=2 (9) t1: P0 = 5 (10),P1 = 4 (4), P2 = 3 (9) – danger!!!

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

Graf przydziału zasobów - przykład Stan zagrożenia (cykl!)

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

Algorytm bankiera – struktury danych Dostępne Maksymalne 1 6 3 0 2 1 2 1 1 2 3 … m … n m Maksymalne[i,j]=k Proces Pi może zamówić k egzemplarzy zasobu Zj

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

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 Potrzebnei <= Roboczy Roboczy = Roboczy + Przydzielone Jeśli Skończone[i] == T, dla każdego i, to system jest w stanie bezpiecznym

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

<P1, P3, P4, P2, P0> - cykl spełniający kryterium bezpieczeństwa Realizacja Przydzielone Maksymalne Potrzebne A B C P0 7 5 3 P1 2 P2 9 P3 P4 4 A B C P0 7 4 3 P1 1 2 P2 6 P3 P4 A B C P0 1 P1 2 P2 3 P3 P4 Dostępne A B C 3 2 <P1, P3, P4, P2, P0> - cykl spełniający kryterium bezpieczeństwa

Realizacja (c.d.) Zamówienia1 = (1,0,2) Zamówienia1 <= Dostępne? A B C 3 2 Przydzielone Potrzebne A B C P0 7 4 3 P1 2 P2 6 P3 1 P4 Dostępne A B C P0 1 P1 3 2 P2 P3 P4 A B C 2 3 <P1, P3, P4, P0, P2> - cykl spełniający kryterium bezpieczeństwa

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

Wykrywanie zakleszczeń dla zasobów pojedynczych Wykorzystuje graf oczekiwania Zawiera wyłącznie wierzchołki procesów powiązane zależnościami zasobów: Pi→Pj  Pi → Zq, Zq → Pj Zakleszczenie może zaistnieć, gdy w grafie istnieje cykl

Wykrywanie zakleszczeń dla zasobów pojedynczych - przykład graf oczekiwania

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

Wykrywanie zakleszczeń dla zasobów wielokrotnych - przykład Przydzielone Zamówienia Dostępne A B C P0 P1 2 P2 P3 1 P4 A B C A B C P0 1 P1 2 P2 3 P3 P4 <P0, P2, P3, P1, P4> - cykl nie będący w stanie zakleszczenia

Zakleszczenie - przykład Przydzielone Zamówienia Dostępne A B C P0 P1 2 P2 1 P3 P4 A B C A B C P0 1 P1 2 P2 3 P3 P4 <P0, P2, P3, P1, P4> - cykl nie będący w stanie zakleszczenia

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

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)