토픽 37 / 85·메모리 관리
가상 메모리 (Virtual Memory)
가상 메모리 (Virtual Memory)
물리 메모리보다 큰 주소공간을 프로세스에 제공하기 위해 디스크를 보조 기억장치로 활용하고 주소 변환을 통해 투명하게 관리하는 메모리 관리 기법
목적: 대용량 주소공간, 프로세스 격리, 메모리 추상화, 공유·보호
특징: 페이징/세그멘테이션, 요구 페이징, 페이지 폴트, 스왑
구성요소: 가상 주소, 물리 주소, MMU, 페이지 테이블, TLB, 스왑 공간
요구 페이징(Demand Paging): 필요할 때만 페이지 로드, 초기 로딩 빠름, 페이지 폴트
페이지 폴트(Page Fault): 가상 페이지가 물리 메모리에 없을 때 → 디스크에서 로드 → 수 ms 지연
페이지 교체 알고리즘: FIFO, LRU, LFU, Clock, Optimal
스래싱(Thrashing): 페이지 폴트가 과도하게 발생하여 CPU 활용률 급락, Working Set으로 완화
Working Set: 프로세스가 최근 사용한 페이지 집합, 메모리에 유지해야 할 최소 페이지
장점: 대용량 주소공간, 프로세스 격리, 메모리 공유, 보호, 유연성
단점: 페이지 폴트 지연(ms), 스래싱, 디스크 I/O 오버헤드
적용사례: 모든 현대 OS(Linux, Windows, macOS), x86-64, ARM
비교: 가상 메모리(대용량/페이지폴트) vs 물리 메모리(빠름/제한)
연관: 페이징, MMU, TLB, 페이지 교체, 스래싱