저도 이런거 엄청좋아한다람쥐
설명을 위해 람쥐체는 버리겠다람쥐


윈도우 기준으로 설명을 드릴께요, 우리가 실행파일을 실행하게되면
실행파일을 전부 다 메모리에 올릴수는 없습니다. 그래서 물리 메모리를 
작은 단위로(32비트에 경우 4kb) 나누어서 page table로 관리를 합니다.
우리가 가상주소 예를들면 0x12341234에 접근하면 운영체제는 이 가상주소를 
물리주소로 변환하는 작업을 하게 됩니다.

참고그림
http://postfiles5.naver.net/20100807_228/idkkangjs_1281150870946iqAQ1_png/%EC%BA%A1%EC%B2%981_idkkangjs.png?type=w1


하지만 프로그램이 0xdeadbeef와 같은 가상주소를 접근하려고하는데
물리메모리에 매핑되어있지 않은 상태(page table entry의 present bit이 1이면 접근가능 0이면 접근불가)면 page fault 인터럽트가 발생합니다.
그럼 page fault handler에게 제어가 넘어가게 되고,
이 page fault handler는 물리 메모리에 빈 공간을 찾아 page in시키고 page table을 업데이트합니다.