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

요구 페이징 (Demand Paging)

요구 페이징 (Demand Paging)

프로세스 실행 시 모든 페이지를 메모리에 적재하지 않고, 실제로 접근(요구)하는 시점에 해당 페이지만 디스크에서 메모리로 적재하는 가상 메모리 관리 기법

특징: 지연 적재(Lazy Loading), 페이지 폴트 기반, 참조 지역성 활용, 메모리 효율 극대화

동작원리 — 페이지 폴트 처리 과정

유효 접근 시간(EAT, Effective Access Time)

  • EAT = (1 - p) × 메모리 접근 시간 + p × 페이지 폴트 처리 시간
  • p = 페이지 폴트 확률, 일반적으로 10⁻⁶ ~ 10⁻³
  • 예: p = 0.001, 메모리 100ns, 폴트 처리 10ms → EAT = 0.999×100 + 0.001×10⁷ ≈ 10,100ns
  • 페이지 폴트 확률이 성능에 극히 민감 → 낮은 페이지 폴트율이 핵심

프리페칭(Prefetching): 인접 페이지를 미리 적재하여 폴트 감소, 공간적 지역성 활용

순수 요구 페이징(Pure Demand Paging): 최초 실행 시 어떤 페이지도 적재하지 않음, 첫 명령어부터 폴트 발생

스래싱과의 관계: 워킹셋 > 가용 메모리 시 페이지 폴트 폭증 → CPU 이용률 급락 → 스래싱(Thrashing) 발생

장점: 메모리 절약(필요한 페이지만), 빠른 프로세스 시작, 다중 프로그래밍 도 향상

단점: 페이지 폴트 시 디스크 I/O 지연(수 ms), 폴트 처리 오버헤드, 스래싱 위험

비교: 요구 페이징(지연적재/폴트기반) vs 선행 페이징(미리적재/프리페칭) vs 스와핑(프로세스 전체 교체)

연관: 가상 메모리, 페이지 폴트, 페이지 교체 알고리즘, 스래싱, 워킹셋