コンピューティングとオペレーティングシステムにおいて、トラップ(例外あるいはフォールトとしても知られる)は、一般的に トラップは、専門用語として幅広い意味を持つ。あるシステムにおいて、トラップはあらゆる割り込みを意味する。また別なあるシステムにおいては、あらゆる同期割り込み(CPUが生成する割り込みのこと。一方、非同期割り込みは外部ハードウェアによって発生する割り込み)を意味する。さらに別なシステムにおいては、入出力に関連しないあらゆる割り込みを意味する。さらにまた別なシステムにおいては、命令名にtrapを含む命令によって引き起こされる割り込みだけを意味する。以上に挙げた以外もある。TRONCHIP#EITのように、アーキテクチャ策定の時点での「例外」「割込み」「トラップ」の整理を試みた例もある。
例外的な状況によって引き起こされる同期割り込みの一種である(例えば、ブレークポイント、ゼロ除算、無効なメモリアクセス)。
通常、トラップの発生は、カーネルモードへ切り替わるという結果になる。切り替わる箇所は、元のプロセスに制御を戻す前にオペレーティングシステムがいくつかの行動を実行するところである。 カーネルプロセス内のトラップは、ユーザープロセス内のトラップよりもさらに深刻である。いくつかのシステムにおいて、致命的である。 いくつかの用途において、トラップという用語は、プロファイラあるいはデバッガへのコンテキストスイッチの開始を意図する割り込みを特別に指している。
元の用途から派生して、トラップは、いくつかの分野において通常の制御構造を横取りする仕組みを意味することがたまにある。
SNMPにおいて、トラップは、管理されたサブシステムに関する警報あるいは他の非同期イベントを報告するために使われるPDUの一種である。
関連項目 バグ 例外処理 割り込み
注釈
出典
カテゴリ:プログラミング カテゴリ:割り込み (コンピュータ)