I-6-5. 割り込みと時分割処理

CPUとその他デバイスの関係について整理し、「割り込み」の概念を説明する。割り込みの種類や割り込みの管理など割り込みに関連するいくつかの話題について触れ、さらに、カーネルにおける割り込み処理の概要を解説する。また時分割処理に関わる基本的な事項を説明する。

【学習の要点】

* 割り込みが発生すると、CPUは現在実行中の処理を中断して、割り込みに対応する処理を実施する。

* 周辺機器に何らかの障害が発生した場合に、割り込みを発生させて障害を伝えることにより、回復処理などの実行を速めることが可能となる。

* タイムシェアリングシステムにおいては、タイムスライスの時間内にCPUの使用が止まらなかった場合に、タイマ割り込みが発生する。

図I-6-5. 割り込みの目的

【解説】

1) CPUが周辺機器からの要求を受け取る方法

コンピュータが周辺機器などから受け取る要求のことを割り込みと呼ぶ。コンピュータは割り込みが発生すると現在実行中の処理を中断して、割り込みに対応するための処理を行う。割り込みの目的を以下に記す。

* 処理速度の遅い周辺機器に計算リソースを独占されることのないように、割り込みによってCPUは他の処理を効率よく行うことが可能となる。ただし、キーボードやマウスなどの直接ユーザが操作するデバイスでは、割り込みを使ってユーザの入力1つ1つを確実に処理させている。

* 周辺機器に何らかの障害が発生した場合に、割り込みを発生させて障害を伝えることにより、回復処理など必要な処理の実行を早めることが可能となる。

* 一定のタイミングで処理することが必須条件であるような機器の制御を行う場合に、所定のスケジュールでのタイマ割り込みを発生させ、CPU側に処理のタイミングを指示することを可能とする。

2) 割り込みの種類

CPUの割り込みは、大きくわけて「ハードウェア割り込み」と「ソフトウェア割り込み」に分類できる。

* ハードウェア割り込み

CPUの外部から、CPUの割り込み要求端子に対して電気的な信号変化を与えることで発生する。

* ソフトウェア割り込み

実行中のソフトウェアによる割り込み。ゼロ除算やオーバーフローなどによって発生する。

3) 割り込みの管理

ハードウェア割り込みにせよソフトウェア割り込みにせよ、CPUに割り込みが生じると、現在実行しているプロセスを中断させ割り込みハンドラもしくは割り込みサービスルーチンと呼ばれる処理が実行される。また、これら割込処理の終了後には、元のプロセスが中断した箇所から再開されるように、元のプロセスに関する情報(アドレスや作業状態)を、保存しておく。この過程をコンテキストスイッチという。

* タイマ割り込み

タイムシェアリングシステムにおいては、プロセスがタイムスライスの時間内にCPUの使用を止めなかった場合には、タイマ割り込みが発生し他のプロセスの実行が開始される。この場合にも、同様の割り込み管理が行われている。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。