2

Windows Internals に関する本を読んでいますが、理解できないことがあります。

「カーネルは、ハードウェア割り込み処理の一部として、またはスレッドがソフトウェア割り込みに関連するカーネル関数を呼び出すときに同期的にソフトウェア割り込みを処理します。」

これは、ソフトウェア割り込みまたは例外が次の条件下でのみ処理されることを意味します。

****a. カーネルが、ソフトウェア例外 (トラップ) に関連するスレッドから関数を実行している場合 b. すでにハードウェア トラップを処理している場合****

これについての私の理解は正しいですか?

次のビット:

「ほとんどの場合、カーネルは、トラップを処理する他の関数に制御を転送する前後に、一般的なトラップ処理タスクを実行するフロントエンド トラップ処理関数をインストールします。」

「フロントエンド トラップ処理関数」と「フィールド ザ トラップ」の意味がよくわかりません。

誰でも私を助けることができますか?

4

1 に答える 1

2

ソフトウェア割り込みトラップではなく、ハードウェア割り込みコンテキストから延期されたハードウェア割り込み処理の一部です。例は TCP/IP スタックです。NIC から OS バッファへのパケットのコピーは、ハードウェア割り込みルーチンから実行/開始されますが、プロトコル処理 (イーサネット -> IP -> UDP/TCP) はソフトウェア割り込みに延期されます。これらは、オペレーティング システムの文献ではしばしば下半分と呼ばれます (ハードウェアと直接通信する上半分とは対照的です)。そのため、これらは通常、共通のトラップ/割り込みエントリの最後に呼び出されますが、割り込みが再度有効になった後、および/または専用のソフトウェア割り込みカーネル スレッドによって呼び出されます。

于 2009-12-29T19:04:32.700 に答える