가상 메모리(Virtual Memory)는 사용자에게 논리적 메모리와 물리적 메모리를 분리하여 인식하도록 한다. 이러한 분리는 적은 양의 물리적 메모리만 사용 가능할 때에도 프로그래머에게 대용량의 가상 메모리를 제공할 수 있다.
프로그램의 일부분만 메모리에 올릴 수 있다면...
1. 물리 메모리 크기에 제약받지 않게 된다.
2. 더 많은 프로그램을 동시에 실행할 수 있게 된다. 이에 따라 응답시간은 유지되고, CPU 이용률과 처리율은 높아진다.
3. swap에 필요한 입출력이 줄어들기 때문에 프로그램들이 빠르게 실행된다.
가상 메모리는 실제의 물리 메모리 개념과 사용자의 논리 메모리 개념을 분리한 것으로 정리할 수 있다.
프로그램이 실행되는 동안, 페이지 사용을 요구받은 경우에만 페이지에 적재한다.
요구 페이징 에서 언급된대로 프로그램 실행시에 모든 항목이 물리 메모리에 올라오지 않기 때문에, 프로세스의 동작에 필요한 페이지를 요청하는 과정에서 page fault(페이지 부재)가 발생하게 되면, 원하는 페이지를 보조저장장치에서 가져오게 된다. 하지만, 만약 물리 메모리가 모두 사용중인 상황이라면, 페이지 교체가 이뤄져야 한다.(또는, 운영체제가 프로세스를 강제 종료하는 방법이 있다.)