NWネットワークスペシャリスト試験 午前Ⅱ

平成28年度秋期 ネットワークスペシャリスト 午前Ⅱ 問22

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

ユーザプログラムの実行中に割込みが発生した場合のプロセッサの処理として,適切なものはどれか。 ① プログラムレジスタ(プログラムカウンタ)などの退避 ② ユーザモードから特権モードへの移行 ③ 割込み処理ルーチンの開始番地の決定 ④ 割込み処理ルーチンの実行

選択肢

  1. ア
    ① → ③ → ④ → ②
  2. イ
    ② → ① → ③ → ④
  3. ウ
    ② → ③ → ④ → ①
  4. エ
    ③ → ④ → ① → ②
解き方のヒントを見る

割込み処理の流れを整理する視点

割込みを扱う選択肢を比べるときは、発生を契機に処理の各段階がどの順序で進み、通常処理との関係がどう整理されているかに注目しましょう。

この問題で問われていること

一つの観点として、割込み発生後から元の処理へ戻るまでを時系列で追い、各段階で保持・切替・再開に関わる情報がどのように扱われる想定かを確認してください。

視点

個別の方式名や具体的な手順を暗記する前に、出来事を時系列へ並べ、処理の中断と再開に関係する状態の扱いを整理すると、説明同士の違いを落ち着いて比較できます。

確認ポイント

  • 発生から復帰までの出来事を時系列で追えているか
  • 通常処理と割込み対応の境界を区別して読めているか
  • 保存・切替・再開に関する説明が同じ観点で書かれているか
正解と解説を見る

正解

イ

解説

割込み発生時は、まずユーザプログラムを停止して特権モードへ移行し、復帰に必要なプログラムレジスタなどを退避する。その後、割込み処理ルーチンの開始番地を決定して実行する。したがって順序は②→①→③→④です。

理由

ユーザモードで実行中に割込みが発生すると、割込み処理を安全に行うため、最初に特権モードへ移行する。次に、割込み前の処理へ戻れるようプログラムレジスタなどを退避する。

比較

実行環境を整えた後で、割込み処理ルーチンの開始番地を決定し、その番地からルーチンを実行する。この流れに一致するのは②→①→③→④です。

選択肢ア

これは不正解だよ。①のプログラムレジスタなどの退避を最初に置いているが、ユーザプログラムから割込み処理へ移るには、先にユーザモードから特権モードへ移行する。さらに②を最後に置いており、処理順序が実際の流れと合わない。

選択肢イ(正解)

これは正解だよ。割込み発生後は、まず②のユーザモードから特権モードへの移行を行う。続いて①でプログラムレジスタなどを退避し、③で割込み処理ルーチンの開始番地を決定した後、④でそのルーチンを実行する。

選択肢ウ

これは不正解だよ。②の特権モードへの移行と③の開始番地決定を先に置いているが、割込み前のプログラムへ復帰できるようにする①の退避が必要である。退避を④の実行後に置くため、処理の準備順序が不適切である。

選択肢エ

これは不正解だよ。③で開始番地を決定し、④で割込み処理ルーチンを実行してから、①の退避と②の特権モード移行を行う順序になっている。しかし、実行前に適切な実行モードへ移り、必要な状態を退避しておく必要がある。

学習のポイント

割込み受付から割込み処理ルーチン実行までの基本的な処理順序を理解する。

出典:独立行政法人 情報処理推進機構(IPA)平成28年度秋期 ネットワークスペシャリスト試験 午前Ⅱ 問22(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針