Cílem: navýšit kapacity operační paměti, abych mohl mít současně spuštěno více procesů.
Slouží k poskytování více operační paměti aplikacím, než kolik jí je fyzicky instalováno.
přerušení + časovač (sleduje, jak dlouho proces počítá; proces počítá do přerušení časovače, po té OS předá řízení jinému procesu, atd.)
V UNIXU jsou úrovně priorit, jsou dynamické:
čím déle proces počítá, tím má nižší prioritu; jakmile klesne priorita na minimum, tak se nastaví na maximum,
vyšší prioritu získá proces, používá-li V/V zařízení. (interaktivní programy, např. textový editor)
Obsah celé virtuální paměti si uložím na disk a beru pouze jednotlivé části do operační paměti.
Jak OP tak VP, je rozdělena na pevné stejně velké prostory, v paměti se nazývají Rámec (Frame) a na disku Stránka (Page).
Základní velikost stránky (Page) = 4KB
Do volných rámců se libovolně kopírují jednotlivé stránky.
Musíme mít způsob, jak najít rámec s hledanou adresou.
Každý odkaz na paměť obsahuje virtuální adresu:
S virtuální adresou pracuje programátor.
Virtualizace nám musí
Virtuální adresa se skládá ze 2 částí:
12 dolních bitů: adresa na stránce = je stejná jako v reálné adrese
nad tím: pořadí stránky na virtuální adrese
Tabulka stránek/Tabulka rámců: určuje zda daná stránka je v reálné paměti; adresa, kde na disku je; číslo, ve kterém rámci je načtena
Strefili jsme se (hit) = paměť je v reálné adrese.
Nestrefili jsme se (miss) = paměť není v reálné adrese, musíme stránku zkopírovat do rámce.
Generuje přerušení výpadek stránky (page fault) = program ukazuje na adresu, která není v paměti. (Vnitřní přerušení = procesor generuje sám, dělení nulou, …)
Není-li žádný rámec volný, musíme vybrat jeden rámec za “obět”. Musím zkopírovat danou stránku v rámci na adresu na disku. (Lze se vyhnout kopírování stránky zpět, v případě, že jsem stránku nijak nezměnil. = V tabulce se definuje další příznak (bit) “špinavosti”, určuje, zda-li jsem danou stránku upravil.)
Virtualizace paměti = docílení většího prostoru OP pro spouštění aplikací
Segmentace = (mechanismus), rozdělení segment s kódem (instrukce), segment s daty, segment se zásobníkem; pro každý segment jsme si stanovili určité pravidla, omezení odkud pokud je daný segment