FE EXAM

割込み制御方式(インタラプト)

入出力の完了を割込みでCPUに知らせる制御方式

INTERACTIVE VISUALIZATION
別の仕事
割込み
進めた別の仕事
0
CPUの稼働
対応中
割込み信号
なし
CPUの状態
入出力の対応中
待ち時間に進めた別の仕事:0
ステップ 1 / 8
STEP 1/8開始前 — CPUが入出力をしたいCPU(=中央処理装置)が入出力装置(I/O)からデータを読み書きしたいと考えています。割込み制御方式では、CPUは完了をずっと見張る必要がありません。
CPU中央処理装置対応中I/O装置ディスクなど待機中CPUは完了を待たずに別の仕事を進め、I/Oが終わったら割込みで知らせてもらう
CPU時間の使われ方(プログラム制御との比較)
プログラム制御方式
ビジー待ち(無駄)
転送
割込み制御方式
別の仕事を進める(有効活用)
割込み処理
同じ待ち時間でも、割込み制御方式ではCPUが別の仕事を進められるため、時間を無駄にしません。
解説

📌
割込み制御方式とは

完了したら向こうから知らせてくれるCPU別の仕事中I/O装置⚡ 割込み

割込み制御方式とは、入出力の完了を、I/O装置からCPUへ「割込み」で知らせる制御方式のことです。CPUは完了を自分で確認しに行く必要がなく、依頼したあとは別の仕事を進めておけます。

身近な例で考えると、電子レンジの「チン」という音に似ています。レンジの前で待ち続けなくても、温まれば音で知らせてくれるので、その間に別の家事を進められます。プログラム制御方式が「のぞき込み続ける」のに対し、割込み制御方式は「終わったら呼んでもらう」やり方です。

上のツールで▶ボタンを押すと、CPUがI/Oに依頼したあと別の仕事を次々と進め、I/O完了時に紫色の割込み信号で知らされてからデータを処理する流れを確認できます。

割込みの仕組み

仕事を中断 → 処理 → 続きに復帰別の仕事割込み処理続きに復帰⚡ 割込み発生復帰

割込み(interrupt)とは、今実行している処理を一旦中断させ、別の処理を先に行わせる仕組みです。I/O装置は準備が終わると、CPUに割込み信号という電気的な合図を送ります。

割込みを受け取ったCPUは、次の手順で対応します。
① 今の作業を一時保存:どこまで進めたかを記録して中断する
② 割込み処理プログラムを実行:I/Oからデータを受け取るなどの処理を行う
③ 元の作業に復帰:保存しておいた続きから作業を再開する

ポイントは、CPUが自分から「終わった?」と確認しに行くのではなく、必要になった瞬間にだけ呼び出される(受け身でいられる)ことです。これにより、待ち時間を別の仕事に充てられます。割込みはI/O完了だけでなく、エラー発生やタイマー満了など、さまざまな出来事の通知にも使われる、コンピュータの基本的な仕組みです。

⚖️
プログラム制御との比較

割込み制御方式は、プログラム制御方式(ポーリング)の最大の欠点である「待ち時間にCPUが遊んでしまう」問題を解決します。両者を表で比べてみましょう。

項目プログラム制御割込み制御
完了の知り方CPUが繰り返し確認I/Oが割込みで通知
待ち時間のCPU遊んでいる(ビジー待ち)別の仕事ができる
CPUの負荷高い(無駄が多い)低い(有効活用)
仕組みの複雑さ単純やや複雑(割込み処理が必要)

両者の違いを一言でまとめると、「自分から見に行く」のがプログラム制御、「向こうから知らせてもらう」のが割込み制御です。

ただし、割込み制御方式でもデータを実際にメモリへ運ぶのはCPU自身です。大量のデータを転送するときは、この転送作業だけでもCPUの負担が大きくなります。そこで、転送そのものをCPUから切り離して専用回路に任せるのが、次の段階であるDMA制御方式です。

関連コンテンツ