応用情報技術者 2016年 秋期 午前2 問19
問題文
タイムクウォンタムが2秒のラウンドロビン方式で処理されるタイムシェアリングシステムにおいて、プロセス1〜3が逐次生成されるとき、プロセス2が終了するのはプロセス2の生成時刻から何秒後か。ここで、各プロセスはCPU処理だけで構成され、OSのオーバヘッドは考慮しないものとする。また、新しいプロセスの生成と中断されたプロセスの再開が同時に生じた場合には、新しく生成されたプロセスを優先するものとする。

選択肢
ア:12
イ:14(正解)
ウ:16
エ:17
🔒 解説は解答すると表示されます
ラウンドロビンの終了時刻【午前2解説】
正解の理由
プロセス2は到着時刻3秒から数えて14秒後(= 終了時刻17秒)に処理を完了します。これはラウンドロビン(タイムクウォンタム2秒)で与えられた実行スライスが順に当てられる結果、プロセス2のCPU実行が時刻4–6、9–11、13–15、16–17の合計7秒(プロセス2の必要CPU時間)で完了するためです。したがって選択肢の中では イ が該当します。
解法ステップ
- 各プロセスの到着時刻と必要CPU時間を把握する
- P1: 到着0, CPU5
- P2: 到着3, CPU7
- P3: 到着6, CPU5
- タイムクウォンタムは2秒なので、CPUは2秒ごとにプリエンプト(中断)され、中断されたプロセスは待ち行列の末尾に入る。ただし「新規生成と中断再入が同時」の場合は新規を先に入れる規則に注意する。
- 時刻ごとに実行中プロセスと待ち行列を更新していく(以下で詳細タイムラインを示す)。
- P2の各実行スライスの合計が7秒に達する時刻を求め、P2到着時刻との差分を答えとする。
タイムライン(主要時刻での状態)
- 0–2: P1 実行(残り3)
待ち行列: P1(実行後に再入) - 2–4: P1 実行(残り1)
到着3でP2がキューに追加 → キューは [P2, (P1は実行中が終われば末尾)] - 4–6: P2 実行(残り5)
キューは [P1] - 6秒時点: P2が中断され再入と同時にP3が到着。規則により新規のP3を先に挿入するため、キューは [P1, P3, P2]
- 6–7: P1 実行(残り0)→ P1 完了
- 7–9: P3 実行(残り3)
キューは [P2] - 9–11: P2 実行(残り3)
キューは [P3] - 11–13: P3 実行(残り1)
キューは [P2] - 13–15: P2 実行(残り1)
キューは [P3] - 15–16: P3 実行(残り0)→ P3 完了
- 16–17: P2 実行(残り0)→ P2 完了
P2の実行スライス合計: 2 + 2 + 2 + 1 = 7秒(必要量)
P2の到着時刻は3秒、完了は絶対時刻17秒 → 到着からの経過 = 17 − 3 = 14秒 → 選択肢は イ。
P2の到着時刻は3秒、完了は絶対時刻17秒 → 到着からの経過 = 17 − 3 = 14秒 → 選択肢は イ。
選択肢別の誤答解説
- ア: 12
誤り。P2が到着後12秒で完了するとすると絶対完了時刻は15秒になりますが、上の正しいキュー順だとP2は15秒時点でまだ残り1秒を持っており未完了です(15–16でP3が先に実行されるため)。 - イ: 14
正しい。上記のタイムラインにより、到着3秒から14秒後(絶対時刻17秒)にP2は完了します。 - ウ: 16
誤り。到着から16秒後(絶対時刻19秒)ではP2は既に完了しているため過大評価です。これはP2の再入順や新規優先ルールを考慮せず、遅延を余分に見積もったケースに相当します。 - エ: 17
誤り。到着から17秒後(絶対時刻20秒)はさらに過大。実際のスライス割当を正確に追えばP2はそれより早く終わります。
よくある誤解
- 「時刻6秒で新規到着のP3がP1より先に実行される」と誤るケース:実際は時刻6での競合は「再入されるP2」と「新規P3」の間の順序に関する規則であり、既に待ち行列にいるP1の存在を無視してはいけません。P1は待ち行列先頭にいるためまず実行されます(6–7)。
- 同時事象の扱いを逆にする:中断再入と新規到着が同時なら「新規優先」と明記されている点を見落とすと、P2がP3より先に再入されてしまい以後の順序と完了時刻を誤算定します。
補足コラム
ラウンドロビンでは個々のプロセスの完了時刻を求める際、重要なのは「到着順」「待ち行列の現在状態」「同時発生時の優先ルール」の3点です。特に同時刻に複数の事象(到着/中断再入/終了)が起きる問題では、各事象の挿入順序ルールを明確に適用してシミュレーションすることが確実です。簡単に計算したい場合は、各プロセスがどの時間スライスで実行されるかを時系列で追うのが確実です。
FAQ
Q. なぜ時刻2–4もP1が連続して実行されるのですか?
A. キューにP1しか存在しなかったため、2秒分中断されて再入した直後でも次に選ばれるのはその先頭のP1であり、結果的に連続実行になっています(他プロセス到着が3秒で、P1の2–4実行中にP2がキュー末尾へ入る)。
A. キューにP1しか存在しなかったため、2秒分中断されて再入した直後でも次に選ばれるのはその先頭のP1であり、結果的に連続実行になっています(他プロセス到着が3秒で、P1の2–4実行中にP2がキュー末尾へ入る)。
Q. 「新規優先」のルールはいつだけ適用されますか?
A. 問題文の条件では「新しいプロセスの生成と中断されたプロセスの再開が同時に生じた場合」に限り、新規を先に入れるという扱いです。それ以外の通常の再入・到着では通常のFIFO順になります。
A. 問題文の条件では「新しいプロセスの生成と中断されたプロセスの再開が同時に生じた場合」に限り、新規を先に入れるという扱いです。それ以外の通常の再入・到着では通常のFIFO順になります。
Q. 到着時刻を基準にした解答(今回のように“生成時刻から何秒後か”)と絶対時刻の違いは?
A. 到着基準の解答は「完了時刻 − 到着時刻」で求めます。今回の例では完了が絶対時刻17秒、到着は3秒なので17−3=14秒が正しい答えです。
A. 到着基準の解答は「完了時刻 − 到着時刻」で求めます。今回の例では完了が絶対時刻17秒、到着は3秒なので17−3=14秒が正しい答えです。
関連キーワード: ラウンドロビン, タイムクウォンタム, プロセススケジューリング, 待ち行列, 同時事象の優先順

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

