개발

가상 메모리란?

Jude.R 2025. 1. 22. 01:17
반응형

가상 메모리는 컴퓨터 시스템에서 물리적 메모리(예: RAM)의 한계를 극복하고, 메모리 관리의 효율성을 높이기 위해 사용하는 기술입니다. 운영 체제가 프로그램에 실제 물리적 메모리가 아닌 가상의 메모리 주소를 제공함으로써, 프로그램이 사용할 수 있는 메모리 공간을 물리적 메모리 크기에 제한받지 않도록 합니다.


가상 메모리의 주요 개념과 특징

  • 가상 주소와 물리적 주소: 프로그램은 가상 메모리 주소를 사용하며, 운영 체제와 하드웨어(메모리 관리 장치, MMU)가 이를 실제 물리적 메모리 주소로 변환합니다. 이 과정은 "주소 매핑" 또는 "주소 변환"이라고 합니다.
  • 페이지와 페이징(Page and Paging): 가상 메모리는 페이지라는 작은 단위로 나누어 관리됩니다. 필요할 때만 특정 페이지를 물리적 메모리에 로드하여 메모리 사용을 최적화합니다.
  • 스왑 공간(Swap Space): 물리적 메모리가 부족할 경우, 디스크의 일부를 가상 메모리로 활용합니다. 자주 사용되지 않는 데이터를 디스크로 옮기는 과정을 "스왑아웃(Swap Out)", 다시 가져오는 과정을 "스왑인(Swap In)"이라고 합니다.
  • 장점:
    • 물리적 메모리보다 더 큰 메모리 공간을 사용하는 것처럼 동작할 수 있습니다.
    • 프로그램 간의 메모리 충돌을 방지하고, 메모리 보호 기능을 제공합니다.
    • 여러 프로그램이 동시에 실행될 때 메모리 자원을 효율적으로 분배할 수 있습니다.
  • 단점:
    • 스왑 작업이 과도하면 시스템 성능이 크게 저하됩니다. 이를 "스레싱(Thrashing)"이라고 합니다.
    • 디스크 I/O 속도는 RAM보다 느리기 때문에, 디스크를 활용한 가상 메모리는 성능 저하를 일으킬 수 있습니다.

동작 원리

  1. 주소 변환: CPU가 프로그램에서 가상 주소를 요청하면, 메모리 관리 장치(MMU)가 이를 물리적 주소로 변환합니다. 페이지 테이블(Page Table)이 가상 주소와 물리적 주소 간의 매핑 정보를 저장합니다.
  2. 페이지 폴트(Page Fault): 프로그램이 요청한 가상 주소에 해당하는 데이터가 물리적 메모리에 없을 경우 발생합니다. 운영 체제는 디스크에서 해당 데이터를 찾아 물리적 메모리에 로드한 후, 프로세스를 재개합니다.

실생활 비유

가상 메모리를 도서관에 비유하면 이해하기 쉽습니다:

  • 물리적 메모리: 도서관의 책장(책의 실제 공간).
  • 가상 메모리: 도서관에 있는 도서 카탈로그(책의 위치 정보를 저장한 리스트).
  • 스왑: 책장에 없는 책을 서고(디스크)에서 가져오는 과정.
  • 페이지 테이블: 카탈로그에 각 책의 위치를 기록한 인덱스.

활용 사례

  • 대형 프로그램 실행: 가상 메모리는 대용량 데이터를 처리하거나 메모리 사용량이 많은 애플리케이션에서 필수적입니다.
  • 멀티태스킹: 여러 프로세스가 동시에 실행될 때, 각 프로세스가 독립된 메모리 공간을 사용하는 것처럼 작동하도록 합니다.

요약

가상 메모리는 물리적 메모리의 한계를 극복하고 효율적으로 메모리를 관리하기 위한 핵심 기술입니다. 이를 통해 운영 체제는 더 많은 프로그램을 동시에 실행하거나, 큰 데이터를 처리하는 애플리케이션을 지원할 수 있습니다. 하지만 디스크를 활용하기 때문에 속도 저하에 주의가 필요합니다.

반응형