Pomnilnik v Windows: 1. del

Matej Huš

30. nov 2008 ob 01:33:09

O pravšnji količini pomnilnika in najboljši nastavitvi ostranjevalne datoteke na Windows 2000/XP/Vista je bilo prelitega že toliko črnila, da bi pričakovali, da je ta tema javno razdelana in poljudno jasna vsakomur. V resnici je situacija daleč od tega, zato se je znani računalniški guru Mark Russinovich na svojem blogu odločil narediti zmedi konec in reči bobu bob in popu pop. Poglejmo, kako Windows obravnava pomnilnik.

V prvem prispevku, ki sicer datira v julij, so opisane omejitve za fizični pomnilnik. 32-bitna različina Windows Server 2008 Standard podpira 4 GB, Datacenter pa 64 GB, medtem ko 64-bitni verziji prepoznata do 32 GB oz. 2 TB. Razlog za omejitev v 32-bitnem okolju je način naslavljanja. Upravitelj pomnilnika (Memory Manager) zapisuje podatke o vsaki strani fizičnega pomnilnika v 28-bitno PFN-bazo v virtualnem pomnilniku, tako da 128 GB pomnilnika zahteva 930 MB veliko bazo. Skupno ima Windows dostop do 4 GB (232) naslovnega prostora navideznega pomnilnika, ki se razpolovi v območje za aplikacije in sistemsko področje, kjer prebivajo še jedro (kernel), gonilniki, predpomnilnik (cache) in druge strukture, zato je omejitev PFN na 930 MB smiselna. Posnetek Upravitelja opravil (Task Managerja) v takem okolju na steroidih pa izgleda takole.


32-bitni operacijski sistemi za odjemalce (Windows 2000 Professional, XP, Vista) pa podpirajo največ 4 GB. Z razvojem drugega servisnega paketa za XP je Microsoft uvidel, da 4 GB ne bo dovolj za vse večne čase, zato so začeli testirati PAE (Physical Address Extensions), ki na strojih s podporo za DEP (Data Execution Prevention) omogoči dostop do pomnilnika nad 4 GB. Žal so ugotovili, da so taki sistemi izrazito nestabilni zaradi kopice različne strojne opreme z čudnimi gonilniki, ki gostuje po domačih računalnikih (načeloma pa ne strežnikih). PAE je sicer moč vključiti, privzeto pa je izključen. Zaključimo torej lahko, da 32-bitni Windows za domačo uporabo zmorejo naslavljati do 4 GB pomnilnika, vendar uporabniki največkrat nergajo, da sistem ne vidi vseh megabajtov do zadnjega. Razlog je v tem, da mora sistem v te spodnje 4 GB vključiti še druge pomnilnike (grafična kartica ipd.), zato se znajde zadnji del sistemskega pomnilnika nad 4 GB in je nedostopen. V Visti je prav zato kozmetični popravek, ki prikazuje ves nameščen pomnilnik, čeprav to dejstva o dostopnosti ne spremeni. Seveda 64-bitne verzije teh težav nimajo. 264 je pač velika številka.

Glavno vprašanje, ki sa ga mora zastaviti končni uporabnik, je koliko pomnilnika potrebuje. V teoriji seveda, saj je v praksi pomnilnik tako poceni, da 4 GB ne predstavljajo omembe vrednega izdatka. Količino res potrebnega pomnilnika lahko ocenimo z opazovanjem prostega pomnilnika v Upravitelju opravil med poganjanjem spominsko zahtevnih programov. Windows razume pod pojmom prost oz. dostopen pomnilnik tisti del, ki ni zapolnjem s procesi, jedrom ali gonilniki. Seveda Upravitelj pomnilnika tudi ta prostor izkoristi za npr. predpomnilnik (cache) ali prefetch, saj še vedno velja, da je prazen RAM proč vržen RAM.

V nadaljevanju si bomo ogledali navidezni pomnilnik in nastavitve ostranjevalne datoteke.