가상 메모리는 실제 물리 메모리 용량을 초과하는 프로그램 실행을 가능하게 하는 기술이다. 이 기술은 물리 메모리와 보조 저장 장치를 함께 사용하여, 프로그램에게 더 큰 메모리 공간을 제공하는 것처럼 보이게 한다.
운영 체제와 하드웨어의 지원으로 가능하다. 페이지 테이블을 통해 가상 주소와 물리 주소 간의 매핑 정보를 관리하고, 메모리 관리 단위(MMU)는 이를 사용하여 가상 주소를 물리 주소로 변환한다.
Page Fault는 필요한 데이터나 코드가 메모리에 없을 때 발생한다. 처리 과정은 다음과 같다:
1. Page Fault 감지 및 인터럽트 발생
2. 페이지 테이블에서 디스크 위치 확인
3. 물리 메모리 내 공간 확보 (필요시 다른 페이지 스왑 아웃)
4. 디스크에서 요구된 페이지를 메모리로 읽어옴
5. 페이지 테이블 업데이트 및 프로그램 실행 재개
페이지 크기가 커지면 내부 단편화로 인해 실제로 사용되지 않는 데이터가 메모리에 로드될 수 있으므로, 전반적인 메모리 사용 효율성이 떨어질 수 있다. 따라서, 페이지 크기가 페이지 폴트 빈도에 직접적인 영향을 미친다고 단정하기 어렵다.
세그멘테이션 방식에서도 가상 메모리를 사용할 수 있다. 세그멘테이션은 메모리를 논리적 단위로 나누고, 이와 결합된 페이지화 기법을 통해 가상 메모리를 관리할 수 있다. 이는 세그멘테이션의 논리적 메모리 관리와 페이지화의 효율적인 물리 메모리 관리 장점을 모두 활용할 수 있다.