Principy operačních systémů Lekce 3: Virtualizace paměti
Virtuální paměť Adresní prostor paměti je uspořádán logicky jinak, nebo je dokonce větší než je fyzická operační paměť RAM Rozšíření vnitřní paměti o oblast na vnějším paměťovém médiu (obvykle na HDD) Důvod: odstranění hlavních nedostatků většiny reálných metod přidělování paměti, tj. nemožnost spustit proces, jehož požadavky na paměť přesahují momentálně volnou operační paměť Procesor rozlišuje mezi virtuálními adresami (pracují s nimi strojové instrukce, resp. běžící proces) a fyzickými adresami paměti (odkazují na konkrétní adresové buňky paměti RAM). Převod mezi virtuální a fyzickou adresou je zajišťován samotným procesorem (je nutná hardwarová podpora) nebo samostatným obvodem. Lekce 3: Virtualizace paměti 2
Jednotka řízení paměti MMU = Memory Management Unit Dříve samostatný mikroprocesor mezi CPU a RAM, nyní součást CPU Zajišťuje přístup procesoru k operační paměti, překlad virtuálních adres na fyzické, ochranu paměti aj. Provádí stránkování paměti, tj. rozdělení logické paměti na stránky stejné velikosti Lekce 3: Virtualizace paměti 3
Požadavky na procesor Při virtualizaci paměti musí CPU být schopen Obsloužit přerušení Zopakovat přerušený přístup do paměti Přerušení procesor musí na podnět MMU přerušit proces, který právě zpracovává, obsloužit přerušení a následně se vrátit ke zpracovávanému programu Zopakování přístupu do paměti pokud se procesor pokusí pracovat s pamětí, která fyzicky neexistuje, MMU přeruší proces. Správce paměti + MMU obslouží přerušení doplní neexistující paměť. Procesor musí následně zopakovat pokus o přístup do paměti a pokračovat v procesu. Lekce 3: Virtualizace paměti 4
Virtuální paměť Fyzická paměť je rozdělena na rámce Logická paměť je rozdělena na stránky Stránka: má přidělen rámec v operační paměti nebo je odložena do vnější paměti (na HD) Některé stránky nelze odložit (systémové procesy) Lekce 3: Virtualizace paměti 5
LAP a FAP Lekce 3: Virtualizace paměti 6
Procesy ve virtuální paměti Lekce 3: Virtualizace paměti 7
Virtuální paměť je větší než reálná (FAP) Lekce 3: Virtualizace paměti 8
Proces žádá o stránku 4 Lekce 3: Virtualizace paměti 9
Určení optimální velikosti stránek Lekce 3: Virtualizace paměti 10
Stránkování Na žádost Stránka se zavádí jako jako důsledek přerušení typu výpadek stránky Předstránkování Počítá se s tím, že proces bude brzy pravděpodobně odkazovat na sousední stránku na sekundární paměti (např. Win XP) Lekce 3: Virtualizace paměti 11
Stránkování Lekce 3: Virtualizace paměti 12
Stránkování Lekce 3: Virtualizace paměti 13
Stránkování Odkaz na stránku (či segment) mimo operační paměť způsobí přerušení výpadkem stránky a následuje přibližně toto: OS pozastaví proces, kterému chybí stránka. OS spustí modul pro zavedení chybějící stránky do operační paměti a v případě nutnosti (je-li operační paměť plná) odstraní z fyzické paměti stránku podle jedné z uvedených strategií. Během přenosu požadované stránky je proces, kterému chybí stránka nadále pozastaven a běží jiné procesy. Po zavedení stránky je původní proces označen jako připravený a čeká na přidělení procesoru. Lekce 3: Virtualizace paměti 14
Politika nahrazování (výběru oběti) Lekce 3: Virtualizace paměti 15
Metody výběru oběti Lekce 3: Virtualizace paměti 16
Metody výběru oběti FIFO = First In First Out OPT = Optimum LRU = Least Recently Used LRU s druhou šancí Čítací algoritmy LFU = Least Frequently Used MFU = Most Frequently Used Lekce 3: Virtualizace paměti 17
FIFO = First In First Out Lekce 3: Virtualizace paměti 18
OPT = optimální algoritmus Lekce 3: Virtualizace paměti 19
LRU = Least Recently Used Lekce 3: Virtualizace paměti 20
Implementace LRU Lekce 3: Virtualizace paměti 21
Aproximace LRU Lekce 3: Virtualizace paměti 22
Algoritmus Druhá šance Lekce 3: Virtualizace paměti 23
Čítací algoritmy Lekce 3: Virtualizace paměti 24
Výhody a nevýhody virtuální paměti Výhody: Paměť, kterou má běžící proces k dispozici, není omezena fyzickou velikostí instalované paměti. Je omezeno plýtvání pamětí, kterou proces ve skutečnosti nevyužije nebo ji začne využívat až později. Každý běžící proces má k dispozici svou vlastní paměťovou oblast, ke které má přístup pouze on sám a nikdo jiný. Paměť jednotlivým procesům lze tak organizovat, že se paměť z hlediska procesu jeví jako lineární, přestože ve skutečnosti může být umístěna na různých místech vnitřní paměti i odkládacího prostoru. Nevýhody: Fragmentace uvnitř stránek HW závislé řešení Při nedostatku operační paměti může vést ke zhoršení výkonu (časté výpadky stránek) Lekce 3: Virtualizace paměti 25
Segmentace se stránkováním na žádost V současnosti nejpoužívanější metoda Proces má přiděleno několik segmentů, každý segment se může nacházet na několika stránkách. Není stránkován celý paměťový prostor procesu jako celek, ale jeho jednotlivé segmenty Adresa objektu v LAP je dána: Určením segmentu Číslem stránky Offsetem v rámci stránky Fyzická adresa v paměti = číslo stránky x délka stránky + offset Správce paměti u každého procesu vede tabulku segmentů, u každého segmentu eviduje seznam stránek, na nichž se nachází V tabulce stránek je uvedeno, zda má stránka přidělen rámec nebo je odložena na disku Lekce 3: Virtualizace paměti 26
Segmentace se stránkováním na žádost Lekce 3: Virtualizace paměti 27
Segmentace se stránkováním na žádost Výhody Všechny výhody metody stránkování na žádost Možnost sdílení segmentů Nevýhody Složitost implementace HW závislé řešení Lekce 3: Virtualizace paměti 28
Přidělování rámců procesům Lekce 3: Virtualizace paměti 29
Thrashing (problém výprasku) Lekce 3: Virtualizace paměti 30
Jak reálně řídit virtuální paměť Lekce 3: Virtualizace paměti 31
Model pracovní množiny Lekce 3: Virtualizace paměti 32