ネットワークスペシャリスト 2016年 午前2 問22
問題文
ユーザプログラムの実行中に割込みが発生した場合のプロセッサの処理として、適切なものはどれか。
①プログラムレジスタ(プログラムカウンタ)などの退避
②ユーザモードから特権モードへの移行
③割込み処理ルーチンの開始番地の決定
④割込み処理ルーチンの実行
選択肢
ア:① → ③ → ④ → ②
イ:② → ① → ③ → ④(正解)
ウ:② → ③ → ④ → ①
エ:③ → ④ → ① → ②
ユーザプログラムの実行中に割込みが発生した場合のプロセッサの処理【午前2 解説】
要点まとめ
- 結論:割込み発生時はまず特権モードに移行し、次にレジスタ退避、割込み処理番地決定、処理実行の順で行います。
- 根拠:割込み処理は安全かつ確実に行うため、特権モードに切り替えた後に状態保存と処理開始が必須です。
- 差がつくポイント:特権モード移行のタイミングを誤るとシステムの安全性が損なわれるため、最初に行うことを理解しましょう。
正解の理由
割込みが発生すると、まずユーザモードから特権モードへ移行し、割込み処理を安全に実行できる環境を整えます。次にプログラムレジスタなどの現在の状態を退避し、割込み処理ルーチンの開始番地を決定します。最後に割込み処理ルーチンを実行します。これにより、割込み処理中に元のプログラムの状態が保持され、処理後に正しく復帰できます。したがって、② → ① → ③ → ④の順序で処理するイが正解です。
よくある誤解
割込み処理で最初にレジスタ退避を行うと考えがちですが、特権モードへの移行が先です。これを誤ると割込み処理の安全性が損なわれます。
解法ステップ
- 割込み発生を検知し、ユーザモードから特権モードへ移行する。
- 現在のプログラムの状態(プログラムカウンタなど)をレジスタに退避する。
- 割込み処理ルーチンの開始番地を決定する。
- 割込み処理ルーチンを実行する。
選択肢別の誤答解説
- ア: ① → ③ → ④ → ②
レジスタ退避を最初に行い、特権モード移行が最後で安全性が確保されません。 - イ: ② → ① → ③ → ④
正解。特権モード移行後に状態退避し、割込み処理を開始します。 - ウ: ② → ③ → ④ → ①
状態退避が最後で、割込み処理中に元の状態が失われる恐れがあります。 - エ: ③ → ④ → ① → ②
割込み処理開始前に状態退避や特権モード移行がされておらず誤りです。
補足コラム
割込み処理はCPUの制御を一時的に別の処理に切り替える仕組みで、システムの応答性や安全性を高めます。特権モードはOSなどの重要処理を実行するためのモードで、ユーザモードからの切り替えが必須です。割込み処理後は退避した状態を復元し、元のプログラムに戻ります。
FAQ
Q: なぜ特権モードに移行しなければならないのですか?
A: 割込み処理はシステムの重要な制御を行うため、ユーザモードよりも高い権限を持つ特権モードで実行する必要があります。
A: 割込み処理はシステムの重要な制御を行うため、ユーザモードよりも高い権限を持つ特権モードで実行する必要があります。
Q: プログラムレジスタの退避はなぜ必要ですか?
A: 割込み処理中に元のプログラムの実行状態を保持し、処理終了後に正しく復帰するためです。
A: 割込み処理中に元のプログラムの実行状態を保持し、処理終了後に正しく復帰するためです。
関連キーワード: 割込み処理、特権モード、プログラムカウンタ、CPU制御、割込みハンドラ

\ せっかくなら /
ネットワークスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

