Clock页面置换算法(简单和改进
简单的Clock置换算法
-
简单的Clock置换算法,是一种LRU置换算法的近似算法。
-
思想:当利用简单的Clock算法的时候,需要给每一个页面添加一位访问位,再将内存中的所有页面链接成一个环形队列,方便循环访问,一开始访问位都是 0,在被访问之后,访问位设置为 1。
在进程当中,如果页面的访问位为 0,则可以将其换出,如果是 1,将其访问位变为 0,接着找下一个,。直到找到最后,循环下一次。 -
举例
一开始全为0,可能有问题,因为都被访问过,应该设置为1的,但是已经满了,还是要循环,最后下面又变为0,相当于偷懒吧。如果有问题,请指正。
改进型Clock算法
-
改进型Clock算法,为啥要改进?
在将一个页面换出的时候,如果该页面已经被修改,则要将该页面重新回写到磁盘,如果该页面未被修改,则不需要将它拷回磁盘,就是说,如果这个页面在置换之前已经被修改过了,相比未修改过的页面需要花费更大的开销。 -
思想:除了访问位,再添加一个修改位,具体的置换规则:
(0,0):最近没有使用使用也没有修改,最佳状态!
(0,1):修改过但最近没有使用,第二考虑的状态
(1,0):使用过但没有被修改,该页面可能再次被访问
(1,1):使用过也修改过,该页面可能再次被访问
-
举例:
参考https://blog.csdn.net/zhuixun_/article/details/85336417?utm_medium=distribute.pc_relevant.none-task-blog-utm_term-2&spm=1001.2101.3001.4242