2

我写了一个页面替换的模拟程序,其中Clock算法(使用1位使用位)执行与FIFO完全一样,这让我很困惑。

在这里,我有一个简单的案例来复制我的困难:

Say I have page 1 3 5 7 in memory, and initially memory is like:
1 use=1 <- handle
3 use=1
5 use=1
7 use=1

When 2 needs to be inserted, clock handle travels through all the pages and 
at last substitute 1:
1 use=0 <- handle
3 use=0
5 use=0
7 use=0
To:
2 use=1
3 use=0 <- handle
5 use=0
7 use=0

Then I need to insert 4:
2 use=1
4 use=1
5 use=0 <- handle
7 use=0

Then after 6 and 8:
2 use=1 <- handle
4 use=1
6 use=1
8 use=1

假设 FIFO 驱逐首页(第一页),并插入到最后。在本例中,时钟与 FIFO 完全相同,它总是驱逐最旧的(首页)页面。

我不知道我做错了什么,有人可以指出吗?

凌源

4

1 回答 1

0

你没有做错什么。只要再次请求已经在内存中的页面,时钟/秒机会算法的行为将与 FIFO 相同。此时,参考位被设置为 1,并且下次该页面将被替换时,而不是替换它,参考位被设置为零,并且以相同的方式检查下一个候选受害者页面。所以,你可以说有翻转位的页面被给予了……第二次机会

于 2016-12-07T00:45:06.140 回答