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

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

Operační systémy Přednášky pro výuku předmětu Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003.

Podobné prezentace


Prezentace na téma: "Operační systémy Přednášky pro výuku předmětu Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003."— Transkript prezentace:

1 Operační systémy Přednášky pro výuku předmětu Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003

2 Kapitola 6 Konkurence procesů: zablokování a vyhladovění

3 Zablokování (deadlock)  možný překlad: vzájemné zablokování, smrtící objetí  termín pochází ze sportu (zápas)  trvalé zablokování skupiny procesů které buď soupeří o systémové prostředky nebo mezi sebou komunikují  vzniká konfliktem požadavků na prostředky od dvou nebo více procesů

4 Příklad na deadlock

5 Opakovaně použitelné prostředky Reusable Resources  v daném okamžiku je může používat pouze jeden proces a nejsou tímto použitím vyčerpány  proces může získat takový prostředek a pak jej opět uvolnit pro použití jiným procesem  čas procesoru, I/O kanály, operační a sekundární paměť, soubory, databáze, semafory...  deadlock nastává, jestliže proces již nějaký nějaký prostředek drží a žádá o přidělení dalšího

6 Příklad zablokování procesů  dva procesy soupeří o paměť  celkem je možné přidělit 200KB paměťového prostoru  nastane následující posloupnost událostí  deadlock nastává, když oba procesy dospějí k druhému požadavku P1... Request 80K bytes; Request 60K bytes; P2... Request 70K bytes; Request 80K bytes;

7 Spotřebitelné prostředky  prostředky vytvářené a ručené procesy  přerušení, signály, zprávy, informace v I/O bufferech...  deadlock může nastat, když je příjem zprávy blokující  kombinace vedoucí k vzájemnému zablokování může být velmi vzácná

8 Příklad zablokování procesů  deadlock nastává, pokud je receive blokující P1... Receive(P2); Send(P2); P2... Receive(P1); Send(P1);

9 Podmínky vzniku stavu deadlock  vzájemné vylučování  v daném čase může prostředek používat pouze jeden proces  Hold-and-wait  proces může držet prostředek v době, kdy žádá o přidělení dalšího  systém bez preempce  již přidělený prostředek nemůže být procesu násilně odebrán

10 Podmínky vzniku stavu deadlock  kruhové čekání (Circular Wait)  existuje uzavřený řetězec procesů takový, že každý proces drží nejméně jeden prostředek, který potřebuje následující proces v řetězci  je to důsledek předešlých tří podmínek  mohou být potřebné i další podmínky, ale jejich splnění není dostatečné pro vznik vzájemného blokování

11 Circular Wait Resource B Resource A Process P1 Process P2 Requests Held by Requests Held By

12 Prevence stavu deadlock  Vzájemné vylučování  nelze se mu vyhnout !!!  Hold-and-Wait  lze zajistit, aby procesy požadovaly všechny prostředky najednou  pak lze proces blokovat, dokud nemohou být všechny jeho požadavky zajištěny současně  proces může čekat na takovou situaci velmi dlouho  prostředky alokované procesu mohou zůstat dlouhou dobu nevyužity. Tyto prostředky mohou být použity jinými procesy

13  Bezpečný stav  existuje postup, jak dokončit všechny procesy, aniž by nastal deadlock tzv. bezpečná sekvence (safe sequence)  Nebezpečný stav  stav, kdy může (ale nemusí) nastat deadlock  OS musí udržovat bezpečný stav, aby se vyhnul případnému vzájemnému zablokování procesů (deadlock) Algoritmus bankéře

14  výchozí předpoklady  pevný počet prostředků  pevný počet procesů  všechny procesy musí deklarovat předem své maximální požadavky  požadavky procesu jsou akceptovány pouze pokud jeho maximální požadavky nepřekročí celkový počet prostředků  procesy mohou získat v daném okamžiku pouze jeden prostředek Algoritmus bankéře

15  prostředek je alokován pouze pokud výsledkem alokace je opět bezpečný stav  algoritmus předchází vzniku cyklického čekání (circular wait)  algoritmus má některé slabiny  nelze vždy garantovat pevný počet prostředků  v multiprogramovém prostředí nelze vždy zajistit pevný počet procesů  procesy nemohou vždy předem znát maximální požadavky na prostředky Algoritmus bankéře

16 Prevence stavu deadlock  preempce  když je procesu odmítnuto přidělení dalšího prostředku, musí proces uvolnit již získané prostředky  systém musí umožňovat, aby se proces mohl vrátit do předešlého stavu  praktické použitelné pouze tam, kde stav může být snadno uložen a pak obnoven zpět  např. stav procesoru

17 Prevence stavu deadlock  kruhové čekání  pro prostředky definovat lineární uspořádání  jakmile je nějaký prostředek přidělen, mohou být jako další přiděleny již jen prostředky s vyšším pořadovým číslem  může bezdůvodně odmítnout přidělení prostředků

18 Detekce stavu deadlock  OS může testovat, zda nenastal deadlock  test se provádí při příjmu požadavku na prostředky  včasná detekce stavu deadlock  časté testování spotřebovává čas procesoru  periodické testování

19 Vyloučení stavu deadlock  nestartovat procesy, jejichž požadavky by mohly způsobit deadlock  nepovolit inkrementální požadavky na prostředky procesům, pokud by takové požadavky mohly způsobit deadlock  není nutná preempce a rollback procesů

20 Vyloučení stavu deadlock  na začátku musí program specifikovat maximální požadavky na prostředky  uvažované procesy musí být nezávislé – bez požadavků na synchronizaci  počet alokovatelných prostředků musí být omezený  žádný proces nesmí skončit, dokud neuvolní obsazené prostředky

21 Strategie odstraňování stavu deadlock  násilně ukončit všechny vzájemně zablokované procesy  obnovit vzájemně zablokované procesy ze zálohy v bodě, kde dosud neexistoval deadlock, a procesy restartovat  tím ovšem může opět vzniknout původní deadlock  postupně násilně ukončovat jednotlivé vzájemně zablokované procesy, dokud deadlock nezmizí  postupně násilně odebírat procesům prostředky, dokud deadlock nezmizí

22 Výběrová kriteria při ukončování procesů  nejmenší dosud spotřebovaný čas procesoru  nejmenší objem dosud vygenerovaných výstupních dat  Nejdelší odhadnutý čas zbývající do dokončení  nejmenší počet dosud přidělených prostředků  nejnižší priorita

23 Vyhladovění (Starvation)  při čekání na přidělení prostředků  proces nemůže získat přístup k požadovanému prostředku v důsledku obsazení prostředku jinými procesy ... a nikdy se ho nedočká  při komunikaci procesů  dva procesy si stále vyměňují zprávy, zatímco jiný proces čeká na zprávu ... a nikdy se jí nedočká  typický důsledek nízké priority


Stáhnout ppt "Operační systémy Přednášky pro výuku předmětu Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003."

Podobné prezentace


Reklamy Google