【わりこみ】

割り込み とは?

💡 CPUへの「緊急呼び出しボタン」
📌 このページのポイント
割り込みの仕組み CPU 通常処理を実行中 命令1 命令2 命令3 割り込み発生! 割り込み要因 キーボード HW割り込み タイマー HW割り込み ディスク HW割り込み システムコール SW割り込み 1. 状態を保存 レジスタ・PC等を スタックに退避 2. ハンドラ実行 割り込みハンドラ が処理を実行 3. 復帰 保存した状態を 復元して再開 通常処理に復帰 命令3 命令4
割り込みの仕組み
ひよこ ひよこ

割り込みって何?名前が物騒だけど…

ペンギン先生 ペンギン先生

全然物騒じゃないよ(笑)。例えばキーボードのキーを押したとき、CPUに「入力があったよ!」って知らせる仕組みだよ。CPUが今やってる仕事をちょっと中断して、キー入力の処理をして、また元の仕事に戻る。

ひよこ ひよこ

なんで割り込みが必要なの?普通に順番に処理すればいいのでは?

ペンギン先生 ペンギン先生

CPUがずっと「キーボードが押された?まだ?押された?」って確認し続けるのは無駄だよね。割り込みがあれば「押されたときだけ教えてくれ」でOK。待ち時間にCPUを他の仕事に使えるから効率的なんだ。

ひよこ ひよこ

ハードウェア割り込みとソフトウェア割り込みって違うの?

ペンギン先生 ペンギン先生

ハードウェア割り込みはキーボードネットワークカードなど物理デバイスから来るもの。ソフトウェア割り込みはプログラム自体が意図的に起こすもので、「システムコール」もその一種だよ。プログラムがOS機能を使いたいとき、ソフトウェア割り込みでOSに処理を頼む。

ひよこ ひよこ

割り込みが多すぎると何か問題になる?

ペンギン先生 ペンギン先生

「割り込みストーム」って状態があって、ネットワークパケットが大量に届くなど割り込みが嵐のように発生すると、CPUがほぼ割り込み処理だけに占有されて本来の仕事ができなくなる。その対策として「割り込みコアレシング(まとめ処理)」や「NAPI(Linuxのネット割り込み効率化機構)」がある。本番サーバーの高負荷トラブルでこれが原因のことがあって、top コマンドで「hi」(ハードウェア割り込み時間)が高いと疑う、みたいな診断をする。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「割り込み」って出てきたら「緊急イベントをCPUに即知らせる仕組みだな」と思えばだいたいOK!
📖 おまけ:英語の意味
「Interrupt」 = 中断させる・割り込む
💬 Inter(間に)+rupt(破る)で「流れを破って割り込む」という意味。ラテン語由来の言葉
← 用語集にもどる