Second-Chance Algorithm

Basic Concept

就是 FIFO 加上一次「赦免機會」。把所有 frame 排成一個圈(像時鐘),有個指針指著下一個候選受害者。

How it works?

  1. 看指針指的 page 的 reference bit
    • bit = 0:直接踢掉,換入新頁,指針前進
    • bit = 1:給它第二次機會——把 bit 清成 0,指針前進,繼續看下一個
  2. 最差情況轉一整圈(所有 bit 都是 1),等同於 FIFO
         ┌──────────────────────────────┐
         ▼                              │
[A,bit=0] → [B,bit=1] → [C,bit=0] → [D,bit=1]
 ↑
指針 → A 的 bit=0,直接踢 A

new allocated frame 的 reference bit 是 1