Úskalí správy paměti

Tabulky stránek CPU spravuje tabulky stránek, které evidují, jakým způsobem se virtuální adresy mapují do fyzické p...


Tabulky stránek
CPU spravuje tabulky stránek, které evidují, jakým způsobem se virtuální adresy
mapují do fyzické paměti. Tabulky zároveň plní další klíčové funkce, jako je
např. uchování záznamů, podle nichž lze zjistit, zda je určitá stránka spojena
se stránkou fyzické paměti, a pokud ano, tak kdy byla naposledy použita. Pokud
je daná stránka přítomna ve fyzické paměti, CPU použije tabulky stránek k tomu,
aby okamžitě převedl přístup k virtuální adrese na přístup k adrese fyzické. Je
logické, že virtuální paměť aktivuje jednotka MMU až na základě zadaného
požadavku. To znamená, že ji použije pouze v případě, kdy aplikace požaduje
daný zdroj (např. funkce volá sdílenou knihovnu, nebo tabulku pro načtení více
číselných údajů), který není ve fyzické paměti. CPU generuje tzv. výjimku
paměti, která je předána jednotce MMU. Jednotka MMU použije informaci z tabulky
k lokalizaci nevyužité stránky fyzické paměti (například kódu, který již nebyl
delší dobu volán). Poté zapíše nepoužívanou stránku do vyhrazené oblasti na
disku označované jako swapovací soubor a předá systému příkaz, aby načetl do
uvolněné fyzické paměti požadovanou stránku, ať už ze souboru na disku nebo ze
swapovacího souboru. V průběhu této operace MMU mapuje virtuální a fyzické
stránky a aktualizuje tabulky stránek. Z hlediska uživatele je tento proces
transparentní. Počítač běžně využívá k provádění všech činností celou virtuální
paměť tvořenou RAM i vyhrazenou částí pevného disku a proto se zdá, jakoby
počítač měl více operační paměti, než ve skutečnosti má. Při dostatečně velké
fyzické paměti není jednotka MMU volána tak často a počítač využije většinu
času k provádění aplikací. Jestliže je k dispozici jen velmi málo paměti,
počítač stráví většinu času přesouváním stránek mezi pamětí a swapovacím
souborem, takže dochází k zeslabení výkonu.

Zlepšení výkonu
Naštěstí ale existují způsoby, jak situaci zlepšit. Jednou z těchto metod je
takové mapování souborů, kdy jsou soubory na pevném disku počítače zrcadleny do
stránek virtuální paměti. Ve chvíli, kdy se MMU rozhodne, že musí odložit
stránky, které obsahují kód aplikace, není třeba dělat nic kód je neměnný a na
disku již je, takže stačí jen načíst nové zdroje do fyzické paměti na jeho
místo. Jednoduše řečeno: Potřebuje-li MMU číst ve stránkách kódu, může si je
efektivněji číst z původního souboru, než aby je musel zapisovat a číst ze
swapovacího souboru.
Další metodou, jak zvýšit výkon, je použití virtuální vyrovnávací paměti cache.
Ta používá část fyzické paměti k uložení kódu a dat, které operační systém
často používá. Vzhledem k tomu, že je operační systém odpovědný za načtení
aplikací a datových souborů do paměti, může uchovávat informace o využívání
jednotlivých bloků dat a toho pak využít k efektivní správě virtuální cache.
Výhoda tohoto postupu spočívá v tom, že MMU může vyvolat informaci přímo z
paměti, místo aby se často používané objekty četly z pevného disku.
Obě uvedené metody, mapování souborů a použití virtuální paměti cache, umožňují
MMU pracovat rychleji a efektivněji, a tím zvyšují celkovou výkonnost systému.
1 1034 / pen









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.