victim
)을 택한다(valid
→ invalid
).invalid
→ valid
).반복적인 페이지 교체 과정을 최소화하는 게 성능 향상의 키(I/O는 오버헤드가 크기 때문이다!)
즉 최근에 쓴 히스토리가 있다면 한 번 더 기회를 준다는 알고리즘!
Head
, Tail
포인터 → Head
는 큐를 따라서 이동. 가리키고 있는 페이지 참조 비트가 1이라면 0으로 리셋tail
이 가리키고 있는 페이지를 내본다. 일반적인 시점에서는 head
를 움직여서 이후의 페이지 아웃을 대비Clock 알고리즘 또한 참조 비트가 1이라면 현재
head
가 가리키는 페이지가 최근에 사용되었음을 체크한다!
두 가지 비트의 활용 방법은 총 4가지. 1순위 ~ 4순위까지 잡아서 교체할 여부를 체크한다!