有人能帮助我找出MRU和CLOCK的例子吗?

时间:2016-02-25 04:48:58

标签: operating-system paging virtual-memory mru page-replacement

作为标题。

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

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

替换政策是MRU和CLOCK。 我很困惑他们的工作方式。有人能告诉我吗?非常感谢〜

更新

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

2

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 m

2 4 m

2 4 h

2 4 h

2 4 5 m

2 4 5 h

2 1 5 m

2 1 5 h

2 1 3 m

2 1 3 h

是吗?

2 个答案:

答案 0 :(得分:1)

对于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

对于CLOCK逐出策略,页面列表将是(*表示发生页面错误时要填充的缓冲区位置):

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

遵循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

答案 1 :(得分:1)

  

遵循MRU政策有我的解决方案......是吗?

根据您提到的MRU定义,您的MRU页面替换政策显示正确。

  

替换政策是MRU和CLOCK。我很困惑他们的工作方式。在这种情况下(对于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页面替换,页面排序以及点击和未命中数都是正确的。