Learning
토픽 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, 페이지 테이블, 페이지 교체