Virtueel geheugen is een geheugenbeheertechniek waarmee een computer programma's kan uitvoeren en toegang kan krijgen tot gegevens die groter zijn dan de hoeveelheid fysiek geheugen die op het systeem beschikbaar is. Het werkt door voor elk proces een virtuele adresruimte te creëren, wat een aaneengesloten reeks adressen is die het proces kan gebruiken. Deze virtuele adresruimte wordt vervolgens toegewezen aan het fysieke geheugen van het systeem, zodat wanneer een proces toegang krijgt tot een virtueel adres, de geheugenbeheereenheid (MMU) van de CPU het virtuele adres vertaalt naar een fysiek adres.
Virtueel geheugen wordt mogelijk gemaakt door het gebruik van een pagingmechanisme. Pagina's zijn geheugenblokken met een vaste grootte, doorgaans 4 kilobytes (KB) of groter, en elk virtueel adres is verdeeld in een paginanummer en een offset binnen de pagina. Wanneer een proces toegang krijgt tot een virtueel adres, controleert de MMU of de pagina met dat adres zich in het fysieke geheugen bevindt. Als de pagina zich in het geheugen bevindt, vertaalt de MMU het virtuele adres naar een fysiek adres en is de toegang voltooid.
Als de pagina zich niet in het geheugen bevindt, genereert de MMU een paginafoutuitzondering. Het besturingssysteem (OS) handelt vervolgens de paginafout af door een pagina uit het fysieke geheugen te selecteren die moet worden verwijderd en deze te vervangen door de benodigde pagina van de schijf. Dit proces wordt paginavervanging genoemd. Het besturingssysteem gebruikt verschillende algoritmen om te bepalen welke pagina's moeten worden verwijderd. Deze algoritmen zijn ontworpen om het aantal paginafouten te minimaliseren en zo de prestaties van het systeem te verbeteren.
Virtueel geheugen is een essentieel onderdeel van moderne besturingssystemen en stelt computers in staat programma's uit te voeren die veel groter zijn dan de beschikbare hoeveelheid fysiek geheugen. Het biedt ook isolatie tussen processen, zodat elk proces zijn eigen virtuele privéadresruimte heeft en geen toegang heeft tot het geheugen van andere processen. |