Fizi�ni ali resni�ni pomnilnik ra�unalnika
je organiziran kot zaporedje bytov, ki so o�tevil�eni od 0 do �tevila,
ki pove zgornjo mejo pomnilnika (minus 1).
![]() |
Za primerjavo si oglejmo, kako je organizirana
uporaba virtualnega naslovnega prostora pri Windows 98 in Windows ME.
Tudi v tem primeru imamo 4GB virtualnega naslovnega prostora, od tega 2GB za vsak proces. Preostalih 2GB je razdeljenih med sistem (1GB), in souporabne sekcije (shared memory sections, 1GB). Zna�ilnost 1GB souporabnega prostora je, da lako vanj pi�e katerikoli proces (win32) in to v uporabni�kem re�imu. Pri Windows 2000 so souporabne pomnilni�ke sekcije znotraj privatnega naslova procesa,kar je bolj varno. |
![]() |
Slika prikazuje podrobnej�o razdelitev sistemskega
naslovnega prostora (v klasi�nem primeru, ko imamo za to 2GB prostora)
Procesne tabele strani in direktorij strani opisujejo preslikavo virtualnih naslovov. Mno�ici virtualnih strani, ki je reziden�na v fizi�nem pomnilniku, pravimo delovna mno�ica (working set). Pri NT poznamo dve vrsti delovnih mno�ic: sistemsko delovno mno�ico in procesno delovno mno�ico.
|
![]() |
Resni�ni pomnilnik je obi�ajno precej manj�i
od virtualnega. Zato mora sistem za upravljanje z virtualnim pomnilnikom
izvajati predvsem dve nalogi:
|
![]() |
Da bi bilo prepisovanja na disk in nazaj �immanj,
je virtualni naslovni prostor razdeljen v bloke enake dol�ine, imenovane
strani.
Podobno je fizi�ni pomnilnik razdeljen na okvirje strani (page frames). Strani virtualnega pomnilnika, ki se nahajajo v fizi�nem pomnilniku in so takoj dostopne, so veljavne strani. Strani, ki so shranjene na disku ali niso takoj dostopne, so neveljavne strani. �e neka nit dostopa do neveljavne strani, pride do izpada strani (page fault). V tem primeru nalo�i sistem v pomnilnik stran, ki je povzro�ila napako, in �e nekaj strani v njeni okolici. Ko je zapolnjen �e ves fizi�ni pomnilnik, pride do zamenjave strani po principu LRU (Least Recently Used) oziroma FIFO (First in-First out). Prva strategija je uporabljena na enoprocesorskih, druga pa na ve�procesorskih sistemih. Uporabni�ke aplikacije uporabljajo 32-bitne virtualne naslove. Vsakemu virtualnemu naslovu ustreza sistemska struktura PTE (Page Table Entry), ki vsebuje fizi�no adreso, dodeljeno temu virtualnemu naslovu. |
![]() |
Tabele strani torej vsebujejo PTE. Te imajo
dve polji: Takoimenovani PFN (Page
Frame Number), ki pove stran, kjer se nahajajo podatki, ter vrsto
zastavic, ki opisujejo status in za��ito strani.
Izgled strukture PTE pri implementaciji Windows NT na Intelovi arhitekturi. |
![]() |
Elementi PFN (Page Frame Numbers) so sicer fiksnih dol�in, vendar je njihovo stanje odvisno od stanja strani. Glede na to stanje imajo posamezna polja v PFN razli�en pomen. |
![]() |
Vsak proces ima en direktorij strani (Page directory),
ki ga sestavljajo elementi PDE (Page
Directory Entries)
Posamezni PDE ka�e na neko tabelo strani danega procesa. Takih tabel je ve�, saj se tvorijo po potrebi med izvajanjem procesa. Imamo tabele strani, ki opisujejo sistemski naslovni prostor, in tabele strani, ki opisujejo privatni naslovni prostor procesa. |
![]() |
Primitivi, ki jih uporablja upravnik navideznega
pomnilnika, so sekcije (section objects). Take sekcije uporablja
en proces, lahko pa so v souporabi ve� procesov.
Tako Windows NT omogo�a koncept souporabljenega pomnilnika (shared memory). Po tem konceptu lahko dolo�eno stran, ki je enaka v virtualnih naslovnih prostorih dveh ali ve� procesov, le-ti vidijo in souporabljajo. Windows NT zagotavlja mehanizem za��ite, ki prepre�uje, da ne bi en proces nehote pokvariln vsebine naslovnega prostora drugega. V primeru souporabnih pomnilni�kih sekcij zagotavlja to mehanizem ACL
(Access Control List), ki dovoljuje poseg v souporaben pomnilnik le poobla��enim
procesom.
|
![]() |
Dinamika seznamov strani.
Okvirji strani prehajajo med seznami strani na ve� na�inov: Upravnik pomnilnika lahko zahteva (zaradi varnosti). izpraznjeno stran (zero page), lahko pa mu zado��a �e prosta (�e ne zbrisana) stran. Strani, ki so spro��ane s strani procesov, se vra�ajo v seznam "standby", �e niso bile spremenjene, sicer pa kon�ajo najprej v seznamu spremenjenih strani, dokler jih sistem (modified page writer) ne zapi�e na disk. Ta zapisovalec se zbudi, �e postane seznam spremenjenih strani predolg ali pa �e postaneta seznama prostih oziroma zbrisanih strani prekratka. |