토픽 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, 페이징, 운영체제, 메모리 보호