Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Zablokování (deadlock, smrtelné objetí, uváznutí).

Podobné prezentace


Prezentace na téma: "Zablokování (deadlock, smrtelné objetí, uváznutí)."— Transkript prezentace:

1 Zablokování (deadlock, smrtelné objetí, uváznutí)

2 Zablokování l Současně běží více procesů požadujících přidělení určitých prostředků výpočetního systému a převedených do stavu blokovaných procesů – tj. čekají, l Vznik problému: proces drží určité prostředky, požaduje přidělení dalších prostředků, tyto nedostane a je převeden do stavu blokovaných procesů, přičemž drží nadále již dříve přidělené prostředky požadované jinými (čekajícími) procesy.

3 Zablokování l Vznik takové situace = zablokování (uváznutí), deadlock l ? Okolnosti, kdy k takové situaci může dojít l ? Jak vzniku takové situace předejít l ? Jak takovou situaci pokud již vznikla řešit

4 Okolnosti vzniku zablokování l Nemůže vzniknout v systémech s jedním procesem, l Multiprocesové systémy: typicky běžící procesy soutěží o přidělení prostředků. l Běžící proces může prostředky požadovat: –Explicitně (během své existence) –Implicitně (během svého vzniku)

5 Okolnosti vzniku zablokování l Prostředky dvou typů: –Odejmutelné (preemptable) – mohou být procesu odebrány aniž dojde k nevratnému narušení dalšího korektního chodu procesu (procesor, paměť), –Neodejmutelné (nonpreemptable) – nelze procesu odejmout, aniž by nedošlo ke vzniku chyby v chodu procesu nebo výsledku činnosti (tiskárna)

6 Okolnosti vzniku zablokování l Situace zablokování se tedy týká procesů, které pracují s prostředky, které v daném okamžiku může používat pouze jeden proces a které jsou neodejmutelné.

7 Definice zablokování l Lze definovat jako stav, v němž dva nebo více procesů čeká na splnění podmínky, která nemůže nikdy nastat. l Důvodem této nemožnosti však musí být to, že tuto podmínku, na jejíž splnění čeká určitý proces, může splnit pouze jiný proces ze skupiny zablokovaných procesů – tedy proces nacházející se ve stejné situaci l Důležitý moment zablokování=společné čekání

8 Definice zablokování l Množina procesů je zablokována, pokud každý proces z této množiny čeká na událost, kterou může způsobit pouze jiný proces z této množiny.

9 Modelování zablokování l Pomocí orientovaných grafů l Orientovaný graf pracuje s uzly dvou typů: – kroužek=proces – čtverec=prostředek

10 Modelování zablokování l Mezi jednotlivými uzly jsou orientované hrany: –Hrana směřující od procesu k prostředku představuje žádost o přidělení prostředku

11 Modelování zablokování –Hrana směřující od prostředku k procesu znamená, že daný prostředek byl procesu přidělen a proces ho používá:

12 Modelování zablokování l Uvedené zobrazení je také označováno jako graf přidělení systémových prostředků (system resource allocation graph),

13 Modelování zablokování „deadlock“ A TU B

14 Modelování zablokování l Více instancí téhož prostředku je možné vyznačit tečkami ve čtvercovém uzlu:

15 Modelování zablokování l V grafu není kružnice  zablokování nedošlo l V grafu je kružnice  k zablokování mohlo dojít

16 Modelování zablokování P3P3 P1P1 P4P4 P2P2 R2R2 R1R1

17 Podmínky pro vznik zablokování l Coffman, Elphick a Shoshani (1971) identifikovali 4 nutné podmínky, které musí být splněny současně pro vznik zablokování –Vzájemné vyloučení při přidělování prostředků, –Postupné přidělování prostředků, –Neodnímatelnost přidělených prostředků, –Vznik kruhového čekání

