【コンピュータシステム】外からの合図に即座に対応!「外部割込み」|情報処理問題1000本ノック
CPUがプログラムを実行中に、外部の機器や内部のタイマーから緊急の知らせが入ることがあります。これらを整理して正しく分類できるようにしましょう。
1. 問題:外部割込みの要因
【 問題 】 コンピュータの割込み処理のうち、CPUの外部にある装置やタイマーなど、プログラムの実行状態とは直接関係なく発生する「外部割込み」に該当するものはどれでしょうか?
1. ゼロによる除算(ゼロ除算)
2. 存在しない命令コード(不正命令)の実行
3. タイマーによる設定時間の通知
4. ページフォールト(主記憶にないページへのアクセス)の発生
2. 正解:割込み処理に関する正解
正解: 3. タイマーによる通知
3. 解説:「内部」か「外部」かの境界線
割込みは、その原因が「CPU内部のプログラム実行によるもの」か「CPU外部の要因によるもの」かで大きく2つに分けられます。
【図解:割込みの種類と具体例】
■ 外部割込み ★今回の正解
・要因:CPUの外側から発生するイベント。
・具体例:
- タイマー割込み:設定した時間が経過した。
- 入出力割込み:キーボード入力やディスクの読み書き完了。
- コンソール割込み:オペレーターによる操作。
- 機械チェック割込み:電源異常やメモリのパリティエラーなど。
■ 内部割込み(ソフトウエア割込み・例外)
・要因:プログラムの実行中に、その内容によって発生するもの。
・具体例:
- プログラム割込み:ゼロ除算(選択肢1)、不正命令(選択肢2)、オーバーフロー。
- SVC割込み:OSの機能(システムコール)を呼び出す時。
- ページフォールト:仮想記憶の制御(選択肢4)。
■ 外部割込み ★今回の正解
・要因:CPUの外側から発生するイベント。
・具体例:
- タイマー割込み:設定した時間が経過した。
- 入出力割込み:キーボード入力やディスクの読み書き完了。
- コンソール割込み:オペレーターによる操作。
- 機械チェック割込み:電源異常やメモリのパリティエラーなど。
■ 内部割込み(ソフトウエア割込み・例外)
・要因:プログラムの実行中に、その内容によって発生するもの。
・具体例:
- プログラム割込み:ゼロ除算(選択肢1)、不正命令(選択肢2)、オーバーフロー。
- SVC割込み:OSの機能(システムコール)を呼び出す時。
- ページフォールト:仮想記憶の制御(選択肢4)。
[ 覚え方のポイント ]
★ 内部割込み:そのプログラムを実行したから「自業自得」で起きたもの(計算ミスやOSへの依頼)。
★ 外部割込み:プログラムの都合に関わらず「外から勝手に」やってくるもの。
★ 内部割込み:そのプログラムを実行したから「自業自得」で起きたもの(計算ミスやOSへの依頼)。
★ 外部割込み:プログラムの都合に関わらず「外から勝手に」やってくるもの。
1. 理解のコツ: 外部割込みは、いわば「外からの呼び鈴」です。作業の手を止めて玄関へ向かうように、CPUは現在の状態を一時保存して、割り込んできた緊急事態(入力対応や時間管理)を優先して処理します。
2. 試験対策の視点: 「ゼロ除算」と「タイマー」は、内部と外部を区別する問題で最もよく使われる典型的なキーワードです。この2つの違いを基準に覚えるのが効率的です。
4. まとめ
「プログラムの実行とは無関係に外から発生する」。これが外部割込みです。コンピュータが時間通りに動作したり、私たちの入力に即座に反応したりできるのは、この割込みの仕組みがあるおかげです。
PR