- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Clock Algorithm 详解
王道论坛就在您身边
蓝皮书 371 页的 NRU (Clock) Algorithm 详解
【2008-12-17 日修正版】 转载请注明
王道论坛:涌远
第一点:NRU算法、Clock算法、二次机会算法基本上等同。最多是不同版本上有略微的差异,比
如二次机会算法有个升级版本是设置两个位的,一个位表示访问位,另一个位为修改位。
第二点:关于NRU算法在命中时候的指针移动情况(其实指针的这种说法更倾向于Clock算法,你可
以把指针想象成Clock里的秒针 ^_^
对此,现在有两种说法:
1.指针不移动,这个在勘误表中已经给出了,主要的依据是后来出的考试大纲(不知道考试大纲里是
否真的是命中后指针不移动的,大家再去核实下,我手头上没有考试大纲,只是听一些研友这么说
的,那就先这么写上了);
2.指针移动的,这个的主要参考依据是:NRU算法实现的时候需要先判断请求的页面是否在内存中,
这个时候就需要移动指针在内存中寻找该页面,当找到该页面的时候,自然指针无需移回原位,这
样一来,指针就移动了。
关于这两点,可以肯定的是,市面上所有的教材都没有细致到解读NRU算法命中时指针是否移动的
情形,笔者Google了一些PPT和讲稿,也没有仔细说明这一点(至少我现在找到的资料里都没有仔
细说明)
解决方案:
1、找权威资料:既然大纲解析里是按指针不移动做的,那么大家以大纲解析为标准;(不排除大
家说的大纲解析出得很差,错误很多的可能,不过我没看过)。不过其实最最权威的资料应该是当
初提出Clock算法的牛人的paper。。。
2、找权威专家:zhunan_nj 网友咨询了他们学校(南京工程学院)的老师,是Linux方面的,以下是
他的原话:
引用:
“请教了我们学校老师里面的 LINUX 大牛,此人权威性绝对有保证,他说,其实这是不同的版本的
实现习惯问题,而 CLOCK 最初的那个 PAPER 里,应该是不变的”。
由此可以推出一点,没有必要争论指针是否移动这个细节,因为这个细节并不妨碍
一个算法是否称得上是 NRU 算法,因为这个只是 NRU 算法实现上的区别而已,可
能 OS_A 实现的 NRU 是在命中的时候不移动指针的,而 OS_B 在实现的时候是通
过移动指针判断是否命中的。
我把命中时不移动指针和命中时移动指针的两个版本的算法以及结果
都算了一遍,建议大家在考试时采用命中时不移动指针的算法,因为毕
竟人家的提出该算法的牛人的最早的 paper 中是这么干的~~
涌远在您身边 Page 1 of 7
王道论坛就在您身边
题目:
在页式虚拟存储器中,一个程序由 P1-P7 共 7 个页面组成,程序执行过程中依次访问的页面如
下:P3 P4 P2 P6 P4 P3 P7 P4 P3 P6 P3 P4 P8 P4 P6
假设系统分配给这个程序的主存有 3 个页面,分配采用 NRU 页面替换算法,对这 3 个页面进
行调度。
画出主存页面调入、替换和命中情况表;
统计出两种替换算法的命中率。
本 PDF 只用于王道论坛上的题目讨论,转载请注明出处为:
NRU——CLOCK——二次机会算法(命中不移动指针)的结果列表
引用串 P 3 4 2 6 4 3 7 4 3 6 3 4 8 4 6
3 3 3← 6 6 6← 6 4 4 4 4 4 4← 4← 4←
← 4 4 4← 4← 4 7 7← 7← 6 6 6 6 6 6
内存 ← 2 2 2 3 3← 3 3 3← 3← 3← 8 8 8
文档评论(0)