NUR
NUR(Not Used Recently, 최근에 사용하지 않은 페이지 교체)은 참조 비트와 변형 비트를 사용해 최근에 사용되지 않은 페이지를 우선 교체하는 페이지 교체 알고리즘이다. LRU의 시간 정보 추적 비용을 줄이기 위한 근사 기법이다.
두 개의 비트
- 참조 비트(R): 최근에 페이지가 참조되었으면 1
- 변형 비트(M): 페이지가 수정되었으면 1
이 둘의 조합으로 4가지 상태가 만들어진다.
| (R, M) | 설명 | 교체 우선순위 |
|---|---|---|
| (0, 0) | 최근 미참조 + 미변형 | 1순위 (가장 먼저 교체) |
| (0, 1) | 최근 미참조 + 변형 | 2순위 (디스크 쓰기 필요) |
| (1, 0) | 최근 참조 + 미변형 | 3순위 |
| (1, 1) | 최근 참조 + 변형 | 4순위 (가장 나중) |
동작
- 페이지 폴트 발생
- (0,0) 페이지를 찾아 교체. 없으면 (0,1) → (1,0) → (1,1) 순으로 탐색
- 일정 주기마다 모든 R 비트를 0으로 리셋
장단점
- 장점: LRU에 비해 비트 두 개만 추가하면 됨, 구현 간단, 디스크 I/O 최소화
- 단점: 참조 시점의 정밀도가 낮음, 주기적 리셋 비용