가상 메모리와 페이지 폴트(Page Fault)의 개념을 설명해주세요.
답변 포인트
프로세스가 보는 주소 공간과 실제 물리 메모리가 어떻게 매핑되는지 생각해보세요.
정답 및 해설
빠른 요약
가상 메모리는 각 프로세스가 독립적이고 연속된 큰 메모리 공간을 가진 것처럼 보이게 하는 운영체제의 메모리 관리 기법입니다. 실제로는 가상 주소가 페이지 단위로 나뉘고, 페이지 테이블을 통해 물리 메모리 프레임이나 디스크 영역에 매핑됩니다.
가상 메모리는 각 프로세스가 독립적이고 연속된 큰 메모리 공간을 가진 것처럼 보이게 하는 운영체제의 메모리 관리 기법입니다. 실제로는 가상 주소가 페이지 단위로 나뉘고, 페이지 테이블을 통해 물리 메모리 프레임이나 디스크 영역에 매핑됩니다.
이 방식 덕분에 프로세스는 서로의 메모리를 직접 침범하기 어렵고, 실제 RAM보다 큰 주소 공간을 사용할 수 있습니다. 또한 필요한 페이지만 물리 메모리에 올리는 demand paging도 가능합니다.
Page Fault는 프로세스가 접근한 가상 페이지가 현재 물리 메모리에 없거나 접근 권한이 맞지 않을 때 발생하는 예외입니다. 운영체제는 fault 원인을 확인한 뒤, 합법적인 접근이라면 디스크에서 페이지를 읽어 메모리에 올리고 명령을 재개합니다. 불법 접근이면 segmentation fault 같은 오류로 프로세스를 종료할 수 있습니다.
Page Fault가 항상 나쁜 것은 아닙니다. demand paging에서는 정상적인 메커니즘입니다. 하지만 working set이 RAM보다 커져 page fault가 과도하게 발생하면 디스크 I/O가 늘고 시스템이 급격히 느려집니다. 이를 thrashing이라고 합니다.
면접에서는 가상 메모리가 “보호, 추상화, 효율적 적재”를 제공한다고 정리하면 좋습니다.