18 Metody (strategie) řešení problému zablokování: l 3 přístupy: –Ignorování existence problému, –Volba takového postupu, aby k zablokování nemohlo dojít: l Předcházením zablokování (deadlock prevention) l Vyhnutí se zablokování (deadlock avoidance) –Připustit vznik zablokování, ale použitím metod detekce jej detekovat a následně provést zásah směřující k odstranění zablokování – tj. provedení obnovy (zotavení systému) – detection and recovery

19 Metody řešení problému zablokování: l I. Ignorování problému (pštrosí algoritmus) –Počítá se s možností vzniku zablokování – úvahy o pravděpodobnosti (matematické hledisko, inženýrské hledisko, dle určení systému, rovnováha nákladů na řešení (větší režie systému) vs. přínosy

20 Metody řešení problému zablokování: l IIa. Předcházení (prevence) zablokování – deadlock prevention. –Založeno na existenci 4 nutných podmínek pro vznik zablokování –Často používaná metoda (nízká režie) –Hlavní nevýhoda=nízká míra využití prostředků

21 Podmínky pro vznik zablokování l I. Podmínka vzájemného vyloučení při přidělování prostředků (mutual exclusion condition) l = v systému existují prostředky, které mohou být v daném okamžiku přiděleny nejvýše jednomu procesu (nebo jsou volné)

22 Metody řešení problému zablokování: l Prolomení některé z nutných podmínek: l A) Podmínka vzájemného vyloučení –V řadě případů nelze využít, platí však zásada, že pokud to není nezbytně nutné nemá se používat vzájemné vyloučení

23 Podmínky pro vznik zablokování l II. Podmínka postupného přidělování prostředků (hold and wait) l = V systému je možné prostředky přidělovat postupně aniž by proces musel uvolnit dříve získané prostředky, procesy s již přidělenými prostředky se mohou snažit o přidělení dalších

24 Metody řešení problému zablokování: l Strategie 1: Každý proces musí požadovat všechny prostředky, které bude potřebovat, naráz (a dokud je nedostane, nemůže pokračovat v běhu), l Strategie 2: Pokud proces, který již drží nějaké prostředky, požaduje přidělení dalších prostředků a toto mu bylo odmítnuto, musí nejdříve vrátit všechny prostředky, které drží, a teprve poté o ně znovu požádat,

25 Metody řešení problému zablokování: l B) podmínka postupného přidělování prostředků (hold and wait condition): –1. strategie –Metoda úplného počátečního přidělení všech sdílených prostředků –Bezpečná a jednoduchá metoda –Nevýhoda: seznam požadovaných prostředků musí být znám již při vzniku procesu, nízké využití prostředků, součet požadavků všech procesů <= celkové kapacitě prostředků systému

26 Podmínky pro vznik zablokování l III. Podmínka neodnímatelnosti přidělených prostředků, l = přidělený prostředek nemůže být procesu odejmut do té doby, dokud proces nedokončil používání tohoto prostředku a dokud tedy proces sám neuvolní používaný prostředek

27 Metody řešení problému zablokování: l C) podmínka neodnímatelnosti přidělených prostředků (no preemption condition) –2. strategie –Zavedení pravidla požadujícího, aby proces, který již má přiděleny nějaké prostředky a požaduje přidělení dalších prostředků nejdříve vrátil všechny dříve přidělené prostředky a teprve následně požádal o přidělení (všech) prostředků,

28 Podmínky pro vznik zablokování l IV. Podmínky vzniku kruhového čekání l =musí existovat množina (nejméně dvou) čekajících procesů, kde proces P 0 čeká na prostředek držený procesem P 1, proces P 1 čeká na prostředek používaný procesem P 2 a tak dále až k procesu P n, který čeká na prostředek používaný procesem P 0

29 Metody řešení problému zablokování: l Strategie 3: Musí být zajištěno přidělování prostředků podle lineárního uspořádání prostředků (proces může obdržet požadovaný prostředek pouze tehdy, je-li v daném uspořádání prostředků požadovaný prostředek zařazen výše než kterýkoliv z prostředků, které již proces má přidělen).

