CLOCK置换算法:
是一种LRU的近似算法,是一种性能和开销较均衡的算法。由于LRU算法需要较多的硬件支持,采用CLOCK置换算法只需相对较少的硬件支持。又称为最近未用算法(NRU)
简单的CLOCK置换算法
1. 实现方法:
(1)为每个页面设置一个访问位,再将内存中的页面都通过链接指针链接成一个循环队列
(2)当某页被访问时,其访问位置为1
(3)当需要淘汰一个页面时,只需检查页的访问位:如果是0,选择此页换出;如果是1,将它置0,暂不换出,继续检查下一个页面
(4)若第一轮扫描中所有页面都是1,则将这些页面的访问位依次置为0,再进行第二轮扫描,第二轮扫描中一定会有访问位为0的页面,因此简单的CLOCK算法选择一个淘汰页面最多会经过两轮扫描
2. 例子:
假设系统为某进程分配了五个内存块,并考虑到有以下页面号引用串:1,3,4,2,5,6,3,4,7
解析:
第一步:刚开始先将前五个页面装入五个物理块,这时五个页面均已被访问过,所以访问位置为1
第二步:访问到6号页,需要换出一个页面。开始进行扫描,扫描一圈后,物理块中的五个页面的访问位全都置0
第三步:再进行第二轮扫描,1号页(0)淘汰,6号页进来并且将6号页访问位置为1,扫描页指针指向下一位
第四步:按照访问顺序,该访问3号页和4号页,所以将3号页和4号页的访问位置为1,扫描页指针不动(因为没有淘汰)
操作系统学习
第操作系统学习五步:按照访问顺序,该访问7号页,7号页没有在物理块中,所以需要淘汰一个页面。扫描页指针从3号页开始扫描,3号页和4号页的访问位都是1,所以继续检查且将3号页和4号页的访问位置为0。2号页的访问位是0,所以淘汰2号页。7号页进入物理块中且将访问位置为1。扫描页指针指向下一位,也就是5号页
————————————————
版权声明:本文为CSDN博主「橙橘先生」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_51781828/article/details/124672912