페이지 교체 정책 (page replacement policy)
운영체제가 특정 페이지를 물리 메모리에 올리려 하는데, 물리 메모리가 다 차있는 경우
기존 페이지 중 하나를 물리 메모리에서 저장 매체로 내리고(저장)
새로운 페이지를 해당 물리 메모리 공간에 올린다.
1) 최적 페이지 교체 알고리즘 (OPT, OPTimal Replacement Algorithm)
: 앞으로 가장 오랫동안 사용하지 않을 페이지를 내리자! OS 에서는 구현 불가능
2) LRU(Least Recently Used) 페이지 교체 알고리즘
가장 오래 전에 사용된 페이지 교체, OPT 교체 알고리즘이 구현 불가능하므로 과거 기록을 기반으로 시도
3) LFU(Least Recently Used) 페이지 교체 알고리즘
가장 적게 사용된 페이지를 내리자!
4) 페이지 스왑 알고리즘 (NUR)
LRU와 마찬가지로 최근에 사용되지 않은 페이지부터 교체하는 기법
각 페이지마다 참조 비트(R), 수정 비트(M)을 둠(R,M)
- (0,0), (0,1), (1,0), (1,1) 순으로 페이지 교체
→ (0,0), (0,1), (1,0), (1,1) 순으로 페이지 교체이므로 읽고 쓰기를 다 한것이 마지막이므로 2번이 4번으로 교체
스레싱 (Thrashing)
→ 반복적으로 페이지 폴트가 발생해서 과도하게 페이지 교체 작업이 일어나 실제로는 아무일도 하지 못하는 상황
참고로 알아두기
세그멘테이션 기법
- 가상 메모리를 서로 크기가 다른 논리적 단위인 세그먼트(segment)로 분할
cf. 페이징 기법에서는 가상메모리를 같은 크기의 블록으로 분할
- 세그멘테이션은 크기가 다른 segment단위로 물리 메모리에 로딩
- 내부 단편화(페이지 기법) : 페이지 블록만큼 데이터가 딱 맞게 채워져있지 않을 때 공간 낭비
- 외부 단편화(세그멘테이션 기법) : 물리 메모리가 원하는 연속된 크기의 메모리를 제공해주지 못하는 경우
- 세그멘테이션/페이징 모두 하드웨어 지원 필요
: 다양한 컴퓨터 시스템에 이식성을 중요시하는 리눅스는 페이징 기법을 기반으로 구현
제로베이스 컴퓨터 공학 전공자 따라잡기 강의 시청 후 정리한 내용입니다.