Page Fault는 접근한 가상 페이지가 현재 매핑으로 처리되지 않거나 접근 권한에 문제가 있을 때 발생하는 예외입니다. 대표적으로 필요한 페이지가 물리 메모리에 없는 경우이며, 항상 프로그램 오류를 뜻하지는 않습니다.

요구 페이징에서의 대표적인 처리 순서는 다음과 같습니다.

  1. CPU가 예외를 발생시켜 커널의 Page Fault 핸들러로 제어를 넘깁니다.
  2. 커널이 유효한 주소와 허용된 접근인지 확인합니다. 복구할 수 없는 잘못된 접근이면 오류를 전달합니다.
  3. 물리 프레임을 확보하고, 부족하면 기존 페이지를 회수·교체합니다.
  4. 필요에 따라 파일·스왑에서 읽거나, 0으로 채운 페이지를 준비하거나, Copy-on-Write 복사를 수행합니다.
  5. 페이지 테이블과 필요한 TLB 상태를 갱신하고, 중단된 명령을 다시 실행합니다.

디스크 I/O가 필요한 경우에는 해당 작업이 대기하는 동안 다른 작업을 실행할 수 있습니다.

출처 및 참고자료