16
11. přednáška 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: http://www.uai.fme.vutbr.cz/~vdumek/

11. přednáška 30. 4. 2013 ochrana před uváznutím prevence uváznutí

Embed Size (px)

DESCRIPTION

11. přednáška 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: http://www.uai.fme.vutbr.cz/~vdumek/. Neobsahuje cyklus. - PowerPoint PPT Presentation

Citation preview

Page 1: 11. přednáška 30. 4. 2013 ochrana před uváznutím prevence uváznutí

11. přednáška30. 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:

http://www.uai.fme.vutbr.cz/~vdumek/

Page 2: 11. přednáška 30. 4. 2013 ochrana před uváznutím prevence uváznutí

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

P1 P3P2

Neobsahuje cyklus

P1 P3P2

Obsahuje cyklus

R1

R2

R3

R4

R1

R2

R3

R4

Page 3: 11. přednáška 30. 4. 2013 ochrana před uváznutím prevence uváznutí

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í

Page 4: 11. přednáška 30. 4. 2013 ochrana před uváznutím prevence uváznutí

1

2

3

0

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ů

Princip hierarchického uspořádání prostředků

Page 5: 11. přednáška 30. 4. 2013 ochrana před uváznutím prevence uváznutí

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)

Page 6: 11. přednáška 30. 4. 2013 ochrana před uváznutím prevence uváznutí

Obcházení uváznutí

)(iR

),( ijC

),( ijA

),(),(),( ijAijCijN

existující prostředky

požadované prostředky

počet přidělených prostředků typu i

procesu j

pro všechny typy prostředků i a procesy j

pro všechny typy prostředků i a procesy j

souhrnný počet dostupných prostředků

typu i

počet prostředků typu i potřebných pro

dokončení procesu j

nový proces smí vzniknout jen když platí

souhrnný počet nevyžádaných

prostředků typu i

j

ijAiRiV ),()()(

j

ijCiRiU ),()()(

)(),( iUijC

Page 7: 11. přednáška 30. 4. 2013 ochrana před uváznutím prevence uváznutí

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

Page 8: 11. přednáška 30. 4. 2013 ochrana před uváznutím prevence uváznutí

Bankéřův algoritmus

požadováno, Cji přiděleno, Aji dostupné, Vi

i/j R1 R2 R3 R1 R2 R3 R1 R2 R3

P1 3 2 2 1 0 0 1 1 2

P2 6 1 3 5 1 1

P3 3 1 4 2 1 1

P4 4 2 2 0 0 2

- 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:

- předpokládejme, že P2 požaduje Q = (1, 0, 1)

Page 9: 11. přednáška 30. 4. 2013 ochrana před uváznutím prevence uváznutí

Bankéřův algoritmus

požadováno, Cji přiděleno, Aji dostupné, Vi

i/j R1 R2 R3 R1 R2 R3 R1 R2 R3

P1 3 2 2 1 0 0 0 1 1

P2 6 1 3 6 1 2

P3 3 1 4 2 1 1

P4 4 2 2 0 0 2

- výsledný stav po uspokojení požadavku P2 Q = (1, 0, 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í

5,1,11,0,16,1,2

+1,1,21,0,10,1,1

-

Page 10: 11. přednáška 30. 4. 2013 ochrana před uváznutím prevence uváznutí

Bankéřův algoritmus

požadováno, Cji přiděleno, Aji dostupné, Vi

i/j R1 R2 R3 R1 R2 R3 R1 R2 R3

P1 3 2 2 2 0 1 0 1 1

P2 6 1 3 5 1 1

P3 3 1 4 2 1 1

P4 4 2 2 0 0 2

- pokud P1 požaduje Q = (1, 0, 1), je výsledný stav:

- stav není bezpečný, každému procesu by chyběla instance prostředku R1

- požadavek se odmítne, P1 bude čekat

1,0,01,0,12,0,1

+1,1,21,0,10,1,1

-

Page 11: 11. přednáška 30. 4. 2013 ochrana před uváznutím prevence uváznutí

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

Page 12: 11. přednáška 30. 4. 2013 ochrana před uváznutím prevence uváznutí

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

Page 13: 11. přednáška 30. 4. 2013 ochrana před uváznutím prevence uváznutí

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

Page 14: 11. přednáška 30. 4. 2013 ochrana před uváznutím prevence uváznutí

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í

Page 15: 11. přednáška 30. 4. 2013 ochrana před uváznutím prevence uváznutí

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

Správa I/O zařízení (periferií)

Page 16: 11. přednáška 30. 4. 2013 ochrana před uváznutím prevence uváznutí

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