有人可以帮我举一个 MRU 和 CLOCK 的例子吗?

Could someone help me to figure an example of MRU and CLOCK?

如标题。

有一个包含 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米

2 4 米

2 4 小时

2 4 小时

2 4 5 米

2 4 5 小时

2 1 5 米

2 1 5 小时

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

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

There is my solution following the MRU policy... Is that right?

根据您提到的 MRU 定义,您的 MRU 页面替换策略似乎是正确的。

The replacement policies are MRU and CLOCK. I am confused about how they work. In this case(for 2,4,4,2,5,2,1,1,3,1 page numbers) :

在时钟页面替换策略中,OS循环通过页面,清除 参考位并找到参考位设置为 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

And following the LRU policies: hit/miss? Is that right?

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