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 が最初のページを追い出し (最初に)、最後に挿入するとします。この例では、Clock は FIFO とまったく同じで、常に最も古い (フロント) ページを追い出します。

何を間違えたのかわからないのですが、誰か指摘できますか?

霊園

4

1 に答える 1

0

あなたは何も悪いことをしていません。クロック/セカンド チャンス アルゴリズムは、既にメモリ内にあるページが再度要求される限り、FIFO と同じように動作します。その時点で、参照ビットが 1 に設定され、次にそのページが置換されるときに、置換する代わりに参照ビットが 0 に設定され、次の候補の犠牲ページが同じ方法で検査されます。つまり、ビットが反転したページには... 2 度目のチャンスが与えられたと言えます。

于 2016-12-07T00:45:06.140 に答える