물리 메모리 공간과 swap 공간을 합쳐서 만들어낸 가짜 메모리를 가상 메모리라고 합니다. 페이징 기법 중 CPU를 통해 요구하던 논리 주소가 가상 메모리상의 주소입니다.

주소를 변환하고 메모리에서 Page를 찾아내는 건 사용자 프로세스와 하드웨어에서 진행하지만, 하드디스크 같은 입출력 장치를 건드리는 것은 운영체제의 관할입니다. swap 공간에서 page를 꺼내려면 운영체제의 도움이 필요합니다.

TLB와 메모리에 없는 페이지가 요구되면 MMU가 프로세스를 일시정지시킵니다. 그 때 운영체제는 CPU를 점령하여, 왜 프로세스가 멈췄는지 체크합니다.

만약 이상한 주소를 요청한거라면 차단합니다. 운영체제가 하드디스크의 swap 공간에서 페이지를 메모리로 가져오고, TLB에 주소를 등록합니다. Page table도 valid bit과 함께 업데이트 합니다.

또한 CPU가 작업을 진행하면서 page fault 때문에 swap 공간에서 페이지를 가져오다가, 물리 메모리에 frame이 가득차게 될 때가 있습니다. 다음 page fault 때 하드디스크에서 페이지를 메모리에 올리기 위해 기존 메모리의 frame을 차지한 page 중 하나를 내쫓습니다. 이 작업을 Page Replacement라고 하는데 어떤 페이지를 replacement할지 운영체제가 결정합니다.

https://www.youtube.com/watch?v=qxmdX449z1U