Loading article…
x86アーキテクチャでは、プロセッサが保留中の割り込みまたは例外を処理しようとしているときに問題が発生すると、二重フォールト例外が発生します。二重フォールトが発生する状況の例としては、割り込みがトリガーされたが、割り込みハンドラが存在するセグメントが無効である場合が挙げられます。プロセッサが二重フォールト ハンドラを呼び出すときに問題が発生すると、三重フォールトが生成され、プロセッサがシャットダウンします。
ダブルフォールトはカーネルのバグによってのみ発生するため、プログラムが何らかの方法でカーネルにアクセスしない限り (一部のウイルスや一部の低レベルDOSプログラムなど) 、最近の保護モードオペレーティング システムでは、ユーザー空間プログラムによってダブルフォールトが発生することはほとんどありません。PowerPCやSPARCなどの他のプロセッサは、通常、定義済みおよび予約済みのマシン レジスタに状態を保存します。ダブルフォールトは、プロセッサが例外を処理するためにこれらのレジスタの内容を使用している間に別の例外が発生する状況になります。SPARC プロセッサには、このようなレジスタが 4 レベルあります。つまり、4 ウィンドウ レジスタ システムです。
参照
さらに読む
- Collins, Robert (2000)。「CPU のトリプルフォールト」。生産性向上とプログラミングのコツ。2017 年 9 月 9 日にオリジナルからアーカイブ。2015年 11 月 22 日に取得。*
- Osterman, Larry (2005-02-08)。「Faster Syscall Trap redux」。Larry Osterman の WebLog。MSDNブログ。2017-09-09にオリジナルからアーカイブ。2010-07-23に取得。
