ラウンドロビン方式でのジョブの終了時間
出典: 平成30年度 秋期 応用情報技術者試験 午前 問16 (IPA)
処理は全て CPU 処理である三つのジョブ A,B,C がある。それらを単独で実行したときの処理時間は,ジョブ A は 5 分,ジョブ B は 10 分,ジョブ C は 15 分である。この三つのジョブを次のスケジューリング方式に基づいて同時に開始すると,ジョブ B が終了するまでの経過時間はおよそ何分か。
〔スケジューリング方式〕
- 一定時間(これをタイムクウォンタムと呼ぶ)内に処理が終了しなければ,処理を中断させて,待ち行列の最後尾へ回す。
- 待ち行列に並んだ順に実行する。
- タイムクウォンタムは,ジョブの処理時間に比べて十分に小さい値とする。
- ジョブの切替え時間は考慮しないものとする。
- ア 15
- イ 20
- ウ 25
- エ 30
正解と解説を見る
正解: ウ
- ア: 15 分後は、A が終わる時刻です。そのとき B はまだ 5 分残っています。
- イ: 20 分後は、A が終わった後に B が CPU を独占した場合の値です。C と分け合うので、さらに時間が掛かります。
- ウ: 15 分 (3 つで分け合う) + 10 分 (2 つで分け合う) = 25 分なので正しい答えです。
- エ: 30 分後は、全てのジョブが終わる時刻です。
ポイント
タイムクウォンタムが十分に小さいので、実行中のジョブで CPU を 均等に分け合う と考えられます。
- 3 つのジョブで分け合うと、それぞれ 1 分に 1/3 分ずつ進みます。A (5 分) が終わるのは、全員が 5 分ずつ進んだ 15 分後 です。
- 残りは B (あと 5 分) と C (あと 10 分) の 2 つで、1 分に 1/2 分ずつ進みます。B があと 5 分進むには 10 分 掛かります。
- B が終わるのは 15 + 10 = 25 分後 です。