平成28年度 秋期 午前Ⅱ 問22
コンピュータ構成要素
割込みに関する問題
ユーザプログラムの実行中に割込みが発生した場合のプロセッサの処理として,適切なものはどれか。
① プログラムレジスタ(プログラムカウンタ)などの退避
② ユーザモードから特権モードへの移行
③ 割込み処理ルーチンの開始番地の決定
④ 割込み処理ルーチンの実行
- ア① → ③ → ④ → ②
- イ② → ① → ③ → ④
- ウ② → ③ → ④ → ①
- エ③ → ④ → ① → ②
答えと解説を見る
✓ これが正解イ② → ① → ③ → ④
解説
特権モード移行、退避、開始番地の決定、実行の順に進みます。
ユーザプログラムの実行中に割込みが起きると、プロセッサはまずユーザモードから特権モードへ移ります。割込みの処理ではユーザプログラムには許されない操作を行うため、最初に権限を切り替えておく必要があります。次に、中断したユーザプログラムを後で再開できるよう、プログラムカウンタなどのレジスタの内容を退避します。そのうえで、割込みの種類に応じて割込み処理ルーチンの開始番地を決め、そこへ制御を移してルーチンを実行します。見分ける軸は、どの段階が後の段階の前提になっているかです。退避しないまま開始番地へ移ると戻る場所を失い、ルーチンは開始番地が決まってからでないと実行できない、という依存関係から順序を組み立てられます。
ほかの選択肢はなぜ違うのか
- ア① → ③ → ④ → ②:退避から始めて最後に特権モードへ移る順序では、割込み処理ルーチンをユーザモードのまま実行することになります。割込み処理には特権的な操作が必要なので、モードの切替えはルーチンの実行より前でなければなりません。
- ウ② → ③ → ④ → ①:この順序では、割込み処理ルーチンを実行し終えてからプログラムカウンタなどを退避しています。ルーチンへ移った時点でプログラムカウンタは書き換わるため、元のユーザプログラムに戻る位置が失われてしまいます。
- エ③ → ④ → ① → ②:開始番地を決めてルーチンを実行するまでを先に済ませると、退避もモードの切替えもしないまま割込み処理に入ることになります。戻る位置を失ううえ、ユーザモードのまま特権的な処理を行うことになり成り立ちません。
この問題の用語
- 移行いまのシステムから新しいシステムへ、業務とデータを移し替えることです。切り替えの手順と、途中で起きる問題の備えが要になります。
出典:平成28年度 秋期 ネットワークスペシャリスト試験 午前Ⅱ 問22
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)