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

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

ochrana před uváznutím prevence uváznutí

Podobné prezentace


Prezentace na téma: "ochrana před uváznutím prevence uváznutí"— Transkript prezentace:

1 11. přednáška http://www.uai.fme.vutbr.cz/~vdumek/ 30. 4. 2013
ochrana před uváznutím prevence uváznutí hierarchické uspořádání prostředků obcházení uváznutí bankéřův algoritmus detekce zablokování správa I/O zařízení Win32 API Studijní materiály najdete na adrese:

2 Ochrana před uváznutím
Neobsahuje cyklus Obsahuje cyklus R1 R2 R3 R4 Ochrana před uváznutím - prevence: ruší se platnost některé nutné podmínky, k uváznutí nikdy nedojde - detekce: detekuje se existence uváznutí, řeší se následky - obcházení: zamezuje se současné platnosti nutných podmínek, prostředek se nepřidělí, pokud by hrozilo uváznutí, hrozí stárnutí - ignorace: nejjednodušší metoda („pštrosí metoda“), pokud k uváznutí dojde – reboot, nelze použít pro životně kritické systémy

3 Prevence uváznutí - konzervativní politika, omezuje se přidělování prostředků, přímé a nepřímé metody - nepřímé metody – zneplatnění některé nutné podmínky (virtualizace prostředků, přidělení všech prostředků najednou, odebírání prostředků) - přímé metody – nepřipuštění platnosti postačující podmínky (uspořádání pořadí přidělování prostředků) - virtualizace – nepřímá metoda, rušení vzájemné výlučnosti, mimo spooling nepoužitelné - požadování všech prostředků najednou – nepřímá metoda, při žádosti o prostředek nesmí proces nic vlastnit, nebezpečí stárnutí procesu, vhodné pro procesy s jednou nárazovou činností, neefektivní, možná prodleva při zahájení procesu - odebírání prostředku – jen když lze uchovat stav prostředku (odebírání procesoru, paměti), ruší se vlastnost nepředbíhatelnosti procesů při používání prostředku, dvě možnosti (odmítnutý proces uvolní vše co vlastní a požádá o vše znovu, pokud požadovaný prostředek vlastní jiný proces, je tento požádán o uvolnění všeho a o znovupožádání o vše), použitelné pro prostředky s uchovatelným a obnovitelným stavem, režijní ztráty, možnost cyklického restartu - preventivní metody jsou jednoduché, neefektivní

