Geheugenpaginering

Geheugenpaginering is een vorm van virtueel geheugen in computers. Hierbij worden even grote delen van de virtuele geheugenruimte, de zogenaamde pages, toegewezen aan even grote delen van het werkgeheugen, de page frames[1]. Het geheugenbeheer in het besturingssysteem houdt bij welke page frames er vrij zijn en welke niet. Het grote voordeel van geheugenpaginering is dat de frames niet aaneensluitend hoeven te zijn, zelfs al zijn de pages in de virtuele geheugenruimte van een proces dat wel. Zodoende maakt paginering het mogelijk voor het besturingssysteem om het geheugen vrij te verdelen over meerdere processen, zodanig dat elk proces een eigen aaneengesloten geheugenruimte krijgt die niet noodzakelijk in het fysieke geheugen eveneens aaneengesloten is. Hiervoor gebruikt het besturingssysteem een pagineringstabel voor elk proces.

Daarnaast maakt paginering het mogelijk om de pages in een proces in het geheel niet toe te wijzen aan het achterliggende fysieke geheugen. Het besturingssysteem kan hiervoor kiezen om fysiek geheugen te besparen als het weinig door een proces gebruikt wordt (demand paging), of als het fysieke geheugen vol dreigt te raken. De inhoud van de page frame wordt dan opgeslagen op een vorm van extern geheugen zoals een harde schijf en de page wordt in de pagineringstabellen als niet toegewezen aangemerkt, waarna het fysieke geheugen van de bijbehorende page frame voor andere doeleinden beschikbaar is. Dit wordt swapping genoemd. Indien het proces vervolgens probeert dit niet-toegewezen geheugen te gebruiken, treedt een page fault op die de controle overhandigt aan het besturingssysteem. Het besturingssysteem zal dan de page weer uit het externe geheugen opvragen en terug in het fysieke geheugen plaatsen, en de frame weer in de pagineringstabellen toewijzen. Daarna kan het onderbroken proces weer verder werken.

Bronnen bewerken

  1. Stallings, William (2009), 'Computer Organization and Architecture, Designing for Performance: Eighth Edition'