この概念が出た関連問題

この試験の対策ガイド

基本情報技術者試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は ウ

解説

割込みの分類を問う基本問題です。割込みは、実行中のプログラム自身が原因で発生する内部割込みと、実行中のプログラムとは無関係に外部の要因で発生する外部割込みに大別されます。内部割込みには、ゼロ除算や桁あふれなどのプログラム例外、存在しない命令の実行エラー、仮想記憶のページフォールト、OS機能を呼び出すシステムコール(SVC割込み)などがあります。外部割込みには、タイマによる時間経過の通知(タイマ割込み)、キーボードやディスクなどの入出力完了通知(入出力割込み)、電源異常や機械故障(機械チェック割込み)などがあります。ウのタイマによる通知は、実行中のプログラムの内容とは無関係に、ハードウェアのタイマ装置が一定時間の経過を知らせるものなので外部割込みです。正解はウです。判別のコツは「いま実行している命令が原因か(内部)、それ以外のハードウェアやイベントが原因か(外部)」という一点に絞って考えることです。

なぜ他の選択肢は違うのか

選択肢 ア
ゼロによる除算命令の実行は、実行中のプログラム自身の演算が原因で発生するプログラム例外であり、内部割込みに分類されます。除算命令が0を除数として実行された瞬間に、CPUが演算続行不能を検出して割込みを発生させます。原因が「いま実行した命令そのもの」にある点が、外部のハードウェア要因で起こる外部割込みとの決定的な違いです。
選択肢 イ
存在しない命令コードの実行も、プログラム自身が不正な命令を実行しようとしたことが原因で発生する内部割込みです。データ領域に誤って分岐した場合やプログラムの破損時に起こり、CPUが命令を解読できずに例外を発生させます。プログラムの実行内容そのものに起因するため、タイマや入出力装置といった外部要因による割込みとは区別されます。
選択肢 エ
ページフォールトは、仮想記憶方式で、アクセスしようとしたページが主記憶上に存在しないときに発生する内部割込みです。実行中の命令によるメモリアクセスが直接の原因であり、OSはこの割込みを契機に補助記憶から該当ページを読み込みます。発生後にOSの処理が介在する点で複雑に見えますが、原因は「いま実行した命令のアクセス」なので内部割込みです。

解くときのポイント

割込みは原因で分類: いま実行した命令が原因=内部(ゼロ除算・不正命令・ページフォールト・SVC)、外のハードウェアやイベントが原因=外部(タイマ・入出力・電源異常)。