ページフォールトとは?ぺーじふぉーると
ページフォールトとは、仮想記憶で参照したページが主記憶に無いときに起きる例外。OSが補助記憶から該当ページを読み込み、必要なら別のページを追い出したうえで、失敗した命令から実行を再開する。主記憶がナノ秒、ページインがミリ秒と6桁違うため、発生率が低くても実効アクセス時間を跳ね上げる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
主記憶より大きなアドレス空間をプログラムに見せるために、使っていないページを補助記憶へ退避する仕掛けが仮想記憶である。ページフォールトはその破綻ではなく、退避したページを呼び戻すための正規の入口にあたる。問題は、この入口を通る時間が主記憶アクセスと桁違いで、しかもいつ通るかを事前に確定できないことにある。締切を保証したい組込み系でページングを避け、必要な領域をあらかじめ固定するのはこのためである。
具体例
組込みLinuxの実時間用途では、mlockall()で対象領域を主記憶に固定し、スタックとヒープを起動時に先に触っておくことでページフォールトを実行中に発生させない構成を採る。PREEMPT_RTを当てた構成でも、この固定を怠れば応答時間の最悪値は保証できない。
試験での引っ掛け
計算問題では、オーバヘッドだけで割って「1秒あたり何回」と出す誤りが定番で、主記憶アクセスに要する時間を足す必要がある。ナノ秒とミリ秒の換算(1ミリ秒=100万ナノ秒)を1桁ずらす誤りも同時に仕込まれる。TLBミスと混同しないこと——TLBミスはアドレス変換表の参照漏れで、ページ自体は主記憶にあることが多い。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:令和2年度 10月試験 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問3(IPA)解説で登場
外部割込みの要因となる事象として、適切なものはどれか。
正解:入出力動作が終了したので、DMAコントローラからプロセッサへの通知が発生した。
要点:外部割込みはCPU外部の装置からの信号が要因となる
割込みは、実行中のプログラム自身の処理が原因となる内部割込みと、プロセッサ外部の装置からの信号による外部割込みに分けられる。DMAコントローラが入出力の完了をプロセッサへ通知するのは、CPU外部のハードウェアが要因なので外部割込みに当たる。ページフォールト、特権命令違反、演算オーバフローはいずれも命令実行に伴って生じる内部割込みである。
出典:令和4年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問5(IPA)
主記憶への1回のアクセスが200ナノ秒で、ページフォールトが発生すると1回当たり更に100ミリ秒のオーバーヘッドが生じるコンピュータがある。ページフォールトが主…
正解:5
要点:1回あたり主記憶100ミリ秒+障害100ミリ秒で毎秒5回
ページフォールト1回の間に主記憶アクセスが50万回行われるので、その所要時間は50万×200ナノ秒=100ミリ秒である。これにページフォールトのオーバーヘッド100ミリ秒が加わり、ページフォールト1回あたり合計200ミリ秒=0.2秒を要する。したがって1秒間に発生しうる回数は最大で1÷0.2=5回となる。
出典・参考
高度試験 午前I(高度午前I 相当)のシラバスの2 コンピュータシステム > 1. オペレーティングシステム > (7) 記憶管理に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。