질문 182 · 실전 면접 답변
요구 페이징(Demand Paging)과 페이지 폴트(Page Fault)는 어떤 순서로 동작하나요?
이렇게 답해 보세요 (핵심 답변)
요구 페이징은 프로그램의 모든 페이지를 미리 적재하지 않고 실제로 접근할 때 준비하는 정책입니다. CPU가 접근한 가상 주소에 유효한 매핑이 없으면 페이지 폴트가 발생하고, 운영체제는 접근 권한과 매핑을 확인해 새 프레임 할당, 디스크 적재, 또는 복사 지연(Copy-on-Write) 처리를 수행한 뒤 명령어를 재개합니다. 만약 허용되지 않은 잘못된 주소 접근이라면 프로세스 오류로 처리하며, 모든 페이지 폴트가 항상 디스크 I/O를 수반하는 것은 아닙니다.
함께 설명하면 좋은 이유 (꼬리질문 대비)
- 실제로 쓰이지 않는 코드나 힙 영역을 처음부터 물리 메모리에 올리지 않으므로 초기 실행 속도와 메모리 효율이 좋아집니다.
- 활성 작업 집합이 물리 RAM보다 커서 디스크 페이지 교체가 끊임없이 일어나면 실행보다 I/O 대기가 길어지는 스래싱(Thrashing)이 발생합니다.
면접에서 자주 하는 실수
페이지 폴트(Page Fault)라는 이름만 보고 언제나 프로그램 버그나 치명적 오류라고 설명하면 안 됩니다.
원리와 예제까지 읽기
공식 참고 자료
질문 목록 출처 ↗ · 원본 182번을 바탕으로 질문과 답변을 새로 정리했습니다.