4. Procedura obsługi błędu strony, czyli czego szary programista zepsuć nie może




Wyjątek "Page Fault", czyli tzw. błąd stronicowania, jest zgłaszany przez procesor wtedy, kiedy nastąpi nieprawidłowe odwołanie do jakiegoś liniowego adresu pamięci. Nieprawidłowe oznacza, że strona wyznaczana przez dany adres nie jest obecna (wyczyszczony bit Present), lub też charakter dostępu do niej jest niezgodny z prawami dostępu ustawionymi na odpowiednich pozycjach Katalogu lub Tablicy Stron (bity Read/Write i User/Supervisor).

Funkcją obsługująca błędy stronicowania jest do_page_fault(), zaimplementowana w arch/i386/mm/fault.c. Diagram przepływu kontroli wygląda w niej następująco:



Powyższy schemat domaga się kilku wyjaśnien: