ページフォールトとは
ページフォールトは、仮想メモリを搭載したコンピューターで発生する操作です。これは、ハードドライブの一部がコンピューターの物理メモリを増加させる技術です。 ほとんどのページフォールトは、プログラムがハードドライブ上の仮想メモリファイルに配置された情報にアクセスしようとしたときに発生します。 これは仮想メモリの通常の機能であり、コンピュータは適切な情報を物理メモリにロードすることで応答します。 プログラムが存在しない、または保護されているメモリの場所で情報を検索すると、クラッシュやコンピューターエラーに関連するより深刻なタイプのページフォールトが発生する可能性があります。 これは、障害のあるハードウェアまたは不十分に作成されたソフトウェアが原因である可能性があります。
現代のコンピューターシステムは、メモリをページと呼ばれる小さなチャンクに分割し、各ページは特定のアドレスによってアクセスされます。 ほとんどのシステムは、仮想メモリと呼ばれる概念もサポートしています。仮想メモリでは、ページをコンピュータの物理ランダムアクセスメモリ(RAM)からコンピュータのハードドライブに格納された仮想メモリファイルに移動し、必要に応じてRAMに戻すことができます。 この複雑なメモリ管理スキームの詳細は、ソフトウェアには隠されています。 アプリケーションには、特定のアドレスのページがRAMにロードされているか、仮想メモリにあるかどうかを知る方法がありません。 ページフォールトは、プログラムがRAMにロードされていないメモリや予期しないアドレスにあるメモリの一部を読み取ったり操作しようとしたときに発生します。
不吉な名前にもかかわらず、ページフォールトは通常正常で予期されるアクションであり、ほとんどの場合、ユーザーはフォールトが発生したことに気付かないでしょう。 これは、「トラップ」と呼ばれる一種の操作です。これは、コンピューターが問題のメモリアドレスを調べる間、障害をトリガーしたプログラムからの命令が一時的に傍受またはトラップされることを意味します。 アドレスが有効であるが、現在コンピューターのRAMにロードされていない場合、情報はハードドライブ上の仮想メモリファイルから物理メモリに転送され、プログラムは通常の動作を再開します。 これは「スワップイン」または「ページイン」と呼ばれ、オペレーティングシステムやインストールされているRAMの量に関係なく、ほぼすべてのパーソナルコンピューターに共通しています。 ただし、RAMが少なすぎると、コンピューターがハードディスクと物理メモリの間でメモリページを常にシャッフルし、パフォーマンスが低下します。
ページフォールトの2番目の結果は、要求されたメモリアドレスが無効または保護されていることが判明した場合に発生します。 このタイプのエラーは、セグメンテーションフォールトとも呼ばれ、メモリモジュールの故障、ハードディスクの故障、またはソフトウェアの誤動作によって引き起こされる可能性があります。 障害をトリガーしたプログラムに特別な信号が送信され、通常はプログラムが突然終了します。 オペレーティングシステムによっては、最も深刻なページフォールトにより、コンピューターのオペレーティングシステムが失敗し、ユーザーに不可解な死のブルースクリーン(BSoD)またはカーネルパニックメッセージが表示されることがあります。