定义
页面置换算法(Page Replacement Algorithm)是在虚拟内存管理中,当物理内存已满且需要装入新页面时,决定淘汰哪个页面的算法。
常见算法
- OPT(最佳置换):淘汰最长时间内不再被访问的页面。理论最优但无法实现(需预知未来)。
- FIFO(先进先出):淘汰最早进入内存的页面。简单但可能出现 Belady 异常(分配页框增加缺页次数反而增加)。
- LRU(最近最久未使用):淘汰最近最长时间未被访问的页面。性能接近 OPT,但实现开销大。
- CLOCK(时钟/最近未使用 NRU):为每个页框设置访问位,循环扫描,淘汰访问位为 0 的页面。
- 改进型 CLOCK:同时考虑访问位和修改位,优先淘汰未被访问且未被修改的页面。
对比
| 算法 | 缺页率 | 实现复杂度 | Belady 异常 |
|---|---|---|---|
| OPT | 最低 | 不可实现 | 无 |
| FIFO | 高 | 低 | 有 |
| LRU | 低 | 高 | 无 |
| CLOCK | 中 | 中 | 无 |