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

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

  • Upload
    lew

  • View
    24

  • Download
    0

Embed Size (px)

DESCRIPTION

Zablokování ( deadlock , smrtelné objetí, uváznutí). Zablokování. 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í, - PowerPoint PPT Presentation

Citation preview

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

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

Page 2: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

ZablokováníZablokování

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í,

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.

Page 3: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

ZablokováníZablokování

Vznik takové situace = zablokování (uváznutí), deadlock

? Okolnosti, kdy k takové situaci může dojít ? Jak vzniku takové situace předejít ? Jak takovou situaci pokud již vznikla řešit

Page 4: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Okolnosti vzniku zablokováníOkolnosti vzniku zablokování

Nemůže vzniknout v systémech s jedním procesem,

Multiprocesové systémy: typicky běžící procesy soutěží o přidělení prostředků.

Běžící proces může prostředky požadovat:– Explicitně (během své existence)– Implicitně (během svého vzniku)

Page 5: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Okolnosti vzniku zablokováníOkolnosti vzniku zablokování

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)

Page 6: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Okolnosti vzniku zablokováníOkolnosti vzniku zablokování

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é.

Page 7: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Definice zablokováníDefinice zablokování

Lze definovat jako stav, v němž dva nebo více procesů čeká na splnění podmínky, která nemůže nikdy nastat.

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

Důležitý moment zablokování=společné čekání

Page 8: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Definice zablokováníDefinice zablokování

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.

Page 9: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Modelování zablokováníModelování zablokování

Pomocí orientovaných grafů Orientovaný graf pracuje s uzly dvou typů:

– kroužek=proces

– čtverec=prostředek

Page 10: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Modelování zablokováníModelování zablokování

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

Page 11: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Modelování zablokování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á:

Page 12: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Modelování zablokováníModelování zablokování

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

Page 13: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Modelování zablokováníModelování zablokování

„deadlock“ A

T U

B

Page 14: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Modelování zablokováníModelování zablokování

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

Page 15: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Modelování zablokováníModelování zablokování

V grafu není kružnice zablokování nedošlo

V grafu je kružnice k zablokování mohlo dojít

Page 16: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Modelování zablokováníModelování zablokování

P3P1

P4

P2

R2

R1

Page 17: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Podmínky pro vznik zablokováníPodmínky pro vznik zablokování

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í

Page 18: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Metody (strategie) řešení Metody (strategie) řešení problému zablokování:problému zablokování:

3 přístupy:– Ignorování existence problému,

– Volba takového postupu, aby k zablokování nemohlo dojít:

Předcházením zablokování (deadlock prevention) 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

Page 19: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Metody řešení problému zablokování:Metody řešení problému zablokování:

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

Page 20: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Metody řešení problému zablokování:Metody řešení problému zablokování:

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ů

Page 21: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Podmínky pro vznik zablokováníPodmínky pro vznik zablokování

I. Podmínka vzájemného vyloučení při přidělování prostředků (mutual exclusion condition)

= 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é)

Page 22: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Metody řešení problému zablokování:Metody řešení problému zablokování:

Prolomení některé z nutných podmínek: 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í

Page 23: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Podmínky pro vznik zablokováníPodmínky pro vznik zablokování

II. Podmínka postupného přidělování prostředků (hold and wait)

= 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

Page 24: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Metody řešení problému zablokování:Metody řešení problému zablokování:

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),

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,

Page 25: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Metody řešení problému zablokování:Metody řešení problému zablokování:

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

Page 26: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Podmínky pro vznik zablokováníPodmínky pro vznik zablokování

III. Podmínka neodnímatelnosti přidělených prostředků,

= 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

Page 27: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Metody řešení problému zablokování:Metody řešení problému zablokování:

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ů,

Page 28: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Podmínky pro vznik zablokováníPodmínky pro vznik zablokování

IV. Podmínky vzniku kruhového čekání =musí existovat množina (nejméně dvou)

čekajících procesů, kde proces P0 čeká na prostředek držený procesem P1, proces P1 čeká na prostředek používaný procesem P2 a tak dále až k procesu Pn, který čeká na prostředek používaný procesem P0

Page 29: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Metody řešení problému zablokování:Metody řešení problému zablokování:

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).

Page 30: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Metody řešení problému zablokování:Metody řešení problému zablokování:

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í.

Page 31: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Metody řešení problému zablokování:Metody řešení problému zablokování:

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

Důsledek: nemůže dojít ke vzniku kružnice v grafu přidělení prostředků

Page 32: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Metody řešení problému zablokování:Metody řešení problému zablokování:

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)

Page 33: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Metody řešení problému zablokování:Metody řešení problému zablokování:

IIb. Vyhnutí se zablokování (deadlock avoidance)

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é

Vyžaduje předem znalost určitých informací

Page 34: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Metody řešení problému zablokování:Metody řešení problému zablokování:

Metoda je tedy založena na vyhnutí se zablokování pečlivým přidělováním prostředků.

Pracuje s tzv. postupovou dráhou („trajektorií prostředků“) a pojmy „bezpečný stav“ a „nebezpečný stav“

Page 35: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

P1

P2

TP

P

T N

D

t

Page 36: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Metody řešení problému zablokování:Metody řešení problému zablokování:

V bodě „t“ musí systém rozhodnout, zda procesu P2 přidělí plotter (a dojde k zablokování) nebo proces P2 odloží, přidělí (časem) plotter procesu P1 (a vyhne se tak zablokování).

Page 37: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Metody řešení problému zablokování:Metody řešení problému zablokování:

„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í.

Pokud taková cesta není, je stav „nebezpečný“ (což neznamená, že jsou procesy zablokované a že k zablokování nutně musí dojít)

Page 38: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Metody řešení problému zablokování:Metody řešení problému zablokování:

Procesy: Má Chce Má Chce Má Chce Má Chce Má Chce Má Chce Má Chce

A 3 9 3 9 3 9 3 9 3 9 9 9 - -

B 2 4 4 4 - - - - - - - - - -

C 2 7 2 7 2 7 7 7 - - - - - -

Volné 3 1 5 0 7 1 10

Celkem prostředků=10 Je to bezpečný stav

Page 39: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Metody řešení problému zablokování:Metody řešení problému zablokování:

Procesy: Má Chce Má Chce Má Chce Má Chce

A 3 9 4 9 4 9 4 9

B 2 4 4 4 - - - -

C 2 7 2 7 2 7 6 7

Volné 3 0 4 0

Celkem prostředků=10 Není to bezpečný stav

Page 40: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Metody řešení problému zablokování:Metody řešení problému zablokování:

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, Způsoby detekce: např. graf přidělování

prostředků (algoritmus pro detekci cyklů v grafu)

Page 41: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Metody řešení problému zablokování:Metody řešení problému zablokování:

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ů

Page 42: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Metody řešení problému zablokování:Metody řešení problému zablokování:

Detekce je možná vždy, obnovení není vždy možné.

Značná režie

Page 43: Zablokování  ( deadlock , smrtelné objetí, uváznutí)

Metody řešení problému zablokování:Metody řešení problému zablokování:

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