Wat is een paginafout?
Een paginafout is een bewerking die plaatsvindt op een computer met virtueel geheugen, een techniek waarmee een deel van een harde schijf het fysieke geheugen van de computer kan vergroten. De meeste paginafouten doen zich voor wanneer een programma toegang probeert te krijgen tot informatie die in het virtuele geheugenbestand op de harde schijf is geplaatst. Dit is een normale functie van virtueel geheugen en de computer reageert door de juiste informatie in het fysieke geheugen te laden. Een ernstiger type paginafout geassocieerd met crashes en computerfouten kan optreden wanneer een programma naar informatie zoekt op een geheugenlocatie die niet bestaat of wordt beschermd. Dit kan worden veroorzaakt door defecte hardware of slecht geschreven software.
Moderne computersystemen verdelen het geheugen in kleinere stukjes die pagina's worden genoemd, waarbij elke pagina toegankelijk is via een specifiek adres. De meeste systemen ondersteunen ook een concept dat bekend staat als virtueel geheugen, waarbij pagina's uit het fysieke Random Access Memory (RAM) van de computer kunnen worden verplaatst naar een virtueel geheugenbestand dat op de harde schijf van de computer wordt opgeslagen en zo nodig weer in het RAM-geheugen. De details van dit complexe geheugenbeheerschema zijn verborgen voor software; een toepassing kan op geen enkele manier weten of een pagina op een bepaald adres in RAM of in virtueel geheugen is geladen. Er treedt een paginafout op wanneer een programma een gedeelte van het geheugen probeert te lezen of manipuleren dat niet in RAM is geladen of zich op een onverwacht adres bevindt.
Ondanks de onheilspellende naam, is een paginafout over het algemeen een normale en verwachte actie, en meestal zal een gebruiker nooit merken dat de fout is opgetreden. Het is een soort operatie die bekend staat als een "val", wat betekent dat instructies van het programma die de fout hebben veroorzaakt tijdelijk worden onderschept of gevangen terwijl de computer het betreffende geheugenadres onderzoekt. Als het adres geldig is, maar momenteel niet in het RAM van de computer is geladen, wordt informatie van het virtuele geheugenbestand op de harde schijf naar het fysieke geheugen overgedragen en hervat het programma de normale werking. Dit staat bekend als 'inruilen' of 'paging-in' en is gebruikelijk voor bijna elke pc, ongeacht het besturingssysteem of de hoeveelheid RAM die is geïnstalleerd. Te weinig RAM zorgt er echter voor dat de computer voortdurend geheugenpagina's tussen de harde schijf en het fysieke geheugen schudt, wat de prestaties nadelig beïnvloedt.
De tweede mogelijke uitkomst van een paginafout gebeurt wanneer een aangevraagd geheugenadres ongeldig of beveiligd wordt bevonden. Dit type fout, ook wel een segmentatiefout genoemd, kan worden veroorzaakt door falende geheugenmodules, defecte harde schijven of verkeerd werkende software. Een speciaal signaal wordt naar het programma gestuurd dat de fout heeft veroorzaakt, waardoor het programma meestal abrupt wordt gestopt. Afhankelijk van het besturingssysteem kunnen de ernstigste paginafouten ervoor zorgen dat het besturingssysteem van een computer defect raakt, waardoor gebruikers een cryptisch Blue Screen of Death (BSoD) of kernel-paniekbericht krijgen.