因为页面置换需要启动I/O磁盘,会有较大的开销,应该追求更少的缺页率
-
最佳置换算法
- 每次淘汰的都是以后永不使用的或者是最长时间不使用的
- 因为未来调用哪一页是不可预知的是理想化的
- 缺页不一定发生页面置换
-
先进先出置换算法
- belady异常:页面更多反而缺页率更低
-
最近最久未使用LRU
- 需要专门的硬件,性能最好,算法开销大
-
时间置换算法CLOCK
- 最近未用算法
- 简单的CLOCK算法:如果访问过设置为1,则设置为0,如果是0,则淘汰该页面,然后把访问位改成1
-
改进型的时钟置换算法
- 可以优先置换那些没有修改过的页面,这样就不必重新写回外存
- 可以设置(访问位,修改位)
- 目的是优先换出修改位为0,未被修改的,访问位为0,最长时间未被访问的
- 步骤
- 寻找0,0:没有访问过也没修改过
- 寻找0,1:寻找修改过,但很长时间没有访问过,将访问位置为0
- 寻找0,0:寻找没有修改过的页面
- 寻找0,1