存储器管理——页面置换算法
作者:互联网
有哪些页面置换算法:1.最佳置换算法(OPT)2.先进先出置换算法(FIFO)3.最近最久未使用置换算法(LRU)4.时钟置换算法(CLOCK)5.改进型的时钟置换算法
好的页面置换算法应该追求什么?原因是什么?:更少的缺页率。页面的换入、换出需要磁盘IO,会有较大的开销
最佳置换算法(OPT):每次选择淘汰的页面将是以后永不使用,或者在最长时间内不再被访问的页面,这样可以保证最低的缺页率。
缺页与页面置换的关系:缺页时未必发生页面置换。若还有可用的空闲内存块,就不用进行页面置换。
最佳置换算法的优缺点:
优点。缺页率最小。缺点。无法实现,操作系统无法提前预判页面访问序列。只有在进程执行的过程中才能知道接下来会访问到的是哪个页面。
先进先出置换算法(FIFO):每次选择最早进入内存的页面淘汰
先进先出置换算法的实现方法:把调入内存的页面根据调入的先后顺序排成一个队列,需要换出页面时选择队头页面即可。
先进先出置换算法的队列的最大长度取决于:系统为进程分配了多少个内存块。
先进先出置换算法的优缺点:优点。实现简单。缺点。算法性能差(该算法与进程实际运行时的规律不适应,因为先进入的页面也有可能最经常被访问)。产生Belady异常
Belady异常:当为进程分配的物理块数增大时,缺页次数不减反增的异常现象。
唯独哪种页面置换算法会产生Belady异常:先进先出置换算法
最近最久未使用置换算法(LRU):每次淘汰最近最久未使用的页面
最近最久未使用置换算法的实现方法:赋予每个页面对应的页表项中,用访问字段记录该页面自上次被访问以来所经历的时间t。当需要淘汰一个页面时,选择现有页面中t值最大的,即最近最久未使用的页面。
最近最久未使用置换算法的优缺点:优点。算法性能好。缺点。实现困难,开销大
时钟置换算法是一种性能和开销较均衡的算法,又称CLOCK算法,或最近未用算法(NRU)
简单的时钟置换算法实现方法:为每个页面设置一个访问位,再将内存中的页面都通过链接指针链接成一个循环队列。当某页被访问时,其访问位置为1。当需要淘汰一个页面时,只需检查页的访问位。如果是0,就选择该页换出;如果是1,则将它置为0,暂不换出,继续检查下一个页面,若第一轮扫
描中所有页面都是1,则将这些页面的访问位依次置为0后,再进行第二轮扫描
简单的时钟置换算法选择一个淘汰页面最多会扫描几轮:两轮
简单的时钟置换算法的优缺点:优点。实现简单,算法开销小。缺点。未考虑页面是否被修改过
改进型的时钟置换算法的思想:其他条件都相同时,优先淘汰没有修改过的页面,避免操作。
修改位=0,表示页面没有被修改过:修改位=1,表示页面被修改过。为方便讨论,
如何表示各页面状态:(访问位,修改位)。0表示页面没有被访问/修改。1表示页面有被访问/修改
改进型的时钟置换算法的算法规则:将所有可能被置换的页面排成一个循环队列
改进型的时钟置换算法选择一个淘汰页面最多会进行几轮扫描:四轮
改进型的时钟置换算法选择一个淘汰页面的优先级:
第一优先级:最近没访问,且没修改的页面
第二优先级:最近没访问,但修改过的页曲
第三优先级:最近访问过,但没修改的页面
第四优先级:最近访问过,且修改过的页曲
改进型的时钟置换算法的优点:算法开销小,性能好
最佳置换算法性能最好,但无法实现;先进先出置换算法实现简单,但算法性能差;最近最久未使用置换算法性能好,是最接近最佳置换算法性能的,但是实现起来需要专门的硬件支持,算法开销大。
标签:修改,置换,存储器,访问,算法,页面,时钟 来源: https://www.cnblogs.com/LXZYZDCZL/p/16319753.html