*메모리(memory)란?
초창기 컴퓨터에서는 사용 가능한 RAM의 용량이 가장 큰 실행 어플리케이션의 주소 공간보다 커야 했다. 그렇지 않을 경우 "메모리 부족" 오류에 의해 해당 애플리케이션을 실행할 수 없었다.
이후 오버레이 기법을 사용했지만 결국 똑같은 메모리 부족 오류가 발생했고, 여기서 더 발전시킨 방법이 가상 메모리 기법이다.
가상 메모리는 메모리가 실제 메모리보다 많아 보이게 하는 기술로, 어떤 프로세스가 실행될 때 메모리에 해당 프로세스 전체가 올라가지 않더라도 실행이 가능하다는 점에 착안하여 고려되었다.
애플리케이션이 실행될 때, 실행에 필요한 일부분만 메모리에 올라가며 애플리케이션의 나머지는 디스크에 남게 된다. 즉, 디스크가 RAM의 보조 기억 장치(Backing store)처럼 작동한다.
가상 메모리를 구현하기 위해서는 컴퓨터가 특수 메모리 관리 하드웨어를 갖추고 있어야 한다.
MMU는 가상주소를 물리주소로 변환하고, 메모리를 보호하는 기능을 수행한다.
MMU를 사용하게 되면, CPU가 각 메모리에 접근하기 이전에 메모리 주소 번역 작업이 수행된다.
그러나 메모리를 모두 가상 주소에서 물리적 주소로 번역하게 되면 작업 부하가 너무 높아지므로, MMU는 RAM을 여러 부분(페이지)로 나누어 각 페이지를 하나의 독립된 항목으로 처리한다.
페이지 및 주소 번역 정보를 기억하는 작업이 가상 메모리를 구현하는 데 있어 결정적인 절차이다.
결론
가상 메모리란 메모리에 로드된, 실행중인 프로세스가 메모리가 아닌 가상의 공간을 창조해 마치 커다란 물리 메모리를 갖는 것처럼 사용할 수 있게 해주는 기법이다.