ページフォールト
ページフォールトは、プログラムが物理メモリ、つまりRAMに保存されていないメモリブロックにアクセスしようとしたときに発生します。このフォールトは、オペレーティングシステムに、仮想メモリ内のデータを探し、HDDやSSDなどのストレージデバイスからシステムのRAMへ転送する必要があることを通知します。
「ページフォールト」という用語はエラーのように聞こえますが、ページフォールトはよく発生するもので、コンピューターが仮想メモリを処理する通常の仕組みの一部です。プログラミングでは、ページフォールトによって例外が生成されます。これは、プログラムが処理を続けられるように、仮想メモリからメモリブロック、つまり「ページ」を取得する必要があることをオペレーティングシステムに通知します。データが物理メモリに移されると、プログラムは通常どおり動作を続けます。この処理はバックグラウンドで行われるため、通常はユーザーが気付くことはありません。
ほとんどのページフォールトは問題なく処理されます。ただし、無効なページフォールトによってプログラムがハングしたり、クラッシュしたりすることがあります。このタイプのページフォールトは、プログラムが存在しないメモリアドレスにアクセスしようとしたときに発生する場合があります。一部のプログラムは、新しいメモリアドレスを見つけたり、データを再配置したりすることで、このタイプのエラーを処理できます。しかし、プログラムが無効なページフォールトを処理できない場合、その処理はオペレーティングシステムに渡され、オペレーティングシステムがプロセスを終了することがあります。その結果、プログラムが予期せず終了することがあります。
仮想メモリを使用しているときはページフォールトがよく発生しますが、ページフォールトが発生するたびに二次メモリから主記憶へデータを転送する必要があります。この処理にかかる時間は数ミリ秒程度にすぎない場合もありますが、それでもメモリからデータに直接アクセスする場合と比べて数千倍遅くなることがあります。そのため、システムメモリを増設すると、仮想メモリにアクセスする頻度が下がり、コンピューターのパフォーマンスが向上する可能性があります。
知識をテストする