2014-03-31 51 views
2

我寫了一個頁面替換的模擬程序,其中Clock算法(使用1位使用位)與FIFO完全相同,這讓我非常困惑。時鐘頁面替換算法和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逐出頭版(第一),並插入到最後。在這個例子中,Clock與FIFO完全相同,它總是驅逐最老的(前面)頁面。

我不知道我做錯了什麼,有人可以指出它嗎?

凌源

回答

0

你沒有做錯任何事。只要已經在內存中的頁面再次被請求,時鐘/秒機會算法將表現得與FIFO相同。那一點,參考位被設置爲1,並且下一次該頁面將被替換,而不是替換它,參考位被設置爲零,並且以相同的方式檢查下一個候選受害者頁面。所以,你可以說翻頁的頁面被賦予了一個... 第二次機會