Principy operačních systémů
Lekce 3: Virtualizace paměti
Principy operačních systémů – Ing. Nulíček Vladimír
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
Principy operačních systémů – Ing. Nulíček Vladimír
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
Principy operačních systémů – Ing. Nulíček Vladimír
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
Principy operačních systémů – Ing. Nulíček Vladimír
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
Principy operačních systémů – Ing. Nulíček Vladimír
LAP a FAP
Lekce 3: Virtualizace paměti
6
Principy operačních systémů – Ing. Nulíček Vladimír
Procesy ve virtuální paměti
Lekce 3: Virtualizace paměti
7
Principy operačních systémů – Ing. Nulíček Vladimír
Virtuální paměť je větší než reálná
(FAP)
Lekce 3: Virtualizace paměti
8
Principy operačních systémů – Ing. Nulíček Vladimír
Proces žádá o stránku 4
Lekce 3: Virtualizace paměti
9
Principy operačních systémů – Ing. Nulíček Vladimír
Určení optimální velikosti stránek
Lekce 3: Virtualizace paměti
10
Principy operačních systémů – Ing. Nulíček Vladimír
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
Principy operačních systémů – Ing. Nulíček Vladimír
Stránkování
Lekce 3: Virtualizace paměti
12
Principy operačních systémů – Ing. Nulíček Vladimír
Stránkování
Lekce 3: Virtualizace paměti
13
Principy operačních systémů – Ing. Nulíček Vladimír
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
Principy operačních systémů – Ing. Nulíček Vladimír
Politika nahrazování (výběru oběti)
Lekce 3: Virtualizace paměti
15
Principy operačních systémů – Ing. Nulíček Vladimír
Metody výběru oběti
Lekce 3: Virtualizace paměti
16
Principy operačních systémů – Ing. Nulíček Vladimír
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
Principy operačních systémů – Ing. Nulíček Vladimír
FIFO = First In First Out
Lekce 3: Virtualizace paměti
18
Principy operačních systémů – Ing. Nulíček Vladimír
OPT = optimální algoritmus
Lekce 3: Virtualizace paměti
19
Principy operačních systémů – Ing. Nulíček Vladimír
LRU = Least Recently Used
Lekce 3: Virtualizace paměti
20
Principy operačních systémů – Ing. Nulíček Vladimír
Implementace LRU
Lekce 3: Virtualizace paměti
21
Principy operačních systémů – Ing. Nulíček Vladimír
Aproximace LRU
Lekce 3: Virtualizace paměti
22
Principy operačních systémů – Ing. Nulíček Vladimír
Algoritmus „Druhá šance“
Lekce 3: Virtualizace paměti
23
Principy operačních systémů – Ing. Nulíček Vladimír
Čítací algoritmy
Lekce 3: Virtualizace paměti
24
Principy operačních systémů – Ing. Nulíček Vladimír
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
Principy operačních systémů – Ing. Nulíček Vladimír
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
Principy operačních systémů – Ing. Nulíček Vladimír
Segmentace se stránkováním na žádost
Lekce 3: Virtualizace paměti
27
Principy operačních systémů – Ing. Nulíček Vladimír
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
Principy operačních systémů – Ing. Nulíček Vladimír
Přidělování rámců procesům
Lekce 3: Virtualizace paměti
29
Principy operačních systémů – Ing. Nulíček Vladimír
Thrashing (problém „výprasku)
Lekce 3: Virtualizace paměti
30
Principy operačních systémů – Ing. Nulíček Vladimír
Jak reálně řídit virtuální paměť
Lekce 3: Virtualizace paměti
31
Principy operačních systémů – Ing. Nulíček Vladimír
Model pracovní množiny
Lekce 3: Virtualizace paměti
32