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