OSとハードウェア
CPUが割り込みを受け付けたときの一般的な処理の流れとして正しいものはどれか。
- A実行中のプログラムを破棄し、最初から実行し直す
- B割り込みハンドラを実行したあと、元のプログラムには戻らずに次のプログラムを始める
- C実行中の位置と状態を保存し、割り込みハンドラを実行してから、保存した位置に戻る
答えと解説を見る
正解:C. 実行中の位置と状態を保存し、割り込みハンドラを実行してから、保存した位置に戻る
割り込みを受け付けると、CPUは次に実行するはずだった命令のアドレスと動作モードなどの状態を保存し、割り込みベクタテーブルなどで決まる割り込みハンドラへ移ります。ハンドラは必要なレジスタを保存して処理を行い、終わったら状態を戻して、中断した場所から元のプログラムを再開します。プログラムを破棄したり、最初からやり直したりはしません。ハンドラのあと別のプロセスに切り替わることはありますが、それはOSの判断です。
- A. プログラムを破棄することはありません。
- B. 基本は元の場所に戻ります。切り替わるかはOSの判断です。
- C. 正しい。状態を保存し、ハンドラを実行してから元に戻ります。