Demand Paging
필요한 페이지는 접근될 때 메모리에 올라온다
처음부터 모든 페이지를 적재하지 않고, 실제 접근이 일어난 페이지만 가져온다. valid bit가 0이면 페이지 폴트 처리 경로로 이동한다.
valid 1
페이지가 메모리에 있어 바로 접근 가능
valid 0
아직 메모리에 없거나 접근이 허용되지 않음
locality
가까운 시간에 같은 근처 페이지를 반복해서 쓰는 성질
접근
페이지 테이블 확인
가상 주소가 어느 페이지를 가리키는지 찾는다.
판정
valid bit 검사
1이면 메모리 접근, 0이면 폴트 처리로 간다.
적재
디스크에서 페이지 읽기
빈 프레임을 찾거나 교체 대상을 고른 뒤 페이지를 올린다.
재시도
테이블 갱신 후 명령 재실행
이제 valid bit가 1이므로 같은 접근이 성공한다.
개념
좋은 점
비용
지연 적재
실제로 쓰는 페이지만 메모리에 올린다.
첫 접근에서 페이지 폴트가 발생할 수 있다.
지역성
자주 쓰는 근처 페이지만 유지해도 효율이 좋다.
지역성이 깨지면 폴트가 급증한다.
작업 집합
최근 필요한 페이지 묶음을 기준으로 메모리를 배분한다.
너무 작으면 스래싱으로 성능이 무너진다.
메모리 절약
초기 실행에 필요 없는 페이지를 올리지 않아 시작 비용을 낮춘다.
폴트 경로
페이지 폴트는 예외 처리와 디스크 접근을 동반해 매우 비싸다.
성능 기준
좋은 교체 정책은 작업 집합을 최대한 메모리에 남긴다.