검색 여닫기
검색
메뉴 여닫기
518
228
4
2천
noriwiki
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
특수 문서 목록
파일 올리기
환경 설정 메뉴 여닫기
notifications
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
user-interface-preferences
한국어
개인 도구
로그인
Page fault 문서 원본 보기
noriwiki
문서 공유하기
다른 명령
←
Page fault
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
[[분류: 메모리 관리]] == 개요 == 페이지 부재 또는 페이지 폴트(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
문서로 돌아갑니다.