OS总结(五):页面置换算法

1、最优页面置换算法

1.1 页面置换的功能目标

(1)功能:当缺页中断发生,需要调入新的页面而内存已满时,选择内存当中哪个物理页面被置换。

(2)目标:尽可能减少页面的换入换出次数(即缺页中断的次数)。把未来不再使用的或短期内较少使用的页面换出,通常只能在局部性原理的指导下依据过去的统计技术来进行预测。

(3)页面锁定(Frame locking):用于描述必须常驻内存的操作系统的关键部分或时间关键(Time-critical)的应用进程。实现方法是在页表中添加锁定标志位(Lock bit)。

在这里插入图片描述

1.2 最优页面置换算法

基本思路:当一个缺页中断发生时,对于保存在内存中的每一个逻辑页面,计算在它的下一次访问之前,还需要等待多长时间,从中选择等待时间最长的那个,作为被置换的页面。不过,这只是一种理想情况,在实际中无法实现,因为操作系统无法知道每个页面要等待多长时间以后才能被再次访问。可用作其他算法的性能评价的依据(在一个模拟器上运行某个程序,并记录每一次的页面访问情况,在第二遍运行时即可使用最优算法)。

在这里插入图片描述

 

2、先进先出算法

在这里插入图片描述

在这里插入图片描述

3、最近最久未使用算法

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4、时钟页面置换算法

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5、二次机会法

在这里插入图片描述

如果是一次写操作,dirty bit会设置为1.说明内存访问这部分数据时是有写入操作的,和硬盘上原数据不一样,所以要写入硬盘,如果是0,对这部分内存没有写操作,那么说明内存和硬盘上内容是一样的,直接丢掉即可。目的就是减少对硬盘的写操作。如果used和dirty bit都是0,那么替换掉;如果其中一个是1,那么把这一位设置为0,指针往下走;如果都是1,那先把used换为0,说明有2次机会。

在这里插入图片描述

6、最不常用算法

在这里插入图片描述

缺点:初始化时访问次数多,而正常时访问次数少的帧。

在这里插入图片描述

7、Belaby现象,LRU、FIFO、Clock算法的比较

在这里插入图片描述

在这里插入图片描述

资源多了,反而缺页异常多了。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

8、局部页替换算法的问题,工作集模型

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

常驻集概念

在这里插入图片描述

9、全局页面置换算法

在这里插入图片描述

在这里插入图片描述

根据缺页率的变化来调整常驻集的大小。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

与工作集置换算法的区别

  • 对页的调整时机不一样。这个方法只能在缺页中断时判断是否更改,而后者是在每次换入换出时都做判断。
  • 都与局部页置换算法不一样。这两种涉及到工作集大小的调整。而局部只是在工作集满了之后才考虑换入换出。
  • 全局页置换算法效果比局部页置换算法要好。

10、抖动问题

在这里插入图片描述

在这里插入图片描述

posted @ 2021-02-08 19:43  HOracle  阅读(499)  评论(0编辑  收藏  举报