Page fault란?

Date:     Updated:

카테고리:

태그:

Page fault

Page Fault란?

운영체제는 메모리를 가진다. 메모리 안에는 여러가지 리소스(주소값이나, 이미지 파일이나, 코드적인 데이터든…)를 가지고 있는데. 페이지 폴트는 가상 메모리 시스템에서, 프로세스가 접근하려는 메모리 페이지가 물리적 메모리에 존재하지 않을 때 발생하는 이벤트이다.

따라서, Page Fulat는 예외 상황이다.

Page fault가 어떤 방식으로 작동되는가?

  1. 페이지 폴트 발생 → 위에서 서술했던 것과 동일하게, 프로세스가 메모리에 접근하려 할 때(여러 이유로) 해당 주소에 대응하는 페이지가 물리 메모리에 없을 때 페이지 폴트가 발생한다.
  2. 인터럽트 처리(예외 사항인 인터럽트가 발생했으니) → 운영 체제는 이 인터럽트를 받고 현재 CPU 상태를 저장한 후, 페이지 폴트 처리 루틴을 실행한다.
  3. 페이지 로딩 → 운영 체제는 물리 메모리에 비어있는 프레임(물리 메모리의 일종의 단위, 비어있는 공간으로 나름 생각해도?)이 있는지 찾는다. 그 후, 비어있는 프레임에 해당 페이지를 로드한다.
  4. 페이지 테이블 업데이트 → 운영체제는 페이지 테이블(가상 메모리 → 물리 메모리 주소 변환을 맵핑햊둔 것)을 갱신한다.
  5. 그 이후, 프로세스를 재개하여 프로그램을 실행시킨다.

OS 카테고리 내 다른 글 보러가기

댓글 남기기