Principy počítačů a operačních systémů Operační systém prostředky, zablokování
Základní pojmy Prostředek cokoliv, k čemu je potřeba hlídat přístup např.hwzařízení, záznamy v DB Odnímatelné vs. neodnímatelné lze/nelze odejmout bez následků? Požadavky na využití neodnímatelných prostředků mohou způsobit ů zablokování
Práce s prostředky Žádost blokující Práce s prostředkem výlučná Uvolnění prostředku dobrovolné automatické
Zablokování Množina procesů je zablokována, jestliže každý proces z této množiny čeká na událost, kterou může způsobit jen jiný ýproces z této množiny.
Coffmanovy podmínky zablokování 1. Vzájemné vyloučení (Exclusive use) prostředek vlastní právě jeden proces nebo je volný 2. Drž a čekej (Hold and wait) proces může vlastnit prostředek a žádat o další 3. Neodnímatelnost (No preemption) přidělené prostředky nemohou být odebrány 4. Čekání do kruhu (Cyclic dependency) č kjí tř dk k h k ždýčlá k procesy čekají na prostředky v kruhu, každý článek čeká na prostředek vlastněný dalším článkem
Model zablokování Orientovaný graf uzly reprezentují prostředky procesy hrany reprezentují e e žádost o prostředek vlastnění prostředku R A A S R B
Vznik zablokování A R S B
Řešení problému zablokování pštrosí algoritmus předstíráme, že problém neexistuje detekce a zotavení (detection and recovery) řešíme, až když nastane problém vyhýbání se zablokování (avoidance) opatrným přidělováním zabráníme realizaci všech Coffmanových podmínek předcházení zablokování (prevention) napadení jedné z Coffmanových podmínek
Pštrosí algoritmus Zablokování se nedetekuje nezabraňuje se mu neodstraňuje se Uživatel sám rozhodne kill -9 bez režie OS Unix, Windows
Detection and Recovery Detection Hledání kružnice v grafu Recovery odebrání prostředku na přechodnou ř hd db dobu, pod ddhld dohledem operátora zabíjení nepohodlných procesů proces z cyklu závislostí proces mimo cyklus vlastnící identický prostředek (je-li více stejných prostředků)
Recovery checkpointing/rollback OS ukládá stav procesů restart vybraného procesu v předchozím stavu ztráta vykonané práce transakční zpracování typické spíše pro databázové systémy (v OS zdržuje)
Avoidance výchozí stav počet dostupných a přidělených prostředků procesy nejsou zablokovány přechod do následujícího stavu při přidělení ídalších prostředkůř pouze pokud je následující stav bezpečný existuje pořadí, v jakém uspokojit všechny procesy (nebezpečný stav - dobré pořadí přidělování prostředků neexistuje)
Bankéřův algoritmus Bankéř disponuje jistou částkou a slíbil různým zákazníkům různé úvěry, v součtu přesahující disponibilní částku předpokladá, že zákaznící nebudou potřebovat úvěr v plné výši všichni najednou poskytne úvěr pouze zůstane-li banka v bezpečném stavu není zablokováno existuje cesta, jak postupně zákazníky uspokojit
Bankéřův algoritmus - příklad Má Max Má Max Má Max A 0 6 A 1 6 A 1 6 B 0 5 B 1 5 B 2 5 C 0 4 C 2 4 C 2 4 D 0 7 D 4 7 D 4 7 Volné: 10 bezpečný Volné: 2 bezpečný Volné: 1 nebezpečný
Prevention Napadení některé z Coffmanových podmínek nastolení takového režimu, že je vyloučeno, aby vybraná podmínka byla splněna (tj. aby nastala taková situace) nelze aplikovat obecně, závisí na typu prostředku
Prevention 1. Vzájemné vyloučení (Exclusive use) prostředek vlastní právě jeden proces nebo je volný umělé vytvoření neexkluzivity např. ř spooling iluze výlučného č přístupu
Prevention 2. Drž a čekej (Hold and wait) proces může vlastnit prostředek a žádat o další o všechny prostředky požádat před startem před ř další žádostí vše uvolnit
Prevention 3. Neodjímatelnost (No preemption) přidělené prostředky nemohou být odebrány nedělá se, vede ke zmatkům
Prevention 4. Čekání do kruhu (Cyclic dependency) procesy čekají na prostředky v kruhu, každý článek čeká na prostředek vlastněný dalším článkem možnost žádat pouze o 1 prostředek dk očíslování prostředků, možno žádat pouze o prostředky s vyšším číslem pořadí nemusí být globální, stačí v rámci množiny prostředků sdílených současně v nějakém kontextu zámky v subsystémech operačního systému