4 Princip hierarchického uspořádání prostředků
1 2 3 4 5 6 7 8 Uspořádané prostředky volný prostředek proces 5487 proces 1136 proces 25 - proces 5487 nemůže být zablokován, může žádat pouze o prostředek 0, 1 nezablokovatelný - hierarchická strategie se často kombinuje se strategií úplného vyhraze- ní (na jedné úrovni nebývá jeden prostředek, ale celá skupina - stále příliš defenzívní, lze zlepšit vhodnou volbou posloupnosti pro- středků

5 Obcházení uváznutí zamezuje současné platnosti nutných podmínek připouští se tak více souběžnosti než při prevenci dva přístupy – nespustí se proces, jehož požadavky by mohly vést k uváznutí, neprovede se přidělení prostředku, pokud by to mohlo vést k uváznutí prostředky jsou podle svého typu rozděleny do kategorií každý typ prostředku se vyskytuje v jistém počtu exemplářů, rozdělení závisí na konfiguraci systému (tiskárny podle kvality tisku, disky podle rychlosti, různé komunikační kanály, …) musí se znát maximum požadovaných prostředků každého procesu, aby mohl proces existovat, musí deklarovat předem svoje C(j, i)

6 Obcházení uváznutí nový proces smí vzniknout jen když platí
existující prostředky pro všechny typy prostředků i a procesy j požadované prostředky pro všechny typy prostředků i a procesy j počet přidělených prostředků typu i procesu j souhrnný počet dostupných prostředků typu i počet prostředků typu i potřebných pro dokončení procesu j souhrnný počet nevyžádaných prostředků typu i nový proces smí vzniknout jen když platí

7 Obcházení uváznutí - nejvýhodnější je nalezení strategie, která by neomezovala, dokud se neobjeví nebezpečí zablokování, přidělení prostředku je pozastaveno až do okamžiku, kdy se situace zlepší - bankéřův algoritmus - název úlohy ze situace v reálném světě (bankéř přidělující finanční prostředky v různých měnách, podmínkou je znalost maximálních požadavků zákazníků - operační systém zná požadavky procesů na čerpání prostředků) pokud existuje alespoň jedno pořadí požadavků, při kterém nedojde k zablokování (všichni klienti banky budou moci splnit své záměry), může operační systém toto pořadí vynutit selektivním splňováním požadavků bankéř prostředek přidělí, pokud systém po přidělení zůstane v bezpečném stavu proces vznikne jen tehdy, když lze uspokojit všechny jeho požadavky (v jakémkoli pořadí)

8 Bankéřův algoritmus máme 3 typy prostředků následujícího složení:
R(1) = 9 R(2) = 3 R(3) = 6 - 4 procesy s počátečním stavem S: požadováno, Cji přiděleno, Aji dostupné, Vi i/j R1 R2 R3 P1 3 2 1 P2 6 5 P3 4 P4 - předpokládejme, že P2 požaduje Q = (1, 0, 1)

9 Bankéřův algoritmus výsledný stav po uspokojení požadavku P2 Q = (1, 0, 1) požadováno, Cji přiděleno, Aji dostupné, Vi i/j R1 R2 R3 P1 3 2 1 P2 6 P3 4 P4 5,1,1 1,0,1 6,1,2 + 1,1,2 0,1,1 - - stav je bezpečný pro posloupnost { P2, P1, P3, P4} (po dokončení P2 máme W(V) = (6, 2, 3), což umožňuje dokončení procesu P1) - požadavek se uspokojí

10 Bankéřův algoritmus pokud P1 požaduje Q = (1, 0, 1), je výsledný stav:
požadováno, Cji přiděleno, Aji dostupné, Vi i/j R1 R2 R3 P1 3 2 1 P2 6 5 P3 4 P4 1,0,0 1,0,1 2,0,1 + 1,1,2 0,1,1 - - stav není bezpečný, každému procesu by chyběla instance prostředku R1 - požadavek se odmítne, P1 bude čekat

11 Detekce zablokování - liberální politika, každý dostává co chce a kdy chce, existenci uváznutí periodicky testuje operační systém - výhoda: žádný proces nemusí čekat na své zahájení, nevýhoda: nutnost řešit uváznutí a posteriori - řešení: zrušení všech uváznutých procesů (nejčastěji použitá metoda), návrat uváznutých procesů k poslednímu kontrolnímu bodu (možnost opakování situace), postupně rušit uváznuté procesy (podle spotřebovaného času procesoru, podle času do dokončení procesu, podle priority, podle množství vlastněných prostředků), postupně předbíhat uváznuté procesy

12 Správa I/O zařízení (periferií)
Klasifikace I/O zařízení: - pro lidské rozhraní (komunikace s uživatelem, terminály s displeji, klávesnice, myš, tiskárna) pro strojové rozhraní (disky, pásky, řadiče, senzory, komunikace modemy, komunikace síťovými rozhraními) - rozdíly klasifikovaných zařízení: v rychlosti přenosu dat, ve složitosti ovládání, v objemech přenosu (byte – desítky KB), v kódování dat, v chybovosti a reakcích na chyby - znaková (klávesnice, displeje, terminály, tiskárny, myši, plottery, tablety), bloková (disky, pásky), speciální (časovač, speaker, …) - požadavek transparentnosti přístupu k zařízením (stejný přístup jako k souborům, až při běhu programu lze určit, kam výstup půjde) - přidávání nových druhů zařízení: zásah do jádra OS (Unix), instalovatelné ovladače zařízení, kombinace obou způsobů - ovladače zařízení mají tři části: obslužný program přerušení, část závislá na zařízení, část nezávislá na zařízení (správce vyrovnávací paměti, přidělení jména zařízení, …)

13 Správa I/O zařízení (periferií)
- vstupní a výstupní zařízení - od notoricky známých až po zbraně, traktory, obráběcí stroje, vlhkoměry, … - řízení periferií pomocí speciálních I/O obvodů - kanálů, jedná se o komunikaci s jiným procesorem - hlavním úkolem operačního systému není přímé ovládání periferie, ale její korektní přidělování jednotlivým procesům, služby pro manipulaci s periferií jsou na daleko vyšší úrovni, než jakou nabízí samo zařízení, sdílení a ochrana zařízení - tyto služby nemusí být součástí operačního systému, mohou být soustředěny ve sdílených knihovnách - rozeznáváme zařízení: vyhrazená, sdílená, společná - vyhrazená: nemohou sloužit více procesům současně, pro každé takové zařízení je potřeba správce, který využívá různých technik

14 Správa I/O zařízení (periferií)
Vyhrazená zařízení - vyhrazování zařízení - základní a nejjednodušší mechanismus, správce nedovolí používat zařízení nikomu, pokud je první proces neuvolní - zařízení bývají přidělována podle pořadí požadavků, jedná se o obdobu binárních semaforů v kritických sekcích, jednoduché s vysokou pravděpodobností zablokování - virtualizace - přesvědčení procesu, že má k dispozici neomezený počet vyhrazených zařízení (prakticky existuje omezení velikostí odkládacího prostoru), každý proces potom může dostat svoje zařízení - zařízení se přidělí systémovému procesu (serveru), který je bude ovládat a nabízet svým klientům (ostatním procesům), pro obrazovku zvláštní okno, zvukový výstup promíchán, pro tiskárnu se použije spooling (speciální soubor na disku), virtualizaci nemá význam používat pro její náročnost u málo frekventovaných zařízení

15 Správa I/O zařízení (periferií)
Sdílená zařízení - svoji kapacitu mohou dělit na části a každá z nich je k dispozici jinému procesu, není je potřeba vyhrazovat, ale je potřeba správce, který je bude rozdělovat a starat se o přidělování jednotlivých částí Společná zařízení - mohou sloužit bez jakéhokoliv problému více procesům, při vhodné technické realizaci nepotřebují správce (hodiny, mikrofon, …), pokud správce je, je velice triviální, pokud má zařízení nabízet širší služby, je třeba vytvořit server pro správu tohoto zařízení, které se potom chová jako vyhrazené (možnost virtualizace) hlavním úkolem správce zařízení je starat se o jeho přidělení jednotlivým procesům, nikoliv jeho přímým ovládáním - procesy neovládají samy zařízení: zařízení je ovládáno serverem nebo je virtualizováno, vyšší ovládání zařízení pomocí sdílených knihoven

16 Platformy rozhraní Win32 API
- API - Application Programming Interface, množina funkcí - implementace na platformách: Win32s - mapovací vrstva z 32 b. na 16 b., pro Windows 3.x, používá mechanismus roubování (thunking), konvertuje 32 b. parametry na 16 b., platforma Win32s nerozšiřuje možnosti operačního systému, řada funkcí je realizována jako slepé (stub) - hned se vrátí a hlásí chybu (16 b. Win nepodporují toky -> funkce CreateThread vrací NULL), některá rozšíření (strukturovaná obsluha výjimek, částečná implementace paměťově mapovaných souborů), vytvořena pro vytváření 32 b. aplikací ještě před příchodem oficiální platformy, nijak zvlášť se neujala. Windows NT (Win 32 pro 64 bitů) platforma s výhledem do budoucnosti, žádné pozůstatky z MS DOSu, značné nároky na velikost paměti a disku, velice robustní, brání přímému přístupu k HW počítače, přenositelnost (C++, MIPS, Alpha, PowerPC) – potřeba překladu pro daný procesor, jádro a HAL (Hardware Abstraction Layer) je potřeba přepsat speciálně pro jinou architekturu (assembler), podpora více procesorů. Windows 95 (Windows 98) - první 32 b. platforma s širokým použitím, lepší implementace Win32 API než Win32s (nikoliv úplná), HW nedostatečný pro Windows NT, omezená podpora pro funkce bezpečnostní, sledování událostí, ladící, pro práci s registry, velmi přijatelná a výkonná. Windows CE - pro kapesní počítače, bez podpory virtuální paměti, podpora paměťově mapovaných souborů, strukturovaná obsluha výjimek, registry, DLL, preemptivní multitasking, přenositelná.


Stáhnout ppt "ochrana před uváznutím prevence uváznutí"

Podobné prezentace


Reklamy Google