当前位置:   article > 正文

【考研复习】操作系统NRU置换算法小题_一进程已分配到4个页帧,见表3-17(编号为十进制,从0开始)。当进程访问第4页时,产生

一进程已分配到4个页帧,见表3-17(编号为十进制,从0开始)。当进程访问第4页时,产生

题目来源王道书

一进程已分配到4个页帧,现在进程访问到第四页发生缺页,问若使用NRU算法应该换出哪一页。

虚拟页号页帧装入时间最近访问时间访问位修改位
206016101
1113016000
022616210
332016311

 

答案是虚拟页号2,页帧0的那一页。

题目中说到使用NRU,按照答案的说法应该是标准的NRU,而不是改进的CLOCK算法。

为了标准,下面的页号均是页帧号。

按照最近访问时间,访问顺序应该是1,0,2,3。

所以在没有发生缺页时,相对应的访问位和修改位是

1(1,0)
0(1,1)
2(1,0)
3(1,1)

此时访问第四页,发生了缺页,指针将按页表中的顺序进行查找。我们看到在题目给出的表中0和1号页的访问位已经变成了0,而2和3号页的访问位还是1,可以说明此时指针指向的是1号页,并且已经完成对1号页的处理,即将指向2号页。

但是这个过程还没完,现在我们需要的是访问位为0的页,扫描过了0号和1号,没有找到,所以要继续扫描。

扫描完了2号和3号,都没有发现访问位为0的页,所以此时第一轮扫描完成,将进行第二轮扫描。

因为此时0号页的访问位在第一次扫描的时候已经被置为0,所以根据NRU算法,0号页将会被换出。

我个人感觉这道题出的有问题,因为缺页之前0到3号页面的访问位都为1,但是题目里面0和1号页的访问位已经为0,说明clock算法已经执行一部分了。如果按照装入顺序来扫描,应该先扫描3和2才对;如果按最近访问顺序扫描,应该是1,0,2,3这个顺序,因为1和0的访问位已经为0,所以下一个应该到2,这种情况该替换的应该是1号,和答案也不一样。只有按照页表顺序0,1,2,3扫描才能得到书上的答案.


那如果是改进的CLOCK算法呢?

第一轮扫描要找(0,0)的页面,没找到;第二轮要找(0,1)的页面,也没找到。

0(0,1)
1(0,0)
2(0,0)
3(0,1)

 

此时页面访问位和修改位是这样的。

第三轮扫描和第一轮一样,要找(0,0)的页面,此时1号页符合,所以将1号页换出。


这个题虽然题目里说了要用NRU,但是表格里给了修改位,让人很自然的直接按改进的CLOCK算法去做了。做题的时候一定要注意审题啊!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/163581
推荐阅读
相关标签
  

闽ICP备14008679号