割り込み
わりこみ概念
実行中の処理を一時中断し、緊急の事象に対応する仕組み。入出力やリアルタイム処理を成り立たせる基礎概念。
年表
1951UNIVAC Iが算術オーバーフロー時に処理を中断する仕組みを備える(例外処理としての割り込みの初期例)
1954NBS DYSEACが入出力向けの割り込み(2つのプログラムカウンタの切り替え)を導入
概要
CPUが今の処理を一時中断し、外部からの信号(キー入力、通信の到着、タイマーなど)に応じた別の処理を先に実行してから、元の処理へ戻る仕組み。これがあることで、CPUは「入力が来るかもしれない」と待ち続けて時間を無駄にせずに済む。入出力処理やリアルタイム処理、OSのマルチタスクを成り立たせている基礎概念の一つ。
時代背景
最初期の例として、1951年のUNIVAC I が算術オーバーフロー発生時に実行列を中断し、メモリ番地000にある2命令の処理へ飛ぶ仕組みを備えていた。ただしこれは例外処理であり、入出力向けの割り込みとしては、1954年に米国標準局(NBS)が開発したDYSEACが最初とされる。DYSEACは2つのプログラムカウンタを持ち、入出力信号が来ると実行をもう一方のプログラムカウンタへ切り替える方式だった。
現在
今日のCPUやOSでも割り込みは中核的な仕組みであり続けている。キーボード入力、ネットワーク到着、タイマー、ハードウェアの異常など、あらゆる非同期イベントの処理に使われ、OSのスケジューラやデバイスドライバの動作もこの仕組みの上に成り立っている。