1. ホーム
  2. x86

[解決済み】TrapとInterruptの違いは何ですか?

2022-02-19 22:03:27

質問事項

TrapとInterruptの違いは何ですか?

システムによって用語が異なるのであれば、x86ではどのような意味ですか?

どのように解決するのですか?

A トラップ は、ユーザープロセスにおける例外です。ゼロ除算や不正なメモリアクセスが原因です。また、カーネルルーチンを呼び出すのも通常の方法です(a システムコール これは、ユーザーコードよりも高い優先度で実行されるからです。処理は同期的に行われます(したがって、ユーザーコードは中断され、その後に継続されます)。ある意味、これらはアクティブであり、ほとんどの場合、コードはトラップが発生することを予期しており、この事実に依存しています。

An 割り込み は、ハードウェア(ハードディスク、グラフィックカード、I/Oポートなどのデバイス)によって生成されるものです。これらは非同期(ユーザーコードの予測可能な場所で発生しない)、または割り込みハンドラが最終的に発生するのを待つ必要があるため、"passive" となります。

また、トラップハンドラは割り込みハンドラのように見えるので、トラップは一種のCPU内部割り込みと見ることもできます(レジスタとスタックポインタが保存され、コンテキストスイッチがあり、場合によっては中断したところから実行を再開することができるのです)。