仮想記憶システムにおいて,ページ置換えアルゴリズムとしてFIFOを採用して,仮想ページ参照列1,4,2,4,1,3を3ページ枠の実記憶に割り当てて処理を行った。
表の割当てステップ"3"までは,仮想ページ参照列中の最初の1,4,2をそれぞれ実記憶に割り当てた直後の実記憶ページの状態を示している。
残りを全て参照した直後の実記憶ページの状態を示す太枠部分に該当するものはどれか。
割当てステップ|参照する仮想ページ番号|実記憶ページの状態/1|1|1,-,-/2|4|1,4,-/3|2|1,4,2/4|4|(未記入)/5|1|(未記入)/6|3|(太枠・未記入)
正答3
解説
正解は3です。
FIFO(First In First Out)は、実記憶に最も早く読み込まれたページから追い出すページ置換えアルゴリズムです。
参照されたかどうかに関係なく、読み込んだ順番だけで追い出す対象を決めます。
【手順】
ステップ3の時点で、実記憶は1,4,2で、読み込まれた順も1,4,2です。
ステップ4でページ4を参照しますが、すでに実記憶にあるので状態は変わりません。
ステップ5でページ1を参照しますが、これも実記憶にあるので状態は変わりません。
ステップ6でページ3を参照すると、実記憶にないのでページフォールトが起こります。
最も早く読み込まれたページ1が追い出され、その枠に3が入ります。
状態は3,4,2となります。
【選択肢別解説】
1:× 1,3,4は、ページ2を追い出した形です。
FIFOで最も古いのは最初に読み込んだページ1です。
2:× 1,4,3も、ページ2を追い出した形です。
ページ1が残っているので誤りです。
3:○ 最も古いページ1の枠に3が入り、3,4,2となります。
4:× 4,1,3は、参照順に並べ替えた形です。
FIFOでは参照されても枠の位置は変わりません。
【ポイント】
FIFOは「読み込んだ順」、LRU(Least Recently Used)は「最後に参照された時刻」で追い出す対象を決めます。
ステップ5で1が参照されたことを考慮するとLRUになるので、混同しないようにしましょう。