| 项目 | 值 |
|---|---|
| 别名 | 时钟置换算法、第二次机会算法、近似LRU |
| 核心思想 | 给每个页面一个访问位,淘汰时给未访问页面"第二次机会" |
| 实现 | 循环链表 + 访问位(reference bit) |
| 优势 | 实现简单,接近LRU性能 |
CLOCK 算法是 LRU 的近似实现,用一个访问位(reference bit)代替精确的访问时间记录。
简单 CLOCK 算法:
改进型 CLOCK 算法:
| 对比项 | 简单CLOCK | 改进型CLOCK |
|---|---|---|
| 位信息 | 只有访问位R | 访问位R + 修改位M |
| 淘汰优先级 | $R=0$优先 | $R=0,M=0 > R=0,M=1$ |
| 需要写回 | 不考虑 | 已修改页面需写回磁盘 |
| 性能 | 接近LRU | 比简单CLOCK更好 |
| 考法 | 解题套路 |
|---|---|
| 手算CLOCK | 维护循环链表和指针,$R=1$→置0跳过,$R=0$→淘汰 |
| 改进型CLOCK | 优先淘汰 $R=0,M=0$ 的页面 |
| CLOCK vs LRU | CLOCK 是 LRU 的近似,实现更简单 |
| 访问位R的作用 | 区分最近是否被访问——$R=1$ 说明最近访问过 |
↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。