30 Metody řešení problému zablokování: l D) Podmínka vzniku kruhového čekání (circular wait condition) –Nejtriviálněji: proces může mít přidělen jen jeden prostředek –3. strategie – přidělované prostředky jsou uspořádány do lineárního systému (například očíslováním) a proces musí žádat o přidělení prostředků v určitém předepsaném pořadí.

31 Metody řešení problému zablokování: l Tj. prostředky byly uspořádány do určité hierarchie (řady) a proces držící určitý prostředek může požádat pouze o prostředek, který stojí v dané hieararchii výše l Důsledek: nemůže dojít ke vzniku kružnice v grafu přidělení prostředků

32 Metody řešení problému zablokování: l Problémy: –Stanovení vhodného uspořádání pro různé prostředky (během instalace systému, jak se změní po doplnění dalšího prostředku)

33 Metody řešení problému zablokování: l IIb. Vyhnutí se zablokování (deadlock avoidance) l Založena na představě, že systém bude umět rozpoznat, zda je „bezpečné“ vyhovět požadavku procesu o přidělení prostředků, a že toto přidělení provede pouze za situace, kdy je přidělení bezpečné l Vyžaduje předem znalost určitých informací

34 Metody řešení problému zablokování: l Metoda je tedy založena na vyhnutí se zablokování pečlivým přidělováním prostředků. l Pracuje s tzv. postupovou dráhou („trajektorií prostředků“) a pojmy „bezpečný stav“ a „nebezpečný stav“

35 P1P1 P2P2 T P P TN D t

36 Metody řešení problému zablokování: l V bodě „t“ musí systém rozhodnout, zda procesu P 2 přidělí plotter (a dojde k zablokování) nebo proces P 2 odloží, přidělí (časem) plotter procesu P 1 (a vyhne se tak zablokování).

37 Metody řešení problému zablokování: l „bezpečný stav“: stav, kdy procesy nejsou zablokované a existuje cesta (trajektorie) jak uspokojit všechny požadavky běžících procesů ve vhodném pořadí. l Pokud taková cesta není, je stav „nebezpečný“ (což neznamená, že jsou procesy zablokované a že k zablokování nutně musí dojít)

38 Metody řešení problému zablokování: Procesy: MáChceMáChceMáChceMáChceMáChceMáChceMáChce A B C Volné Celkem prostředků=10 Je to bezpečný stav

39 Metody řešení problému zablokování: Procesy: MáChceMáChceMáChceMáChce A B C Volné3040 Celkem prostředků=10Není to bezpečný stav

40 Metody řešení problému zablokování: l III. Detekce a zotavení. –Systém se nepokouší zablokování zabránit, ale snaží se detekovat jeho vznik a poté odstranit, –Jak detekce zablokování tak odstranění zablokování znamená režii, l Způsoby detekce: např. graf přidělování prostředků (algoritmus pro detekci cyklů v grafu)

41 Metody řešení problému zablokování: l Zotavení: –Využitím preempce (odebráním prostředku některému procesu z množiny procesů, které jsou zablokovány) –Využitím systému kontrolních bodů (checkpointů), stav systému periodicky zaznamenáván, v případě vzniku zablokování je proces, který drží prostředek, u něhož požadavek na přidělení vedl k zablokování, vrácen zpět do jednoho ze stavů z doby před přidělením tohoto prostředku, –Likvidací některého z procesů

42 Metody řešení problému zablokování: l Detekce je možná vždy, obnovení není vždy možné. l Značná režie

43 Metody řešení problému zablokování: l Kombinovaný přístup: –Žádný z uvedených algoritmů sám není vhodný pro celé spektrum problémů přidělování zdrojů v operačním systému, –Pro každou třídu problémů je vhodné použít různou startegii


Stáhnout ppt "Zablokování (deadlock, smrtelné objetí, uváznutí)."

Podobné prezentace


Reklamy Google