Wat is Page fault?
Exception die de CPU veroorzaakt wanneer de benaderde pagina niet aan fysiek geheugen is toegewezen of er een niet toegestane soort toegang plaatsvindt. Het besturingssysteem maakt de pagina beschikbaar en voert de instructie opnieuw uit, of behandelt het als een ongeldige toegang.
Japanse benaming: ページフォルト
“Page fault” komt voor in 1 oefenvragen uit 1 onderwerpen, bijv. Linker, loader en uitvoerbare formaten.
Vakgebied: Besturingssysteem en hardware
Wat er gebeurt bij een page fault
Wanneer de memory management unit (MMU) een virtueel adres vertaalt, controleert ze de paginatabelentry. Als de entry niet geldig is of het type toegang niet is toegestaan, genereert de MMU een page fault, een synchrone exceptie die aan de veroorzakende instructie is gekoppeld. De handler van het besturingssysteem controleert of het adres behoort tot een gebied dat het proces mag gebruiken. Zo ja, dan zoekt hij een vrij fysiek frame, waarbij zo nodig een andere pagina wordt verdrongen, vult het vanaf schijf of met nullen, markeert de entry als geldig en start de veroorzakende instructie opnieuw. Zo nee, dan krijgt het proces een segmentation fault.
Veelgestelde vragen
Is een page fault een fout?
Niet per se. De meeste page faults zijn normale gebeurtenissen die worden gebruikt voor demand paging, copy-on-write en memory-mapped files; alleen een fault op een adres dat het proces niet mag benaderen, wordt een fout zoals een segmentation fault.
Wat is het verschil tussen een minor en een major page fault?
Een minor fault wordt opgelost zonder schijf-I/O, bijvoorbeeld door een pagina af te beelden die al in het geheugen staat, terwijl een major fault de pagina uit de opslag moet lezen en duizenden keren trager is.
Waarom start een page fault de instructie opnieuw in plaats van die over te slaan?
De veroorzakende toegang is nooit voltooid, dus het besturingssysteem herstelt de afbeelding en voert de instructie opnieuw vanaf het begin uit, zodat het programma verdergaat alsof er niets is gebeurd.