Related to: Operating System
가상 메모리(virtual memory, virtual storage)란?

메모리 관리 기법의 하나로, 기계에 실제로 이용 가능한 기억 자원을 이상적으로 추상화하여 사용자들에게 매우 큰 (주) 메모리로 보이게 만드는 것을 의미합니다.
각 프로그램에 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식입니다.
- 가상 주소(virtual address) or 논리 주소(logical address) : 가상적으로 주어진 주소
- 물리 주소(physical address) or 실주소(real address) : 실제 메모리 상에서 유효한 주소
- 메모리 관리 장치(MMU) : 가상 주소 공간에서 물리 주소로 변경해주는 장치
등장 배경
기존에는 프로세스가 실행되는 코드의 전체를 메모리에 로드해야 했고, 메모리 용량보다 더 큰 프로그램은 실행시킬 수 없었습니다.
하지만 실제로는 코드의 일부에서만 대부분의 시간을 사용하고, 프로세스는 특정 순간에는 항상 작은 양의 주소 공간을 사용했기 때문에 이러한 방식은 매우 비효율적이었습니다.
**가상 메모리(Virtual Memory)**는 이러한 물리적 메모리 크기의 한계를 극복하기 위해 나온 기술입니다. 프로세스를 실행할 때 실행에 필요한 일부만 메모리에 로드하고 나머지는 디스크에 두는 것입니다.
이를 통해 프로세스 전체가 물리적 메모리에 있는 것 ‘처럼’ 수행되는, 즉 물리적 메모리가 훨씬 많이 있는 것처럼 보이게 됩니다.
결과적으로 메모리에 작은 양의 주소 공간만 있으면 충분히 프로세스를 수행할 수 있고, 그에 따라 더 많은 프로그램을 동시에 실행할 수 있게 됩니다.
- 이처럼 현재 필요한 page만 메모리에 올리는 것을 Demand Paging이라고 합니다.