プログラムで使用可能な実メモリ枠が3ページである仮想記憶システムにおいて、大きさ6ページのプログラムが実行されたとき、ページフォールトは何回発生するか。
ここで、プログラム実行時のページ読込み順序は、0、1、2、3、4、0、2、4、3、1、4、5とする。
ページング方式は、LRU(Least Recently Used)とし、初期状態では、実メモリにはいずれのページも読み込まれていないものとする。
答え イ
【解説】
LRUのページング方式では、最も長い時間アクセスがないページをページアウトするページ置き換えアルゴリズムなので、アクセスしてから最も時間の経っているものを右において図にまとめると
読み込むページ |
メモリ枠の状態 |
ページフォルトの有無 |
0 |
0 |
有 |
1 |
1 0 |
有 |
2 |
2 1 0 |
有 |
3 |
3 2 1 |
有 |
4 |
4 3 2 |
有 |
0 |
0 4 3 |
有 |
2 |
2 0 4 |
有 |
4 |
4 2 0 |
無 |
3 |
3 4 2 |
有 |
1 |
1 3 4 |
有 |
4 |
4 1 3 |
無 |
5 |
5 4 1 |
有 |
したがって、ページフォールトは 10回(イ)発生した。
【キーワード】
・ページフォールト
【キーワードの解説】
- ページフォールト(page fault)
ページングによる仮想記憶方式で、仮想メモリにアクセスしたときに物理メモリ(主記憶)が割り付けられていないことを意味します。
ページフォールトが発生した場合は、磁気ディスク装置などから主記憶にデータを転送する処理(ページイン)が行われます。
フォールト(fault)となっていますが、エラーではなくページング仮想記憶では普通に発生する現象です。
ページフォールトが多発すると、磁気ディスクと主記憶間のデータ転送ばかりが行われシステムの性能が低下する、スラッシングという状態になります。
もっと、「ページフォールト」について調べてみよう。
戻る
一覧へ
次へ
|