OSとハードウェア

CPUが割り込みを受け付けたときの一般的な処理の流れとして正しいものはどれか。

  1. A実行中のプログラムを破棄し、最初から実行し直す
  2. B割り込みハンドラを実行したあと、元のプログラムには戻らずに次のプログラムを始める
  3. C実行中の位置と状態を保存し、割り込みハンドラを実行してから、保存した位置に戻る
答えと解説を見る

正解:C. 実行中の位置と状態を保存し、割り込みハンドラを実行してから、保存した位置に戻る

割り込みを受け付けると、CPUは次に実行するはずだった命令のアドレスと動作モードなどの状態を保存し、割り込みベクタテーブルなどで決まる割り込みハンドラへ移ります。ハンドラは必要なレジスタを保存して処理を行い、終わったら状態を戻して、中断した場所から元のプログラムを再開します。プログラムを破棄したり、最初からやり直したりはしません。ハンドラのあと別のプロセスに切り替わることはありますが、それはOSの判断です。

  • A. プログラムを破棄することはありません。
  • B. 基本は元の場所に戻ります。切り替わるかはOSの判断です。
  • C. 正しい。状態を保存し、ハンドラを実行してから元に戻ります。
この分野を解く 分野ページへ

OSとハードウェアのほかの問題

  1. 割り込みベクタテーブルの役割として正しいものはどれか。
  2. 重要な処理の途中で一時的に割り込みを禁止(マスク)するときの注意点として正しいものはどれか。
  3. 割り込みハンドラの処理を、すぐに行う短い部分と、あとで通常の文脈で行う残りの部分に分ける理由として正しいものはどれか。
  4. ページテーブルの役割として正しいものはどれか。
  5. ページフォルトが起こる場合として正しいものはどれか。