局部页面置换算法
最优页面置换算法
基本思路 :
当一个缺页中断发生时, 对于保存在内存当中的每一个逻辑页面, 计算在它的下一次访问之前, 还需等待多长时间, 从中选择等待时间最长的那个, 作为被置换的页面...FIFO算法很少单独使用.
举例:
最近最久未使用算法LRU(Least Recently Used)
基本思路 :
当一个缺页中断发生时, 选择最久未使用的那个页面, 并淘汰....它是对最优页面置换算法的一个近似, 其依据是程序的局部性原理, 即在最近一小段时间(最近几条指令)内, 如果某些页面被频繁地访问, 那么再将来的一小段时间内, 他们还可能会再一次被频繁地访问....LRU算法需要记录各个页面使用时间的先后顺序, 开销比较大.
举例:
两种可能的实现方法是 :
系统维护一个页面链表, 最近刚刚使用过的页面作为首节点, 最久未使用的作为尾结点....当需要淘汰一个页面时, 总是选择栈底的页面, 它就是最久未使用的.
时钟置换算法
基本思路 :
需要用到页表项的访问位, 当一个页面被装入内存时, 把该位初始化为0.