仮想記憶におけるページ置換えアルゴリズムとしてFIFO方式を採用する。
主記憶のページ枠が3で,プログラムが参照するページ番号の順序が,4,3,2,1,3,5,2のとき,ページインは何回行われるか。
ここで,初期状態では主記憶にどのページも存在しないものとする。
正答3
解説
正解は3です。
FIFO(First In First Out)方式は、主記憶に最も古く読み込まれたページを置き換える方式です。
参照したページが主記憶にない場合(ページフォールト)に、ページインが発生します。
【計算】
4を参照すると、ページがないのでページインし、主記憶は{4}になります(1回目)。
3を参照すると、ページインし、{4,3}になります(2回目)。
2を参照すると、ページインし、{4,3,2}になります(3回目)。
1を参照すると、最も古い4を追い出してページインし、{3,2,1}になります(4回目)。
3は主記憶にあるので、ページインは発生しません。
5を参照すると、最も古い3を追い出してページインし、{2,1,5}になります(5回目)。
2は主記憶にあるので、ページインは発生しません。
ページインは合計5回です。
【選択肢別解説】
1:× 2回は、ページ枠が埋まった後の置換えの回数だけを数えた値です。
最初の3回のページインも数えます。
2:× 3回は、ページ枠が埋まるまでの回数だけです。
その後の1と5の参照でもページインが発生します。
3:○ 最初の3回と、1と5の参照時の2回を合わせて、ページインは5回です。
4:× 6回は、最後の2の参照もページインと数えた値です。
2は5を読み込んだ時点でも主記憶に残っています。
【ポイント】
FIFOは「読み込まれた順」、LRU(Least Recently Used)は「最後に参照された時刻が最も古い順」に追い出します。
同じ参照列をLRUで処理すると、5の参照時に2が追い出されるので、ページインは6回になります。