Linux豆知識 128

割り込み

公開日:2013年05月24日

今回は、「割り込み」について。

「割り込み」は英語では「interrupt」と言います。もしかするとあまり良いイメージがない言葉かもしれません。「割り込みエラー」などというメッセージと共に、アプリケーションがクラッシュした・・・という経験がある方も多いでしょう。

割り込みとは、いま実行している処理を中断して強制的に別の処理を実行させることを言います。このように書くと「やはり何か緊急事態のときの話なのかな」と思ってしまうかもしれません。しかし、実は割り込みの発生は非常に頻繁に発生しています。

割り込みは「より優先度の高い処理」を行わせる必要がある際に起こります。CPUでは、処理の優先度は予め決まっているので、割り込みの発生は高い頻度で起こります。必ずしも異常事態で起こる事象ではないことは頭に入れておいて下さい。

割り込みには、ハードウェア割り込みとソフトウェア割り込みの2種類があります。ハードウェア割り込みは、周辺機器などのハードウェアが発生させる割り込みです。たとえばキーボードのキーを1つ叩いただけでも割り込みは発生します。ハードウェア割り込みはコントローラを経由してCPUにシグナルが送られ、必要な割り込み処理が行われます。これは、ハードウェアから「何かが起きた」ということを通知してもらう仕組みだと言うことができます。

また、ソフトウェア割り込みは、プログラムが発生させる割り込みです。こちらは、OSやBIOSに準備されている、さまざまな基本命令セットを呼び出すことに利用されるケースが多くなっています。また、0除算(割り算)や、書き込み禁止領域への書き込みを行おうとした場合など、禁止されている処理を行おうとしたときに、トラブルを防ぐという使い方も多くなっています。

意外と重要な「割り込み」。OSやコンピュータの仕組みを理解するには、必ず理解おいていただきたい用語です。


ページトップへ