* musí se dodržet při používání opakovaně dostupných zdrojů
* ne postupná alokace
* musí se zaručit, aby proces žádající nějaký zdroj žádný
jiný zdroj nevlastnil
* proces musí požádat o zdroje a obdržet je dříve než se
spustí jeho běh nebo o ně smí žádat pouze tehdy, když
žádné zdroje nevlastní
* důsledek: nízká efektivita využití zdrojů, možnost
stárnutí
* ne předbíhání
* jestliže proces držící nějaké zdroje a požaduje přidělení
dalsího zdroje, která mu nelze přidělit okamžitě, pak se
uvolní vsechny, tímto procesem držené zdroje v tomto okamžiku
* "odebrané" zdroje se zapísí do seznamu zdrojů, na které proces
čeká
* proces bude obnoven pouze když může získat jak jím původně
držené zdroje, tak jím požadované zdroje
* ne zacyklení pořadí
* zavede se úplné uspořádání typů zdrojů a každý proces
požaduje prostředky v pořadí daném vzrůstajícím pořadí
vyčtu
Reference: 09 - Uváznutí, str.16,17, skripta str. 49,50
18) Vysvětlete princip zobrazování logické adresy na fyzickou adresu
tabulkovou metodou na bázi stránkovaného segmentování.
* STBR - registr s odkazem na umístění ST (Segment Table) v paměti
* Toto se skládá ze dvou částí. Jedna je popsána v otázce č. 27
(Vysvětlete princip zobrazování logické adresy na fyzickou adresu
tabulkovou metodou na bázi segmentování) a druha je vysvětlena
v otázce č. 9 (Vysvětlete princip zobrazování logické adresy na
fyzickou adresu tabulkovou metodou na bázi stránkování). Prostě
každý segment je jestě rozdělen na stránky, tj. každý segment
má svou vlastní page table.
Reference: 10 - Správa paměti, str.34, skripta str. 60
19) Charakterizujte privilegovaný a uživatelský režim činnosti
procesu a zdůvodněte používaní dvou režimů.
* uživatelský režim - připoustí se provádění omezeného
repertoáru instrukcí (např. ne I/O instrukce)
* privilegovaný režim - připoustí se provádění plného
repertoáru instrukcí
* důvod: sdílení systémových zdrojů požaduje, aby OS měl
záruku, že nesprávný program negativně neovlivní běh ostatních
programů. Z pravomoci (a odpovědnosti) uživatelských programů se
vyjímají např. I/O operace, operace ovlivňující stav
systémových zdrojů (registry ochrany, ...)
Reference: 02 - Hardwarová podpora OS, str.20,21, skripta str. 12
20) Nakreslete stavový diagram procesu s odkládáním procesu a
stručně charakterizujte jednotlivé stavy a přechody mezi stavy.
Stavy:
* odložený čekající
* odložený připravený
* dalsí stavy popsány v otázce č. 11
* odložené stavy vznikají, když je RAM plná a OS si potřebuje
některé procesy "odswapnout" na disk
Přechody mezi stavy:
* čekající → odložený čekající - vsechny procesy jsou
čekající a OS dělá prostor pro přidělení běžícímu procesu
* odložený čekající → odložený připravený - stala se nějaká
očekávaná událost
* odložený připravený → připravený - fronta připravených se
vyprázdnila (skoro)
* připravený → odložený připravený - (nepravděpod.) nejsou
čekající procesy a je potřeba uvolnit RAM
* o tom které procesy se stanou odloženými a které odložené se
stanou připravenými rozhoduje střednědobý plánovač
Reference: 05 - Hardwarová podpora, str.14,15, skripta str. 28
21) Zdůvodněte používání odkládání (swapping) procesu.
* každý proces se alespoň jednou musí dostat do RAM, ta ale není
dost velká, i když se použije virtualizace paměti, přílis mnoho
procesů v RAM snižuje výkonnost
* odložené stavy vznikají, když je RAM plná a OS si potřebuje
některé procesy "odswapnout" na disk
Reference: 05 - Procesy, str.12, skripta str. 27
22) Vysvětlete heuristiku odhadování časových dílů přidělovaných
plánovačem procesu na bázi exponenciálního průměrkování.
* délku přístí dávky CPU procesu lze pouze odhadnout, to se učiní
na základě znalosti historie
* musí se znát délky předchozích dávek CPU
* použije se exponenciální průměrování: τ[n+1] = α t[n] +(1-
α) τ[n
]* Kde: τ[n+1] - odhadnutá hodnota přístí dávky CPU
* t[n] - skutečná délka n-té dávky CPU
* α, 0 ≤ α ≤ 1 - když α=0 tak se historie ignoruje; když
α=1 tak τ[n+1]=t[n
]* když formuli rozvineme dostáváme τ[n+1] = α t[n] +(1- α) α
τ[n-1]+(1- α)^2 α τ[n-2]+(1- α)^3 α τ[n-3]+...
* míra ovlivnění odhadu dávkou n-x klesá exponenciálně s x
Reference: 05 - Plánování činnosti procesoru, str.14,15, skripta str.
38
23) Vysvětlete princip řesení problému kritické sekce pomocí
instrukce typu SWAP.
+------------------------------------------------------------------------+
| | Proces P[i]: |
| | |
| Instrukce swap atomicky vymění obsah dvou | do { |
| proměnných: | |
| | key = true; |
| void Swap (boolean &a, boolean &b){ | |
| | while (key == true) |
| boolean temp = a; | |
| | Swap(lock,key); |
| a = b; | |


































































Poslední komentáře
2 roky 11 týdnů zpět