プロセスはどのようにプログラムで割り込みに接続できますか?

プロセスはどのようにプログラムで割り込みに接続できますか?

私は割り込みが処理を要求するカーネルに送られる信号であることを理解しています。場合によっては、プロセスを割り込み(キーを押す)に関連付けるドライバを備えたキーボードなどの物理デバイスがあります。しかし、タイマーや物理デバイスがない他のものはどうですか?たぶん私が間違っているかもしれませんし、誰かが私を修正してくれたらうれしいです。

ベストアンサー1

一つの観点から見てみましょう。 Linuxシステムで実行されるすべてのコード(マイクロコードを含む)は、ややハードウェア割り込みの直接の結果です。

逆の観点から見ると、ハードウェア割り込みは、ハードウェア割り込みハンドラでカーネル内部クッキング以外のものをすぐには実行しません。これ興味深い部分(ユーザーモードの観点から理解)延期するカーネルスレッドによる後の処理のため。

実行するスレッドを選択する責任は何ですか? :スケジューラ!

あなたの質問の可能な理解に対する最初の答えは次のとおりです。スケジューラは、次の理由でプロセスを割り込みに接続するコンポーネントです。

  • 結局のところ、カーネルスレッド(ksoftirqdまたはIRQ専用のktrheadはシステムで開始されたIRQスレッド)を起動して、保留中のイベントを表示するさまざまな部分を処理します。
  • これにより、最終的に特定のイベントを待つ睡眠作業が開始されます。

おすすめ記事