개요

Demanding Paging은 프로그램이 필요한 파일의 모든 내용을 메모리에 적재하는 것이 아니라, Virtual Memory를 사용하여 필요한 순간에만 필요한 페이지를 Storage에서 읽어들여서 메모리에 올리는 기술이다.

과정

  1. TLB 미스
  2. 페이지 테이블 Walk
  3. 페이지 폴트
  4. Trap to Kernel
  5. Virtual Address를 File + Offset으로 변환
  6. Page frame할당
  7. Disk block을 읽어서 Frame에 작성 시작 (즉 DMA 시작)
  8. Disk read가 끝나면 Disk Interrupt
  9. 완료된 페이지를 Valid하다고 표기
  10. Process를 Page Fault가 난 지점부터 수행
  11. TBL 미스
  12. 페이지 테이블 워크 -> 정상적으로 페이지가 반환됨