逐語https://www.dazhuanlan.com/2019/08/25/5d625adf891d0/
割り込み:割り込みシステムは、それが通常の実行およびスケジューリングのプロセスを中断して、要求元のデバイスに応じた処理を割り込み処理カーネルを呼び出します、ハードウェアの要求に応答するために使用されるメカニズムです。
割り込み記述を可視化:テイクアウトシーンを撮ります
1.割り込み機構を非同期イベント処理で、システムの並行処理能力を向上させます
2.実行されていた通常のプロセスへの影響を軽減するために、プロセスを割り込み処理することは、できるだけ早く実行する必要があります
3.割り込みが上下に分かれ
(1)上半部用来快速处理中断,在中断禁止模式下,主要处理跟硬件紧密相关的或时间敏感的工作
(2)下半部用来延迟处理上半部未完成的工作,通常以内核线程的方式运行。
要約:
- 直接要求処理ハードウェア、すなわち、ハードウェア割り込み、の上半分は、高速実行が特徴
- ソフト割り込みであるカーネルによってトリガ下半分は、遅延実行することを特徴とします
実際には、CPUの上半分は、実行中のタスクを中断し、その後直ちに端末処理プロセスを実行するであろう。カーネルスレッドの下半分は、方法で実行し、それぞれが呼ばれるソフト割り込みCPUカーネルスレッドに対応する「ksoftirq / CPU番号」。
カーネルディスパッチャは、RCUをロック:ソフト割り込みハードウェアの下半分に加えて、のようないくつかのカスタムカーネルイベント、を含む、プロセスのポイントを割り込み処理
:4.procファイルシステムのような、カーネル空間とユーザ空間の通信のためのメカニズムを動的カーネルまたはカーネル設定を変更するために使用されるデータ構造を表示するために使用することができています
- / procの/ softirqsはソフト割り込み動作を提供します
- / procの/ハード割り込み動作を提供するために中断
理解を深め補助ケース
例:NICは、データパケットを受信
カードは、パケットを受信した後、それはハードウェア割り込みを経由して、新しいデータにカーネルに指示します。この時点で、カーネルは、それに対応する割り込み処理プロセスを呼び出します。
この場合、作業担当の上半分と下半分。
- 上半分:それは速いプロセスであるので、実際には、メモリにカードデータを入れ、その後、ハードウェア・レジスタの状態についての更新は、(データがよく読まれたことを示している)、そして最終的に下半分が完了知らせるソフト割り込みメッセージを送りましたさらに処理。
- 下半分:ソフト割り込みウェイクアップされた後、あなたがメモリからネットワークデータを見つける必要があり、それがアプリケーション・プロセスを送られるまで、ネットワーク・プロトコル・スタックによると、層ごとのデータ解析や処理を処理します。