目的:在缺页中断发生时,假如需要调入新的页面但是内存已满时,选择内存中哪个物理页面被置换
要求:尽可能减少换出换进次数(缺页中断的次数)
页面锁定:有一些必须常驻内存的操作系统的关键部分或进程 就需要在页表中添加锁定标志位
1.最优页面置换算法OPT
思路:缺页中断发生时,对保存在内存中的每一个逻辑页面,计算在他下一次访问之前还需等待多长时间,从中选择等待时间最长的那个,作为被置换
这是理想情况,需要预知未来,转而可以用其他算法性能评估(比如在模拟器运行)
2.FIFO算法
思路:选择在内存中驻留时间最长的页面淘汰,,,链表记录所有逻辑页面 链首时间最长(我们已知他们进入的顺序)
特点:产生的缺页次数比较多
3.最近最久未使用算法(LRU)
相似于最优算法,最优是将依据未来,LRU依据过去的访问情况来推测,即缺页中断时,选择最久未使用的那个页面,并淘汰之
实现方式:可以用一个堆栈 最新被使用的页压入栈顶,然后缺页中断时抽出栈底的那个
(数据结构不要学得太死,其实队列就可以完成 没必要用栈)
4.时钟页面置换算法
他是LRU的一种近似。是FIFO的一种改进 (达不到LRU)
通过把最老的页面置换出,依据是访问位 ,找到访问位为0的页表项,进行置换,认为较老
5.二次机会法
如果有脏页(被写过)就要把新内容写回去硬盘(就是说有写得页更容易留