Vistalizace 7: paměť v systému Windows Vista
autor: Jiří Vašek , publikováno 16.1.2008
Seznam kapitol
1. Trocha historie nikoho nezabije
2. Správa paměti pod Windows Vista
3. Optimalizace paměti pod Windows Vista
Vistalizace 7: paměť v systému Windows Vista

Jednou z největších změn ve Windows Vista je rozhodně překopaná správa paměti. V porovnání s předchozími verzemi Windows i s ostatními operačními systémy se jedná opravdu o velký skok, který je pro mnoho uživatelů velkou záhadou. Mnoho uživatelů zároveň nadává na velkou náročnost a celkovou lenost systému. Pojďme se tedy podívat, kde je zakopané jádro pudla...


Poznámka pro militantní "linuxovou sektu": v této historické vložce, potažmo v celém článku se zabývám pouze řadou opračních systémů od Microsoftu (Linuxem se bude zabývat jiný autor v jiném článku). Předem děkuji za to, že v diskuzi pod článkem nebudete otázku Linux vs Windows nijak "ventilovat". Díky!

MS-DOS a počítačový pravěk

Kdysi v éře počítačového pravěku, kdy na PC kraloval MS-DOS, byla fyzická paměť ve svém úloze osamocena, a pokud byla zaplněna, aplikace se nemohla do paměti nahrát - jednoduše nebylo kam vložit data, a byli jste v koncích. Problémové bylo zejména rozdělení paměti na konvenční (nesmrtelná hláška Billa Gatese, že 640kB paměti bude stačit každému), a zbytek, který musel být nastavován ručně pomocí různých extenderů (například emm386.exe, himem.sys). V té době bylo správné nastavení paměti doslova magie a toto umění se vyvažovalo zlatem. Dnes už se pouze usmíváme historkám o tom, jak se hra nechtěla spustit, protože v paměti byl příliš velký ovladač myši.

Vistalizace 7: paměť v systému Windows Vista

Naštěstí s érou Windows už toto nebylo nutné řešit. Jednak Windows tyto bariéry odbouraly, a jednak zavedly stránkování na disk (takzvaný "swap").

Koncepce paměti ve Windows

Počínaje Windows 95, přes zbytek řady 9x, následnou řadu NT až po Windows XP, správa paměti vypadala hodně podobně. Pravda, obrovským rozdílem Windows 95/98/ME a modernějších Windows NT/2000/XP/2003 Server založených na jádře NT, byl odlišný přístup k procesům a ovladačům zařízení (daný pokročilejší koncepcí systému jako takového), který znamenal nesrovnatelně stabilnější provoz celého systému. Ovšem správa paměti všech systémů vypadala prakticky stejně.

Poznámka: Existuje jisté zmatení pojmů, co se týče "operační paměti", "virtuální paměti", "stránkovacího souboru" apod. V tomto článku budeme chápat "stránkovací soubor" a "virtuální paměť" jako soubor na disku, který se využívá jako rozšíření fyzické operační paměti. Pojmem "celková operační paměť" budeme chápat souhrn fyzické paměti a stránkovacího souboru.

Vistalizace 7: paměť v systému Windows Vista

Windows odnepaměti chápou operační paměť jako celek, složený ze dvou částí - jednak fyzické operační paměti, která odpovídá instalovanému množství paměťových modulů na základní desce, a jednak právě stránkovacímu souboru na pevném disku.

Co je a jak funguje stránkovací soubor

Stránkovací soubor (jinak též virtuální paměť, aka "swap file") se nachází na pevném disku. Na jeho počátku byla jednoduchá úvaha: operační paměť je relativně drahá a dostupná pouze v poměrně malých velikostech, zatímco každý megabajt prostoru na pevném disku je relativně levný. Proto se jako dodatečná paměť využil pevný disk, který byl vždy nesrovnatelně větší a levnější, samozřejmě za cenu pomalejšího přístupu. Filozofie stránkovacího souboru je také jednoduchá - aplikace nemusí být celá v paměti, ale stačí pouze její nejdůležitější části, se kterými se momentálně pracuje, zbytek se může "odstránkovat" (odswapowat) na disk, a v případě potřeby se z něj podle potřeby natáhnout do fyzické paměti.

