一个作业物理块数为3,作业页面走向为3,4,2,6,4,3
时钟(CLOCK)置换算法流程
注意:红色为访问位,蓝色为内存数据
箭头处开始
第一步:
第一个页面走向为3,此时内存中没有数据,且访问位为0,于是将3放入内存,并修改访问位为1,指针下移,得到如下图
第二步:
第二个页面走向为4,此时指针指向处无数据,且访问位为0,于是将4放入内存,并修改访问位为1,指针下移,得到如下图
第三步:
第三个页面走向为2,此时指针指向处无数据,且访问位为0,于是将2放入内存,并修改访问位为1,指针下移,得到如下图
第四步:
第四个页面走向为6,此时指针指向处有数据3,非6,且访问位为1,不放入,于是将访问位由1变0,然后指针下移得到如下图
第五步:
此时指针指向处有数据4,非6,且访问位为1,不放入,于是将访问位由1变0,然后指针下移得到如下图
第六步:
此时指针指向处有数据2,非6,且访问位为1,不放入,于是将访问位由1变0,然后指针下移得到如下图
第七步:
已完成一圈,此时指针指向处有数据3,非6,且访问位为0,于是放入6,然后将访问位由0变1,然后指针下移得到如下图
第八步:
第五个页面走向为4,此时指针指向处有数据4,为4,且访问位为0,于是将访问位由0变1,然后指针下移得到如下图
第九步:
第六个页面走向为3,此时指针指向处有数据2,非3,且访问位为0,于是放入3,然后将访问位由0变1,然后指针下移得到如下图
至此置换流程结束。
总结:
当内存中无对应数据时访问位为0即可置换之后再变换访问位,访问位为1不置换仍然变换访问位然后指针下移。当内存中有对应数据时,访问位变换,指针下移。
每访问一次,无论是否发生置换,访问位都要变换。