Learning
토픽 44 / 111·메모리 계층 (Memory Hierarchy)

가상 메모리 (Virtual Memory)

가상 메모리 (Virtual Memory)

물리 메모리보다 큰 주소 공간을 프로세스에 제공하기 위해 디스크를 보조 기억장치로 활용하고 주소 변환을 통해 투명하게 관리하는 메모리 관리 기법

목적: 메모리 추상화, 프로세스 격리, 대용량 주소공간, 메모리 보호, 공유 메모리

특징: 주소 변환, 페이징/세그멘테이션, 요구 페이징, 페이지 폴트, 스왑

구성요소

  • 가상 주소(Virtual Address): 프로세스가 사용하는 논리 주소, 32/64비트
  • 물리 주소(Physical Address): 실제 RAM 주소
  • MMU(Memory Management Unit): 주소 변환 하드웨어
  • 페이지 테이블(Page Table): 가상→물리 매핑 테이블, OS 관리
  • TLB(Translation Lookaside Buffer): 페이지 테이블 캐시, 빠른 주소 변환

페이징

  • 페이지(Page): 가상 메모리 단위, 일반적 4KB
  • 프레임(Frame): 물리 메모리 단위, 페이지와 동일 크기
  • 페이지 테이블: VPN(Virtual Page Number) → PFN(Physical Frame Number) 매핑
  • 다단계 페이지 테이블: 메모리 절약, x86-64는 4단계

페이지 폴트: 가상 페이지가 물리 메모리에 없을 때, ① 인터럽트 → ② 디스크 로드 → ③ 페이지 테이블 갱신 → ④ 재실행

페이지 교체 알고리즘: FIFO, LRU(Least Recently Used), LFU, Clock, Working Set

TLB: Fully Associative, 64-512 엔트리, 히트 시 0사이클, 미스 시 페이지 테이블 워크

장점: 대용량 주소공간, 메모리 보호, 프로세스 격리, 공유 메모리, 유연성

단점: 주소 변환 오버헤드, 페이지 폴트 지연(ms), 디스크 I/O

적용사례: 모든 현대 OS(Linux, Windows, macOS), x86-64, ARM

비교: 페이징(고정크기/단순) vs 세그멘테이션(가변크기/논리적)

연관: MMU, TLB, 페이징, 운영체제, 메모리 보호