ページフォールト 【page fault】 ページフォルト / PF
概要
ページフォールト(page fault)とは、ページング方式の仮想記憶(仮想メモリ)において、プログラム(プロセス)がアクセスしようとした仮想メモリ領域(ページ)が物理メモリ上に無く、ストレージに退避していることが分かったときに発生する例外あるいは割り込み処理。CPU内部などにあり仮想メモリを管理する専用の装置(MMU:Memory Management Unit/メモリ管理ユニット)は、要求されたページが物理メモリ上に存在しない場合にページフォールトをオペレーティングシステム(OS)に通知する。
これを受信したOSは直ちに、物理メモリ上のページから一定の基準(最後にアクセスされてからの経過時間など)で一つを選び、ストレージ上に退避している要求ページと入れ替える処理(スワップ)を行って、プロセスがそのページにアクセスできるようにする。
「フォールト」(fault:障害)という名称になっているが、それ自体はいわゆるエラーや障害ではなく、通常の処理の一種である。ただし、存在しない無効なアドレスへのアクセスや、OSや他のプロセスが管理する領域へのアクセスでも発生することがあり、これらの不正なページフォールトを発生させたプログラムは強制終了させられる。
(2019.12.18更新)