실제 RAM의 용량은 물리적인 한계가 명확하지만, 현대 운영체제는 수십 기가바이트의 프로그램을 동시에 실행할 수 있다.
이는 실제 메모리보다 더 큰 공간을 가상으로 제공하는 ‘가상 메모리(Virtual Memory)’ 기술 덕분이다.
주소 변환: 가상에서 물리로
프로세스는 독립된 가상 주소 공간을 사용하며, MMU(Memory Management Unit) 하드웨어가 이를 실제 RAM의 물리 주소로 변환한다.
- 페이지(Page): 가상 메모리의 고정 크기 단위.
- 프레임(Frame): 물리 메모리의 고정 크기 단위.
- 페이지 테이블: 두 주소 공간 사이의 매핑 정보를 담은 지도 역할을 한다.
요구 페이징 (Demand Paging) 메커니즘
모든 데이터를 한꺼번에 RAM에 올리는 것은 비효율적이다.
운영체제는 필요한 시점에만 데이터를 적재한다.
- 페이지 부재 (Page Fault): 접근하려는 데이터가 RAM에 없을 때 발생한다.
- 처리 과정: 운영체제는 디스크(스왑 영역)에서 데이터를 찾아 빈 프레임에 로드한 뒤 페이지 테이블을 갱신한다.
가상 메모리의 주요 이점
- 메모리 보호: 프로세스 간 영역 침범을 하드웨어 수준에서 차단하여 안정성을 높인다.
- 자원 공유: 동일한 라이브러리를 여러 프로세스가 물리 메모리 상에서 공유할 수 있게 한다.
- 추상화: 개발자는 물리적 제약 없이 연속된 넓은 주소 공간을 가정하고 개발할 수 있다.
P.S
가상 메모리는 하드웨어와 소프트웨어의 긴밀한 협업으로 탄생한 현대 컴퓨팅의 근간이다.
비록 페이지 부재로 인한 성능 저하 위험이 있으나, 정교한 페이지 교체 알고리즘을 통해 자원 활용도를 극대화하는 것 같다.