YeXo - een kernel programmeren

07 april 2006

Hoe virtueel geheugen werkt

Virtueel geheugen kan ervoor zorgen dat twee geheugenplaatsen naast elkaar lijken te liggen op een willekeurig adres. Ook kun je ervoor zorgen dat meerdere programma's op hetzelfde virtuele adres geladen worden. Dit klinkt natuurlijk erg vreemd, meerdere programma's op dezelfde plaats laden. Het kan omdat de verwijzing naar het virtuele adres eerst omgezet wordt door een speciaal gedeelte in je CPU, namelijk de mmu. Eerst een voorbeeld hoe virtueel geheugen werkt. Stel, het physieke geheugen ziet er als volgt uit:

AdresWaarde
1o
2x
3y
4e

Als je dan zorgt voor de volgende omzetting van de virtuele naar physieke adressen (ook wel mapping genoemd), kun je in het virtuele geheugen opeens de naam van deze site lezen!
Virtueel AdresPhysiek adresWaarde
13y
24e
32x
41o

Je zou er natuurlijk ook voor kunnen zorgen dat je een heel ander woord leest op virtueel adres 1 tot en met 4, of zelfs hetzelfde woord op een ander virtueel adres. Hoe je aan de processor doorgeeft welk virtueel adres naar welk physiek adres verwijst leg ik in een volgend bericht uit.