Operating system 有人能帮我举一个MRU和时钟的例子吗?

Operating system 有人能帮我举一个MRU和时钟的例子吗?,operating-system,paging,virtual-memory,mru,page-replacement,Operating System,Paging,Virtual Memory,Mru,Page Replacement,作为标题 有一个包含3页的缓冲池,用于接收以下页码的请求: 2,4,4,2,5,2,1,1,3,1 更换策略为MRU和时钟。 我对它们的工作原理感到困惑。有人能给我看看吗?非常感谢~ 更新: 我的解决方案遵循MRU政策: 二, 2 4 2 4 2 4 2 4 5 2 4 5 1 4 5 3 4 5 1 4 5 是这样吗 并遵循LRU政策: hit/miss? 2米 2.4米 2.4小时 2.4小时 2.45米 2 4 5小时 2.15米 2.15小时 2 1 3米 2 1

作为标题

有一个包含3页的缓冲池,用于接收以下页码的请求:

2,4,4,2,5,2,1,1,3,1

更换策略为MRU和时钟。 我对它们的工作原理感到困惑。有人能给我看看吗?非常感谢~

更新:

我的解决方案遵循MRU政策:

二,

2 4

2 4

2 4

2 4 5

2 4 5

1 4 5

3 4 5

1 4 5

是这样吗

并遵循LRU政策:

          hit/miss?
2米

2.4米

2.4小时

2.4小时

2.45米

2 4 5小时

2.15米

2.15小时

2 1 3米

2 1 3小时


是吗?

对于MRU驱逐政策,让我们将MRU页面保留在最前面。对于给定的请求列表,以下是缓冲区的状态:

2 -> 2
4 -> 2 4
4 -> 2 4
2 -> 4 2
5 -> 4 2 5
2 -> 4 5 2
1 -> 4 5 1
1 -> 4 5 1
3 -> 4 5 3
1 -> 4 5 1

对于时钟收回策略,页面列表将为(*表示发生页面错误时要填写的缓冲区位置):


遵循LRU策略,让我们将LRU页面保留在后面。缓冲区的状态为:

2 -> 2
4 -> 2 4
4 -> 2 4
2 -> 4 2
5 -> 4 2 5
2 -> 4 5 2
1 -> 5 2 1
1 -> 5 2 1
3 -> 2 1 3
1 -> 2 3 1
有我的解决方案遵循MRU政策。。。是这样吗

根据您提到的MRU定义,您的MRU页面替换策略看起来是正确的

更换策略为MRU和时钟。我对它们的工作原理感到困惑。在这种情况下(对于2,4,4,2,5,2,1,1,3,1页码):

在时钟页面替换策略中,操作系统在页面间循环,清除 引用位并查找引用位设置为0的页面

Page number                  Reference bit

 2                               1
2,4                             1,1
2,4                             1,1
2,4                             1,1
2,4,5                          1,1,1
2,4,5                          1,1,1
1,4,5                          1,0,0
1,4,5                          1,0,0
1,3,5                          1,1,0
1,3,5                          1,1,0
遵循LRU政策:命中/未命中?是这样吗


,对于LRU页面替换,页面顺序以及点击数和未点击数都是正确的。

您确定它是MRU(请展开它)?我听说过LRU、NRU、NFU,但没有听说过MRU!或者我现在可能不记得了。MRU是最近使用的~@mihuecho:请不要彻底改变你的问题,尤其是在有人回答之后。这使得旧的答案不完整/不正确,而回答者甚至不知道。这都是我的错。再次抱歉~@Am\u I\u有帮助:顺序将在内存中更改?否。为了知道最近使用了哪个页面,所使用的数据结构的顺序将发生变化?对LinkedHashMaps用于构建与时间相关的缓存。所以,当策略是MRU时,项目在被访问时会移到列表的顶部,这就是我要演示的。好的,我同意你的观点。但是,我用人类能够理解的方式来回答它。@I_有帮助吗:你可能已经。。。但我对你的回答一点问题都没有。只是澄清了你认为我的错。:)请求应该是2 4 2 5 2 1 3 1。很抱歉我的打字错误@没问题,我已经修改了答案。不需要太多的编辑:非常感谢!我能再问一个问题吗?如何计算他们的命中率?我的意思是,命中率是命中率/所有请求数(这里的数字是10)。我很困惑是缺了一页还是打了一页?如果第一次请求某个页面,则该页面将丢失。如果我们再次请求它,那么它应该是成功的吗?@mihuecho-好的,你可以。但是,请记住,这个问题太宽泛了,无法作为一个整体来回答。@mihuecho-是的,命中/未命中率只是它们在内存中可用/不可用的次数,从而防止/发生页面错误。如果第一次请求某个页面,则该页面将丢失。如果我们再次请求它,那么只有当它存在于内存中时,它才应该是命中的。
Page number                  Reference bit

 2                               1
2,4                             1,1
2,4                             1,1
2,4                             1,1
2,4,5                          1,1,1
2,4,5                          1,1,1
1,4,5                          1,0,0
1,4,5                          1,0,0
1,3,5                          1,1,0
1,3,5                          1,1,0