토픽 38 / 85·메모리 관리
페이징 (Paging)
페이징 (Paging)
가상 메모리를 고정 크기 페이지로, 물리 메모리를 동일 크기 프레임으로 나누어 비연속적으로 할당하는 메모리 관리 기법
목적: 외부 단편화 제거, 메모리 할당 단순화, 가상 메모리 구현
특징: 고정 크기(4KB), 페이지 테이블, 주소 변환, 내부 단편화
구성요소: 페이지(가상), 프레임(물리), 페이지 테이블, TLB, MMU
주소 변환: Virtual Address = VPN(Virtual Page Number) + Offset → Physical Address = PFN(Physical Frame Number) + Offset
페이지 테이블: VPN→PFN 매핑, 유효 비트, 보호 비트(R/W/X), Dirty/Reference 비트, 프로세스당 1개
다단계 페이지 테이블: 메모리 절약, x86-64는 4단계(PML4→PDPT→PD→PT), 48비트 VA
페이지 크기: 4KB(기본), 2MB(Huge Page), 1GB(Giant Page), TLB 효율 vs 내부 단편화 트레이드오프
시간 복잡도: 주소 변환 O(1) - TLB 히트, O(n) - 페이지 테이블 워크(n=레벨)
장점: 외부 단편화 없음, 단순한 할당, 프로세스 격리, 공유 메모리
단점: 내부 단편화(평균 2KB), 페이지 테이블 메모리, 주소 변환 오버헤드
적용사례: 모든 현대 OS, x86-64, ARM, 가상 메모리
비교: 페이징(고정/외부단편화없음) vs 세그멘테이션(가변/논리적) vs 혼합
연관: 가상 메모리, MMU, TLB, 페이지 테이블, 페이지 교체