Linuxソフトウェア割り込みを理解します

逐語https://www.dazhuanlan.com/2019/08/25/5d625adf891d0/


割り込み:割り込みシステムは、それが通常の実行およびスケジューリングのプロセスを中断して、要求元のデバイスに応じた処理を割り込み処理カーネルを呼び出します、ハードウェアの要求に応答するために使用されるメカニズムです。

割り込み記述を可視化:テイクアウトシーンを撮ります

1.割り込み機構を非同期イベント処理で、システムの並行処理能力を向上させます

2.実行されていた通常のプロセスへの影響を軽減するために、プロセスを割り込み処理することは、できるだけ早く実行する必要があります

3.割り込みが上下に分かれ

(1)上半部用来快速处理中断,在中断禁止模式下,主要处理跟硬件紧密相关的或时间敏感的工作
(2)下半部用来延迟处理上半部未完成的工作,通常以内核线程的方式运行。

要約:

  • 直接要求処理ハードウェア、すなわち、ハードウェア割り込み、の上半分は、高速実行が特徴
  • ソフト割り込みであるカーネルによってトリガ下半分は、遅延実行することを特徴とします

実際には、CPUの上半分は、実行中のタスクを中断し、その後直ちに端末処理プロセスを実行するであろう。カーネルスレッドの下半分は、方法で実行し、それぞれが呼ばれるソフト割り込みCPUカーネルスレッドに対応する「ksoftirq / CPU番号」。

カーネルディスパッチャは、RCUをロック:ソフト割り込みハードウェアの下半分に加えて、のようないくつかのカスタムカーネルイベント、を含む、プロセスのポイントを割り込み処理

:4.procファイルシステムのような、カーネル空間とユーザ空間の通信のためのメカニズムを動的カーネルまたはカーネル設定を変更するために使用されるデータ構造を表示するために使用することができています

  • / procの/ softirqsはソフト割り込み動作を提供します
  • / procの/ハード割り込み動作を提供するために中断

理解を深め補助ケース

例:NICは、データパケットを受信

カードは、パケットを受信した後、それはハードウェア割り込みを経由して、新しいデータにカーネルに指示します。この時点で、カーネルは、それに対応する割り込み処理プロセスを呼び出します。

この場合、作業担当の上半分と下半分。

  • 上半分:それは速いプロセスであるので、実際には、メモリにカードデータを入れ、その後、ハードウェア・レジスタの状態についての更新は、(データがよく読まれたことを示している)、そして最終的に下半分が完了知らせるソフト割り込みメッセージを送りましたさらに処理。
  • 下半分:ソフト割り込みウェイクアップされた後、あなたがメモリからネットワークデータを見つける必要があり、それがアプリケーション・プロセスを送られるまで、ネットワーク・プロトコル・スタックによると、層ごとのデータ解析や処理を処理します。

おすすめ

転載: www.cnblogs.com/petewell/p/11408856.html