Vistalizace 7: paměť v systému Windows Vista

V praxi Windows nedělají mezi fyzickou pamětí a stránkovacím souborem příliš velké rozdíly, prostě chápou "operační paměť" jako součet fyzické paměti a stránkovacího souboru. Toto je celé v režii systému, a program, pokud nemá explicitní test na velikost fyzické paměti, počítá s operační pamětí jako s celkem.

Poznámka pro spekulanty: Někteří "experti" doporučují stránkovací soubor vypnout, a tím docílit, aby Windows vše držely pouze ve fyzické RAM. Toto řešení sice teoreticky možné je, ale Windows ve skutečnosti zkoušejí používat stránkovací soubor co nejvíce, a některé programy s ním dokonce počítají, takže vypnutí není rozumné. Navíc čím novější Windows, tím je funkce stránkování sofistikovanější, a Windows Vista vám vypnutí stránkovacího souboru rozmlouvá. Ve skutečnosti se ukazuje, že je výhodnější nastavit stránkovacímu souboru vhodnou velikost tak, aby nebyl příliš malý, ale zároveň aby nebyl příliš velký, a nedocházelo k přílišnému swapování. Nastavení probereme dále v článku.

Prefetch

Malou novinkou ve Windows XP byla funkce prefetch, kdy systém kontroloval, které soubory či programy jsou často otvírány, a optimalizoval jejich příští spuštění. Jednalo se tedy o prazáklad toho, co dnes existuje ve Windows Vista. Skutečný efekt prefetchingu ve Windows XP je diskutabilní, v některých případech opravdu znatelně pomáhá, typicky při častém spouštění nějaké aplikace, ale málokdo se asi baví neustálým spouštěním stejného programu :).

Jak tedy vypadá správa paměti ve Windows XP?

Vistalizace 7: paměť v systému Windows Vista

Podívejme se do task manageru (česky Správce úloh, trojhmat Ctrl+Shift+Escape). Zatímco u každého běžícího procesu vidíme, kolik paměti využívá, v dolním stavovém řádku vidíme celkové využití paměti. Ti pozornější z vás si už dávno všimli, že údaje u procesů a celková hodnota se dost liší. Je to dáno výchozím nastavením task manageru, který u procesů zobrazuje pouze fyzickou paměť využitou jednotlivými procesy, kdežto celkový údaj počítá s celkovou operační pamětí (tedy fyzickou + stránkovanou). Tento stav se dá naštěstí jednoduše opravit, v menu Zobrazit > Vybrat sloupce... stačí zaškrtnout Velikost virtuální paměti. Nyní vidíme, kolik který proces skutečně využívá paměti fyzické a kolik stránkovacího souboru, a tyto hodnoty již dohromady souhlasí s celkovým údajem dole.

Na kartě Výkon se můžeme podívat, kolik paměti máme obsazeno. Využití paměti (procesy) dohromady s pamětí jádra dává dohromady skutečně využitou paměť, zde není žádný problém.

Vistalizace 7: paměť v systému Windows Vista

Poznámka pro rejpaly, kteří vidí Windows XP pod pokličku: Celý mechanismus paměti není tak jednoduchý, jak jsem popsal výše, mechanismus stránkování způsobuje, že údaje o využité a volné paměti v task manageru nejsou úplně přesné, ale pro naše účely toto vysvětlení stačí bohatě.

Dá se říci, že tento mechanismus se od dob Windows 95 nezměnil. Nyní ve Windows Vista vše prošlo tak radikálními změnami, že je najednou problém se v tom vyznat. Pojďme se tedy na to podívat pod lupou...



 
Komentáře naleznete na konci poslední kapitoly.
413 čtenářů navrhlo autorovi prémii: 183.3Kč Prémie tohoto článku jsou již uzavřené, děkujeme za váš zájem.
Tento web používá k poskytování služeb soubory cookie.