Navídezni pomnílnik (tudi virtuálni pomnílnik) (angleško virtual memory) je značilnost računalniških sistemov, kjer se uporablja »trajno« shranjevanje podatkov za pomoč pri izvajanju procesorskih funkcij, in se s tem osvobodi več bralno pisalnega pomnilnika (RAM-a) oziroma glavnega pomnilnika.

Osnove pomnilnikov

Procesor je zelo hitra naprava za obdelovanje podatkov in zato potrebuje tudi hiter pomnilnik, da lahko dostopa do teh podatkov. Ampak ker so hitri pomnilniki zelo dragi je zmogljivost le teh v računalniku zelo majhna in zmogljivost počasnih zelo velika. Zato računalnik ne bere podatkov neposredno z diska in jih zato pred tem začasno naloži v RAM in jih prebere od tam. Celo iz RAM-a jih ne obdeluje vedno neposredno, ampak pogosto dostopane podatke in ukaze shranjuje v posebnih registrih in tako imenovanih cache-ih (predpomnilnikih).

Kaj je navidezni pomnilnik (Virtual memory)

Večina današnjih osebnih računalnikov ima okoli 2-8 GB RAM-a, kar pa ni dovolj da bi vse današnje aplikacije, ki zavzmejo veliko količino pomnilnika, bile naložene naenkrat v njem. Če bi bila velikost pomnilnika omejena z RAM-om, bi lahko zagnali le določeno število aplikacij in bi za zagon nove morali končati že zagnano aplikacijo, ki zasede enako ali več pomnilnika kot na novo zagnana. Tudi aplikacij ki so večje od RAM-a ne bi mogli zagnati. V današnjih večopravilnih operacijskih sistemih se takšne probleme rešuje z navideznim pomnilnikom.

Navidezni pomnilnik ali navidezno naslavljanje pomnilniškega prostora je lastnost računalnika, da lahko naslovi večji glavni pomnilniški prostor (RAM) kot ga je fizično prisotnega. Za shranjevanje podatkov, ki se shranjujejo izven dosega pomnilnika, se uporablja počasnejši, ampak prostornejši, trdi disk. To naredi operacijski sistem povsem nevidno uporabniku z uporabo ostranjevanja. To opazimo le, ko preklapljamo iz enega programa v drugega, ko pride do kratke zakasnitve, saj se mora vsebina z diska prepisati v RAM. Celo programi, ki se izvršujejo, delujejo kot da niso shranjeni na disku, ker operacijski sistem simulira večji RAM in tako prepriča program, da je naložen v RAM-u. Zato se programerjem ni potrebno ubadati s tem kako bodo izmenjevali podatke med trdim diskom in RAM-om, ker to za njih opravi že OS. OS lahko simulira tako velik pomnilnik kot je celoten naslovni prostor procesorja (32-biten: 4GB, 64-biten: 18EB oz. 2 na 64 bitov)

Kako deluje navidezni pomnilnik

Pretvorba iz navideznega naslova v fizični naslov je izvedena z enoto MMU (Memory Management Unit), ki jo vsebuje CPU ali pa je na čipu, preko katerega dostopa CPU do RAM-a. V MMU so shranjeni podatki, kako se navidezni naslovi preslikajo v fizične. Preslikavo teh naslovov pa implementira OS.

Operacijski sistem je odgovoren za odločanje, kateri program oziroma kateri deli programa v simuliranem pomnilniku bodo shranjeni v RAM-u in kateri na trdem disku. Na podlagi tega OS oblikuje translation tables ali drugače rečeno memory map, ki služi za pretvorbo med navideznimi naslovi, ki jih naslavlja procesor, in fizičnimi naslovi, kjer so iskani podatki zares shranjeni. Ko pa procesor naslavlja naslov, ki se ne nahaja v RAM-u se trenuten proces začasno ustavi in OS izbriše določen podatek v RAM-u (če je le-ta popolnoma zaseden) in naloži iskani podatek z diska v RAM. Potem posodobi memory map in nadaljuje izvajanje prejšnjega procesa s tem, da ponovi zanji ukaz, ki ni bil izveden, ker se podatek ni nahajal v RAM-u. To lahko stori na več načinov in sicer z uporabo:

Zgodovina navideznega pomnilnika

Pred razvojem navideznega pomnilnika so morali programji v 40-ih in 50. letih sami sprogramirati upravljanje z RAM-om in diskom, ter kopiranjem med njima.

Navidezni pomnilnik je bil razvit med leti 1959 – 1962 v University of Manchester za računalnike Atlas. Ampak preden je bil navidezni pomnilnik lahko predstavljen kot stabilna celota, so morali izvesti veliko eksperimentov, modelov in teorij, da so odpravili vse napake in slabosti ter povečali zmogljivost. V ta namen je morala biti razvita tudi posebna aparaturna oprema (hardware) za hitrejše izvajanje teh operacij.

IBM je že leta 1969 pokazal, kako je lahko sistem z uporabo navideznega pomnilnika enako hiter ali celo hitrejši kot sistem, ki je imel posebej sprogramirano dostopanje do RAM-a in trdega diska, torej brez navideznega pomnilnika. Kljub temu se je navidezni pomnilnik v osebnih računalnikih pojavil komaj leta 1991 z računalnikom System 7 podjetja Apple Macintosh in pozneje leta 1992 z OS Windows 3.1 podjetja Microsoft.

Zaključek

Torej navidezni pomnilnik je tehnologija, ki:

Zunanje povezave