페이지 교체는 물리 메모리가 부족할 때 기존 페이지 중 회수할 대상을 정해 새 페이지가 사용할 프레임을 확보하는 과정입니다. 다시 사용할 가능성이 낮은 페이지를 골라 Page Fault와 I/O 비용을 줄이는 것이 목적입니다.

알고리즘교체 기준특징과 한계
FIFO메모리에 가장 먼저 들어온 페이지단순하지만 자주 쓰는 페이지도 교체하며 Belady의 모순 가능
OPT앞으로 가장 늦게 다시 사용할 페이지이론적으로 최적이지만 미래를 알아야 하므로 비교 기준으로 사용
LRU가장 오랫동안 사용하지 않은 페이지시간 지역성을 활용하지만 정확한 접근 순서 관리 비용 발생
LFU사용 횟수가 가장 적은 페이지사용 빈도를 반영하지만 과거에 많이 사용된 페이지가 오래 남을 수 있으며, 사용 횟수 관리 비용 발생
Clock참조 비트를 순회하며 최근 사용되지 않은 페이지 선택참조 비트가 1이면 0으로 바꾸고 기회를 더 주며, LRU를 저렴하게 근사

교체 대상의 데이터가 변경되었다면 보존을 위한 기록이 필요할 수 있습니다. 따라서 참조 이력뿐 아니라 Dirty 여부와 회수 비용도 성능에 영향을 줍니다.

리눅스에서는 MGLRU를 사용하여 페이지를 관리하고 있습니다.

출처 및 참고자료

[운영체제] 페이지 교체 알고리즘패스트캠퍼스 운영체제 강의와 쉽게 배우는 운영체제 교재에 대한 TIL입니다. 저번 포스팅은 메모리 관리 작업 중 메모리 가져오기(Fetch) 정책에 관한 것이었다면, 이번 포스팅은 메모리 재배치(Replacement) 정책에 관한 것이다. 페이지 교체 알고리즘의 종류 페이지 교체 알고리즘의 핵심은 메모리에서 앞으로 사용할 가능성이 적은 페이지를 대상 페이지로 선정하여 페이지 부재를 줄이고 시스템의 성능을 향상하는 것이다. 따라서, 이에 대한 구현 방식에 따라 아래와 같은 여러 종류의 페이지 교체 알고리즘이 만들어졌다. 앞으로 소개될 모든 페이지 교체 알고리즘은 아래 그림과 같은 메모리 접근 순서를 사용하고 물리 메모리는 3개의 프레임을 가졌다고 가정할 것이므로 참고하고 읽어주길 바란다. 페이지는 번호 대..rob-coding.tistory.com