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

페이징 (Paging)

페이징 (Paging)

가상 메모리를 고정된 크기의 페이지로, 물리 메모리를 동일한 크기의 프레임으로 나누어 불연속적으로 할당하는 메모리 관리 기법

목적: 외부 단편화 제거, 메모리 할당 단순화, 가상 메모리 구현

특징: 고정 크기(4KB), 페이지 테이블, 주소 변환, 내부 단편화(평균 0.5페이지)

주소 구조: Virtual Address = VPN(상위 비트) + Offset(하위 12비트/4KB)

페이지 테이블: VPN → PFN 매핑, 유효 비트, 보호 비트(R/W/X), Dirty/Reference 비트

다단계 페이지 테이블: 메모리 절약, x86-64는 4단계(PML4→PDPT→PD→PT), 48비트 VA

페이지 크기: 기본 4KB, Huge Page(2MB), Giant Page(1GB), TLB 효율·내부 단편화 트레이드오프

장점: 외부 단편화 없음, 구현 단순, 프로세스 격리, 공유 메모리 지원

단점: 내부 단편화(평균 2KB), 페이지 테이블 메모리, 주소 변환 오버헤드

적용사례: Linux, Windows, macOS, x86-64, ARM

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

연관: 가상 메모리, MMU, TLB, 페이지 폴트, 페이지 교체