모든 페이지들이 물리 메모리에 존재한다 가정했지만...
큰 주소공간 지원을 위해서는 일부 공간을 하드디스크 드라이브에 저장해야함
디스크에 페이지를 저장할 일정 공간 확보가 필요
-> 스왑 공간(swap space)
물리메모리에 존재하지 않는 가능성이 생김
이를 표현하려면 PTE에서 present bit 사용
1로 설정되어 있다면 물리 메모리에 존재
0으로 설정되어 있다면 존재하지 않음
물리 메모리에 존재하지 않는 메모리 접근 = 페이지폴트
페이지폴트 발생시 운영체제가 페이지폴트 핸들러 실행
원하는 페이지의 디스크상의 위치는 어떻게 알까?
-> 해당 페이지의 스왑 공간상의 위치를 페이지테이블에 저장해둠
이후 PTE의 PFN을 해당 메모리 위치로 갱신
& 페이지 폴트 발생시킨 명령어 재실행!
공간 확보를 위해 하나 또는 그 이상의 페이지가 아수됨
TLB 미스 발생시
페이지가 존재하며 유효한 경우
TLB 핸들러가 PTE에서 PFN 가져와서 명령 재시도
페이지가 유효하지만 존재하지 않는 경우
페이지폴트 핸들러가 디스크에서 불러옴
페이지가 유효하지 않은 경우
트랩 핸들러에 의해 처리