문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. [[분류: 메모리 관리]] == 개요 == 페이지 부재 또는 페이지 폴트(page fault, #PF, PF, hard fault)는 메모리에 적재된 페이지중에 사용 페이지가 없을 때를 가리킨다. 시스템의 종류에 따라 약간 다를 수 있으나, 대체로는 빈 페이지가 하나도 없거나, 미리 정한 수보다 적을 때 발생한다. == 처리 과정 == Page Fault -> ([[인터럽트]]) Page fault Handler (Allocate page) -> (인터럽트 핸들러) Physical memory Allocation -> Initialize a free page -> (Physical memory Manager) Map the page to PT -> (Physical memory Manager) Application Resumes (User or Kernel Application) [[인터럽트]]에 의해서 Page Fault가 커널로 전달되면 [[Buddy Allocation]]과 같은 [[kalloc]]에 의해서 물리 메모리가 커널에 할당되게 된다. 커널은 할당된 물리 메모리를 [[mmap]]혹은 [[stack]]과 같이 페이지의 용도에 따라서 적절히 초기화 하고 PT에 적재 함으로 페이지 폴트를 해결한다. 이 과정에서 Hardware가 메모리 접근을 하게 되면 [[PT]] entry와 [[Page table entry]]에 dirty bit표시를 하게 된다. 만약 PMM과정에서 페이지가 swap-out하게 되면 이 dirty bit을 참고하여 이 페이지를 write-back할지를 결정하게 된다. 또한 used bit이라는 것도 있는데, TLB 미스가 발생하면 page table에 표시하게 된다. 이 두 비트는 나중에 스케쥴링 Policy에서 사용하게 된다. Page fault 문서로 돌아갑니다.