Upravljanje z navideznim pomnilnikom
Glavni pomnilnik - pomnilnik do katerega lahko procesor neposredno dostopa je praviloma vedno premajhen. Na to dejstvo vpliva več dejavnikov:
- uporabniška programska oprema postaja vedno bolj obsežna
- operacijski sistemi potrebujejo za svoje delovanje vedno več pomnilnika
- uporabniki smo razvajeni in bi radi hkrati imeli zagnanih čim več programov.
Ob bok vsem dejstvom je vseeno potrebno poudariti, da je zelo malo verjetno, da bo računalnik moral hkrati poganjati večje število programov. Drugače povedano - čeprav imamo hkrati zagnanih večje število programov, še vedno delamo v glavnem samo z enim naenkrat. Drugi enostavno čakajo na našo pozornost.
Izkoriščajoč vsa dejstva so računalniški inženirji prišli do ideje po vzpostavitvi virtualnega pomnilnika. Osnovna ideja navideznega pomnilnika je ustvariti iluzijo, da ima procesor na voljo več pomnilnika, kot ga v resnici ima. Ustrezni del operacijskega sistema to naredi tako, da rezervira del diska, kjer hrani podatke iz glavnega pomnilnika za katere oceni, da se bodo potrebovali z manjšo verjetnostjo.
Prostor na disku in glavni pomnilnik tvorita skupaj virtualni pomnilnik. CPE (centralno procesna enota) sedaj ne naslavlja več glavnega pomnilnika temveč navidezni pomnilnik. Posebna enota za preslikovanje navideznih naslovov, ki se nanašajo na navidezni pomnilnik v fizične naslove, ki se nanašajo na glavni pomnilnik, pa poskrbi za to, da bo zahtevana vsebina res v glavnem pomnilniku.
Ob vsakem naslavljanju določenega navideznega naslova se le ta najprej pretvori v fizični naslov. Če je zahtevana vsebina v glavnem pomnilniku je vse regularno, če pa zahtevane vsebine ni v glavnem pomnilniku, se opravi dostop do t.i. izmenjalnega prostora (swap space) na disku. Zahtevana vsebina se prenese v glavni pomnilnik in nato naprej do CPE. Če je glavni pomnilnik poln, operacijski sistem določi, katere vsebine se bodo premaknile na izmenjalni prostor in katere v glavni pomnilnik.
Razmislek
Pri operacijskem sistemu Linux velja pravilo, da je izmenjalni prostor dvakra večji od glavnega pomnilnika. Če npr. imamo 512 Mb velik glavni pomnilnik, je ob namestitvi operacijskega sistema potrebno kreirati 1 Gb velik izmenjalni prostor (particijo v primeru o.s. Linux). Ali menite, da bi povečevanje izmenjalne particije imelo za rezultat hitrejše delovanje računalniškega sistema?