Wikisage, de vrije encyclopedie van de tweede generatie, is digitaal erfgoed

Wikisage is op 1 na de grootste internet-encyclopedie in het Nederlands. Iedereen kan de hier verzamelde kennis gratis gebruiken, zonder storende advertenties. De Koninklijke Bibliotheek van Nederland heeft Wikisage in 2018 aangemerkt als digitaal erfgoed.

  • Wilt u meehelpen om Wikisage te laten groeien? Maak dan een account aan. U bent van harte welkom. Zie: Portaal:Gebruikers.
  • Bent u blij met Wikisage, of wilt u juist meer? Dan stellen we een bescheiden donatie om de kosten te bestrijden zeer op prijs. Zie: Portaal:Donaties.

Virtueel geheugen

Uit Wikisage
(Doorverwezen vanaf Swap-ruimte)
Naar navigatie springen Naar zoeken springen

Met virtueel geheugen wordt een mechanisme bedoeld waarmee een besturingssysteem een deel van de harde schijf gebruikt om tijdelijk niet gebruikte gegevens te bewaren om zo meer werkgeheugen (RAM) vrij te houden voor belangrijkere zaken. Het bestand dat in het virtueel geheuugen wordt opgeslagen wordt wisselbestand (swapfile) genoemd.

Tijdens de uitvoering bewaart een programma gegevens in zijn geheugenruimte. Op elk moment heeft het programma meestal slechts een klein deel van de bewaarde gegevens nodig. Daarom probeert het besturingssysteem alleen die blokken in het RAM te houden die het meest gebruikt worden. De overige geheugenblokken worden dan weggeschreven naar de swap. Als een programma een geheugenblok nodig heeft wat op de swap staat, moet dat blok eerst van de schijf gelezen worden voordat het programma verder kan gaan. Om voor dit blok ruimte te maken in het RAM, moet het besturingssysteem bovendien een ander blok naar de swap verplaatsen. Het benaderen van een uitgeswapt geheugenblok duurt dus langer dan het benaderen van een blok dat reeds in het RAM aanwezig is.

Het voordeel van virtueel geheugen is dat programma's kunnen beschikken over meer geheugenruimte dan het aanwezige RAM-geheugen. Een nadeel is dat virtueel geheugen trager in gebruik is, aangezien een harde schijf veel trager is dan RAM (zie ook Geheugenhiërarchie). De snelheid van virtueel geheugen is tevens afhankelijk van de regelmaat waarmee een programma gegevens nodig heeft die op dat moment uitgeswapt zijn.

Op Unix gebaseerde besturingssystemen, zoals Linux, bewaren de geswapte gegevens meestal op een aparte partitie (de swap-partitie). Microsoft Windows gebruikt daarentegen een speciaal bestand als swap-ruimte.

Werkwijze

De virtuele adresruimte van een moderne microprocessor, bijvoorbeeld de Pentium, bedraagt 4 GiB. De hoeveelheid geheugen in de computer is in werkelijkheid veel minder, bijvoorbeeld 1 GiB.

De volledige adresruimte is verdeeld in blokken, pagina's, bijvoorbeeld met een grootte van 4 KiB. De processor beschikt over een tabel waarin per virtuele pagina een aantal gegevens worden bijgehouden, onder andere de bijbehorende fysieke pagina.

Stel dat een toepassingsprogramma adres E4987654 adresseert. Dat is adres 654 in virtuele pagina E4987. De adressering verloopt nu via de tabel, waarin staat dat virtuele pagina E4987 zich bevindt op ware pagina 00382. De microprocessor adresseert dus in werkelijkheid 00382654.

Deze vertaalslag verloopt binnen de microprocessor, als deel van de uitvoering van een instructie. De vertaalslag kost daardoor nauwelijks extra tijd.

Het is mogelijk dat in de tabel staat dat virtuele pagina E4987 zich niet in het geheugen bevindt. Er treedt nu een interrupt op. De interrupt wordt door het besturingssysteem opgevangen. Het besturingssysteem zorgt ervoor dat de gewenste pagina uit de harde schijf in het geheugen wordt geladen, past de tabel aan, en hervat het toepassingsprogramma. Afgezien van de vertraging merkt het toepassingsprogramma niet dat er iets gebeurd is.

Om een pagina in het geheugen te kunnen laden, is het natuurlijk nodig dat er geheugenruimte vrij is. Het besturingssysteem zal dan ook eerst een andere pagina vrijmaken. Is er naar deze pagina geschreven, dan moet hij eerst op de harde schijf worden gezet.

Zie ook