PB 169 Počítačové sítě a operační systémy1 Synchronizace procesů Uváznutí PB 169 Počítačové sítě a operační systémy.

Slides:



Advertisements
Podobné prezentace
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Advertisements

Přednáška č. 1 Úvod, Historie zpracování dat, Základní pojmy
Operační systémy. OPERAČNÍ SYSTÉMY pomoc operátorovi, podpora vlastností reálného času, víceuživatelských a více úlohových systémů.
ALGO – Algoritmizace 1. cvičení
Paralelní programování
Principy překladačů Mezikód Jakub Yaghob.
Paralelní programování
Komunikace v DS Přednášky z distribuovaných systémů Ing. Jiří Ledvina, CSc.
Přínosy a druhy počítačových sítí. Jednou z nejvýznamnějších technologií používaných v oblasti výpočetních systémů jsou již řadu let počítačové sítě.
Doplňující referát k přednášce Transakce Šárka Hlušičková
Řešení dynamických problémů s podmínkami Pavel Surynek Univerzita Karlova v Praze Matematicko-fyzikální fakulta.
13AMP 6. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Synchronizace procesů Synchronizace procesů Producent-Konzument Producent-Konzument.
TI 7.1 NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6. TI 7.2 Nejkratší cesty z jednoho uzlu Seznámíme se s následujícími pojmy: w-vzdálenost (vzdálenost na.
Teoretická informatika Tomáš Foltýnek Paralelní programování.
Modely konzistentnosti Ladislav Kotal PDS 2008Ladislav Kotal2 Konzistentnost Konzistentní = soudržný, neporušený, pevný Konzistenční model = dohoda.
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.
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.
Jedenácté cvičení Vlákna. Java cv112 Vlákna Operační systém Mutitasking – více úloh se v operačním programu vykonává „současně“ Java Multithreading -
Výrok „Počítač je pouze tak inteligentní jako jeho uživatel.“ (Radek Lochman, dnes)
13AMP 2. přednáška Ing. Martin Molhanec, CSc.. Stav procesu (kontext) Stav procesu je úplná informace, kterou je nutné uschovat při přerušení procesu,
13AMP 3. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled I. Co je to kontext úlohy Co je to kontext úlohy Task switching (přepnutí úlohy)
Transakční zpracování v SQL P. Částek. Transakce Transakce = logická jednotka práce Podaří-li se všechny části transakce, potvrdíme je. COMMIT Jestliže.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
11. přednáška politika přidělování místa, trashing -algoritmy určení oběti -souběžnost procesů -kritická sekce (co je to, požadavky, možnosti.
Zablokování (deadlock, smrtelné objetí, uváznutí)
Distribuovaná sdílená paměť Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.
A4B33OSS (J. Lažanský) verze: Podzim 2010 Meziprocesní komunikace a synchronizace procesů 1 Obsah Téma 5 – Meziprocesní komunikace a synchronizace procesů.
A4B33OSS (J. Lažanský) verze: Podzim 2013 Meziprocesní komunikace a synchronizace procesů 1 Obsah Téma 5 – Synchronizace procesů a problém uváznutí 1.Problém.
3. konzultace (5 hodin) Studijní materiály najdete na adrese:
13AMP 4. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Problém sdílených zdrojů Problém sdílených zdrojů Co je to kritická sekce Co.
Distribuované algoritmy - přehled Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.
Vnitřní (operační paměť)
Distribuovaný deadlock - přehled Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.
Co je to OS Správce prostředků –spravuje a přiděluje systémové zdroje systému úlohám, stará se o jejich efektivní sdílení procesoru (ů) operační paměti.
Výrok „Vypadá to, že jsme narazili na hranici toho, čeho je možné dosáhnout s počítačovými technologiemi. Člověk by si ale měl dávat pozor na takováto.
1/28 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Vlákna 06.
A3B33OSD (J. Lažanský) verze: Jaro 2013 Synchronizace procesů a problém uváznutí 1 Obsah Téma 5 – Synchronizace procesů a problém uváznutí 1.Problém soupeření,
Směrování -RIP. 2 Základy směrování  Předpoklady:  Mějme směrovač X  Směrovač nemůže znát topologii celé sítě  X potřebuje určit směrovač pro přístup.
Komunikace v DS Přednášky z distribuovaných systémů Ing. Jiří Ledvina, CSc.
Základy operačních systémů Meziprocesová komunikace a synchronizace Jakub Yaghob.
1/34 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Synchronizace procesů 08.
1/35 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Synchronizace procesů 08.
SVAZEK NEDEDIKOVANÝCH PRACOVNÍCH STANIC NA BÁZI OS LINUX DANIEL LANGR DIPLOMOVÁ PRÁCE 2004.
Operační systémy LS 2014/ přednáška 20. dubna 2015.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
UNIX 12. Komunikace mezi procesy © Milan Keršláger
Stránkování MATĚJ JURIČIČ 2015/2016 EP1 SPŠ A VOŠ JANA PALACHA KLADNO.
Operační systémy 10. Souběh a uváznutí
NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6.
Téma 6 – Uváznutí Obsah Problém uváznutí a časově závislých chyb
Vypracoval / Roman Málek
Zvídavé otázky 1. Prevence a detekce uváznutí
Služby Windows Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Distribuovaný operační systém pro mikroprocesory
Soubor Soubor v informatice označuje pojmenovanou sadu dat uloženou na nějakém datovém médiu, se kterou lze pracovat nástroji operačního systému jako.
1. ročník oboru Mechanik opravář motorových vozidel
1. ročník oboru Mechanik opravář motorových vozidel
Operační systémy 9. Spolupráce mezi procesy
PB 169 Počítačové sítě a operační systémy
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.
Práce s procesy Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Autor:
Téma 5 – Synchronizace procesů a problém uváznutí
Přednášky z distribuovaných systémů
Operační systémy.
Přepínání procesů Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Paměť.
Přednášky z Distribuovaných systémů
Monitor Object 1.
Transkript prezentace:

PB 169 Počítačové sítě a operační systémy1 Synchronizace procesů Uváznutí PB 169 Počítačové sítě a operační systémy

2 Paralelní běh procesů Synchronizace běhu procesů jeden proces čeká na událost z druhého procesu Komunikace mezi procesy komunikace – způsob synchronizace, koordinace různých aktivit může dojít k uváznutí každý proces čeká na zprávu od nějakého jiného procesu může dojít ke stárnutí dva procesy si opakovaně posílají zprávy zatímco třetí proces čeká na zprávu nekonečně dlouho Sdílení prostředků procesy používají a modifikují sdílená data operace zápisu musí být vzájemně výlučné operace zápisu musí být vzájemně výlučné s operacemi čtení operace čtení mohou být realizovány souběžně pro zabezpečení integrity dat se používají kritické sekce

PB 169 Počítačové sítě a operační systémy3 Nekonzistence Paralelní přístup ke sdíleným údajům může být příčinou nekonzistence dat Udržování konzistence dat vyžaduje používání mechanismů, které zajistí patřičné provádění spolupracujících procesů Problém komunikace procesů v úloze typu Producent-Konzument přes vyrovnávací paměť s omezenou kapacitou

PB 169 Počítačové sítě a operační systémy4 Producent-konzument (1) Sdílená data #define BUFFER_SIZE 10 typedef struct {... } item; item buffer[BUFFER_SIZE]; int in = 0; int out = 0; int counter = 0;

PB 169 Počítačové sítě a operační systémy5 Producent-konzument (2) Producent item nextProduced; while (1) { while (counter == BUFFER_SIZE) ; /* do nothing */ buffer[in] = nextProduced; in = (in + 1) % BUFFER_SIZE; counter++; }

PB 169 Počítačové sítě a operační systémy6 Producent-konzument (3) Konzument item nextConsumed; while (1) { while (counter == 0) ; /* do nothing */ nextConsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; counter--; }

PB 169 Počítačové sítě a operační systémy7 Producent-konzument (4) Atomická operace je taková operace, která vždy proběhne bez přerušení Následující příkazy musí být atomické counter++; counter--; count++ v assembleru může vypadat register1 = counter register1 = register1 + 1 counter = register1 count-- v assembleru může vypadat register2 = counter register2 = register2 – 1 counter = register2

PB 169 Počítačové sítě a operační systémy8 Producent-konzument (5) Protože takto implementované operace count++ a count-- nejsou atomické, můžeme se dostat do problémů s konzistencí Nechť je hodnota counter nastavena na 5. Může nastat: producer: register1 = counter (register1 = 5) producer: register1 = register1 + 1 (register1 = 6) consumer: register2 = counter (register2 = 5) consumer: register2 = register2 – 1 (register2 = 4) producer: counter = register1 (counter = 6) consumer: counter = register2 (counter = 4) Výsledná hodnota proměnné counter bude buďto 4 nebo 6, zatímco správný výsledek má být 5.

PB 169 Počítačové sítě a operační systémy9 Race condition Race condition (podmínka soupeření): více procesů současně přistupuje ke sdíleným zdrojům a manipulují s nimi konečnou hodnotu zdroje určuje poslední z procesů, který zdroj po manipulaci opustí Ochrana procesů před negativními dopady race condition je potřeba procesy synchronizovat

PB 169 Počítačové sítě a operační systémy10 Problém kritické sekce N procesů soupeří o právo používat jistá sdílená data V každém procesu se nachází segment kódu programu nazývaný kritická sekce, ve kterém proces přistupuje ke sdíleným zdrojům Problém: je potřeba zajistit, že v kritické sekci, sdružené s jistým zdrojem, se bude nacházet nejvýše jeden proces

PB 169 Počítačové sítě a operační systémy11 Podmínky řešení problému kritické sekce Podmínka vzájemného vyloučení (mutual exclusion), podmínka bezpečnosti, „safety“ jestliže proces P1 provádí svoji kritickou sekci, žádný jiný proces nemůže provádět svoji kritickou sekci sdruženou se stejným zdrojem Podmínka trvalosti postupu (progress), podmínka živosti, „liveliness“ jestliže žádný proces neprovádí svoji sekci sdruženou s jistým zdrojem a existuje alespoň jeden proces, který si přeje vstoupit do kritické sekce sdružené s tímto zdroje, pak výběr procesu, který do takové kritické sekce vstoupí, se nesmí odkládat nekonečně dlouho Podmínka konečnosti doby čekání (bounded waiting), podmínka spravedlivosti, „fairness“ musí existovat horní mez počtu, kolikrát může být povolen vstup do kritické sekce sdružené s jistým zdrojem jiným procesům než procesu, který vydal žádost o vstup do kritické sekce sdružené s tímto zdrojem, po vydání takové žádosti a před tím, než je takový požadavek uspokojen předpokládáme, že každý proces běží nenulovou rychlostí o relativní rychlosti procesů nic nevíme

PB 169 Počítačové sítě a operační systémy12 Počáteční návrhy řešení Máme pouze 2 procesy, P 0 a P 1 Generická struktura procesu P i do { entry section critical section exit section reminder section } while (1); Procesy mohou za účelem dosažení synchronizace svých akcí sdílet společné proměnné Činné čekání na splnění podmínky v „entry section“ – „busy waiting“

PB 169 Počítačové sítě a operační systémy13 Řešení problému KS Softwarová řešení algoritmy, jejichž správnost se nespoléhá na žádné další předpoklady s aktivním čekáním „busy waiting“ Hardwarová řešení vyžadují speciální instrukce procesoru s aktivním čekáním Řešení zprostředkované operačním systémem potřebné funkce a datové struktury poskytuje OS s pasivním čekáním podpora v programovacím systému/jazyku semafory, monitory, zasílání zpráv

PB 169 Počítačové sítě a operační systémy14 Algoritmus 1 Sdílené proměnné int turn; počátečně turn = 0 turn = i  P i může vstoupit do KS Proces P i do { while (turn != i) ; critical section turn = j; reminder section } while (1); Splňuje vzájemné vyloučení, ale ne trvalost postupu

PB 169 Počítačové sítě a operační systémy15 Algoritmus 2 Sdílené proměnné boolean flag[2]; počátečně flag [0] = flag [1] = false. flag [i] = true  P i může vstoupit do své KS Process P i do { flag[i] := true; while (flag[j]) ; critical section flag [i] = false; remainder section } while (1); Splňuje vzájemné vyloučení, ale ne trvalost postupu

PB 169 Počítačové sítě a operační systémy16 Algoritmus 3 (Petersonův) Kombinuje sdílené proměnné algoritmů 1 a 2 Proces P i do { flag [i]:= true; turn = j; while (flag [j] and turn == j) ; critical section flag [i] = false; remainder section } while (1); Jsou splněny všechny tři podmínky správnosti řešení problému kritické sekce

PB 169 Počítačové sítě a operační systémy17 Synchronizační hardware Speciální instrukce strojového jazyka test_and_set, exchange / swap, … Stále zachována idea používání „busy waiting“ Test_and_set testování a modifikace hodnoty proměnné – atomicky boolean TestAndSet (boolean &target) { boolean rv = target; target = true; return rv; } Swap Atomická výměna dvou proměnných Void Swap (boolean &ra, boolean &rb] { boolean temp = a; a = b; b = temp; }

PB 169 Počítačové sítě a operační systémy18 Využití TestAndSet Sdílená data (inicializováno na false): boolean lock: Proces Pi do { while (TestAndSet(lock)) ; critical section lock = false; remainder section }

PB 169 Počítačové sítě a operační systémy19 Využití Swap Sdílená data (inicializováno na false): boolean lock; boolean waiting[n]; Proces Pi do { key = true; while (key == true) Swap(lock,key); critical section lock = false; remainder section }

PB 169 Počítačové sítě a operační systémy20 Situace bez podpory OS Nedostatek softwarového řešení procesy, které žádají o vstup do svých KS to dělají metodou „busy waiting“ po nezanedbatelnou dobu spotřebovávají čas procesoru Speciální instrukce výhody vhodné i pro multiprocesory (na rozdíl od prostého maskování/povolení přerušení) nevýhody opět „busy waiting“ možnost stárnutí – náhodnost řešení konfliktu možnost uváznutí v prioritním prostředí (proces v KS nedostává čas CPU)

PB 169 Počítačové sítě a operační systémy21 Semafory Synchronizační nástroj, který lze implementovat i bez „busy waiting“ proces je (operačním systémem) „uspán“ a „probuzen“ tj. řešení na úrovni OS Definice Semaphore S : integer Lze ho zpřístupnit pouze pomocí dvou atomických operací wait (S): signal(S): while S ≤ 0 do no-op; S ++; S --;

PB 169 Počítačové sítě a operační systémy22 Kritická sekce Sdílená data: semaphore mutex; // počátečně mutex = 1 Proces P i : do { wait(mutex); critical section signal(mutex); remainder section } while (1);

PB 169 Počítačové sítě a operační systémy23 Uváznutí a stárnutí Uváznutí dva nebo více procesů neomezeně dlouho čekají na událost, kterou může generovat pouze jeden z čekajících procesů Nechť S a Q jsou dva semafory inicializované na 1 P 0 P 1 wait(S);wait(Q); wait(Q);wait(S);   signal(S);signal(Q); signal(Q)signal(S); Stárnutí neomezené blokování, proces nemusí být odstraněný z fonty na semafor nikdy (předbíhání vyššími prioritami, …)

PB 169 Počítačové sítě a operační systémy24 Problémy se semafory Semafory jsou mocný nástroj pro dosažení vzájemného vyloučení a koordinaci procesů Operace wait(S) a signal (S) jsou prováděny více procesy a jejich účinek nemusí být vždy explicitně zřejmý semafor s explicitním ovládáním wait/signal je nástroj nízké úrovně Chybné použití semaforu v jednom procesu hroutí souhru všech spolupracujících procesů Patologické případy použití semaforů: wait(x) wait(x) KS KS wait(x) signal(y)

PB 169 Počítačové sítě a operační systémy25 Příklad: Linux (1) IPC (InterProcess Communication) signály (asynchronní události) roury ( ls|pr|lpr ) zprávy (messages) semafory (semaphores) sdílená paměť (shared memory)

PB 169 Počítačové sítě a operační systémy26 Příklad: Linux (2) Semafory, volání jádra semget semctl semop

PB 169 Počítačové sítě a operační systémy27 Problém uváznutí Existuje množina blokovaných procesů, každý proces vlastní nějaký prostředek (zdroj) a čeká na zdroj držený jiným procesem z této množiny Příklad 1 v systému existují 2 páskové mechaniky procesy P 1 a P 2 chtějí kopírovat data z pásky na pásku, každý z procesů „vlastní“ jednu mechaniku a požaduje alokací druhé Příklad 2 Semafory A a B, inicializované na 1 P 0 P 1 wait (A);wait(B) wait (B);wait(A)

PB 169 Počítačové sítě a operační systémy28 Příklad: úzký most Most s jednosměrným provozem Každý vjezd mostu lze chápat jako zdroj Dojde-li k uváznutí, lze ho řešit tím, že se jedno auto vrátí Preempce zdroje (přivlastnění si zdroje, který vlastnil někdo jiný) a vrácení soupeře do situace před žádostí o přidělení zdroje (preemption a rollback) Při řešení uváznutí se může vracet i více vozů Může docházet ke stárnutí

PB 169 Počítačové sítě a operační systémy29 Definice uváznutí a stárnutí Uváznutí množina procesů P uvázla, jestliže každý proces P i z P čeká na událost (uvolnění prostředku, zaslání zprávy), kterou vyvolá pouze některý z procesů P Stárnutí požadavky 1 nebo více procesů z P nebudou splněny v konečném čase z důvodů vyšších priorit jiného procesu z důvodů prevence uváznutí apod.

PB 169 Počítačové sítě a operační systémy30 Model Typy zdrojů R 1, R 2, …, R m tiskárna, paměť, I/O zařízení, … Každý zdroj R i má W i instancí Každý proces používá zdroj následujícím způsobem 1. žádost 2. použití 3. uvolnění (v konečném čase)

PB 169 Počítačové sítě a operační systémy31 Charakteristika uváznutí K uváznutí dojde, když začnou současně platit 4 následující podmínky vzájemné vyloučení (mutual exclusion) sdílený zdroj může v jednom okamžiku používat pouze jeden proces ponechání si zdroje a čekání na další (hold and wait) proces vlastnící alespoň zdroj čeká na získání dalšího zdroje, dosud vlastněného jiným procesem bez předbíhání (no preemption) zdroj lze uvolnit pouze procesem, který ho vlastní, dobrovolně po té, co daný proces zdroj dále nepotřebuje kruhové čekání (circular wait) existuje takový seznam čekajících procesů (P 0, P 1, …, P n ), že P 0 čeká na uvolnění zdroje drženého P 1, P 1 čeká na uvolnění zdroje drženého P 2, …, P n-1 čeká na uvolnění zdroje drženého P n, a P n čeká na uvolnění zdroje drženého P 0

PB 169 Počítačové sítě a operační systémy32 Graf přidělení zdrojů Resource-Allocation Graph, RAG Množina uzlů V a množina hran E uzly jsou dvou typů: P= {P 1, P 2, …, P n }, množina procesů existujících v systému R = {R 1, R 2, …, R m }, množina zdrojů existujících v systému Hrana požadavku – orientovaná hrana P i → R j Hrana přidělení – orientovaná hrana R j → P i Proces: Zdroj se 4 instancemi: Proces P i požadující prostředek R j : Proces P i vlastnící prostředek R j : PiPi PiPi PiPi

PB 169 Počítačové sítě a operační systémy33 Příklad RAG (bez cyklu)

PB 169 Počítačové sítě a operační systémy34 Příklad RAG (s uváznutím)

PB 169 Počítačové sítě a operační systémy35 Příklad RAG (bez uváznutí)

PB 169 Počítačové sítě a operační systémy36 RAG: závěry Jestliže se v RAG nevyskytuje cyklus – k uváznutí nedošlo Jestliže se v RAG vyskytuje cyklus existuje pouze jedna instance zdroje daného typu → k uváznutí došlo existuje více instancí zdroje daného typu → k uváznutí může (ale nemusí) dojít

PB 169 Počítačové sítě a operační systémy37 Problém uváznutí Ochrana před uváznutím prevencí zajistíme, že se systém nikdy nedostane do stavu uváznutí zrušíme platnost některé nutné podmínky Obcházení uváznutí detekce potenciální možnosti vzniku uváznutí a nepřipuštění takového stavu zamezujeme současné platnosti všech nutných podmínek prostředek se nepřidělí, pokud by hrozilo uváznutí (hrozí stárnutí) Obnova po uváznutí uváznutí povolíme, ale jeho vznik detekujeme a řešíme Ignorování hrozby uváznutí uváznutí je věc aplikace ne systému způsob řešení zvolený většinou OS

PB 169 Počítačové sítě a operační systémy38 Ochrana prevencí Nepřímé metody zneplatnění některé nutné podmínky Virtualizací prostředků, ruším nutnost vzájemné výlučnosti při přístupu požadováním všech prostředků najednou odebíráním prostředků Přímé metody nepřipuštění platnosti postačující podmínky (cyklus v grafu) uspořádání pořadí vyžadování prostředků

PB 169 Počítačové sítě a operační systémy39 Prevence uváznutí (1) Vzájemné vyloučení podmínka není nutná pro sdílené zdroje u nesdílených zdrojů musí podmínka platit řeší se např. virtualizací prostředků (např. tiskárny) Ponechání zdrojů a čekání na další při žádosti o zdroje proces žádné zdroje „vlastnit“ nesmí proces musí požádat o zdroje a obdržet je dříve než je spuštěn běh procesu důsledkem je nízká efektivita využití zdrojů a možnost stárnutí

PB 169 Počítačové sítě a operační systémy40 Prevence uváznutí (2) Zakázané předbíhání jestliže proces držící nějaké zdroje a požadující přidělení dalšího zdroje, nemůže zdroje získat okamžitě, pak se uvolní všechny tímto procesem držené zdroje „odebrané“ zdroje se zapíší do seznamu zdrojů, na které proces čeká proces bude obnoven, pouze jakmile může získat jak jím původně držené zdroje, tak jím nově požadované zdroje Zabránění kruhovému pořadí zavedeme úplné uspořádání typů zdrojů a každý proces bude žádat o prostředky v pořadí daném vzrůstajícím pořadí výčtu

PB 169 Počítačové sítě a operační systémy41 Obcházení uváznutí Systém musí mít nějaké dodatečné apriorní informace Nejjednodušší a nejužitečnější model požaduje, aby každý proces udal maxima počtu prostředků každého typu, které může požadovat Algoritmus řešící obcházení uváznutí dynamicky zkouší, zda stav systému přidělování zdrojů zaručuje, že se procesy v žádném případě nedostanou do cyklické fronty čekání Stav systému přidělování zdrojů se definuje počtem dostupných a přidělených zdrojů a maximem žádostí procesů

PB 169 Počítačové sítě a operační systémy42 Detekce uváznutí Umožníme, aby došlo k uváznutí Ale toto uváznutí detekujeme Aplikujeme plán obnovy

PB 169 Počítačové sítě a operační systémy43 1 instance prostředku každého typu Udržuje se graf čekání (wait-for graph) uzly jsou procesy P i → P j jestliže P i čeká na P j Periodicky se provádí algoritmus, který v grafu hledá cykly Algoritmus pro detekci cyklu v grafu požaduje provedení n 2 operací, kde n je počet uzlů v grafu

PB 169 Počítačové sítě a operační systémy44 Grafy Graf přidělení zdrojů Odpovídající graf čekání

PB 169 Počítačové sítě a operační systémy45 Obnova: ukončení procesu Násilné ukončení uváznutých procesů Násilně se ukončuje jednotlivě proces po procesu, dokud se neodstraní cyklus Čím je dáno pořadí násilného ukončení? priorita procesu doba běhu procesu, doba potřebná k ukončení procesu prostředky, které proces použil prostředky, které proces potřebuje k ukončení počet procesů, které bude potřeba ukončit preference interaktivních nebo dávkových procesů

PB 169 Počítačové sítě a operační systémy46 Obnova: nové rozdělení prostředků Výběr oběti: minimalizace ceny Návrat zpět (rollback) – návrat do některého bezpečného stavu, proces restartujeme z tohoto stavu Stárnutí – některý proces může být vybírán jako oběť trvale řešení: do cenové funkce zahrneme počet restartů (rollbacků)