トラップと割り込みの違いは何ですか?
システムごとに用語が異なる場合、x86ではどういう意味ですか?
トラップは、ユーザプロセスにおいて例外です。これは、ゼロ除算または無効なメモリアクセスが原因です。カーネルルーチン(システムコール)を呼び出す通常の方法でもあります。これは、カーネルルーチンがユーザーコードよりも高い優先度で実行されるためです。処理は同期的です(したがって、ユーザーコードは一時停止され、その後も続行されます)。ある意味で、それらは「アクティブ」です。ほとんどの場合、コードはトラップが発生することを予期しており、この事実に依存しています。
割り込みは、ハードウェア(ハードディスクのようなデバイス、グラフィックスカード、I / Oポートなど)によって生成されたものです。これらは非同期(つまり、ユーザーコード内の予測可能な場所では発生しません)または「パッシブ」です。これは、割り込みハンドラーが最終的に発生するのを待機する必要があるためです。
トラップハンドラーのハンドラーは割り込みハンドラーのように見えるため、トラップは一種のCPU内部割り込みと見なすこともできます(レジスターとスタックポインターが保存され、コンテキストスイッチがあり、実行が中断した場合に再開できます) 。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加