ソフトウェア開発技術者試験 |
2001年度 = 平成13年度 |
午前 |
問36 |
三つのジョブA~Cを、次のスケジューリング方式に基づいて同時に開始する。このとき、ジョブBが終了するまでの経過時間は、ほぼ何分か。
[ジョブ]
単独で実行したときの処理時間は、ジョブAは5分、ジョブBは10分、ジョブCは15分である。処理時間内の内訳はすべてCPU時間である。ジョブの切替え時間は無視できる。
[スケジューリング方式]
(1) 待ち行列に並んだ順に実行する。
(2) 一定時間(これをタイムクウォンタムと呼ぶ)の間に処理が終了しなければ、処理を中断させて、待ち行列の最後尾へ回す。
(3) タイムクウォンタムは、ジョブの処理時間に比べて十分に小さい値とし、ジョブの切り替え時間は無視できる。
ウ
本問で問われているラウンドロビンは、プロセスに優先順位を与えずに、一定時間のタイムクウォンタム(CPU割当て時間)を与え、その時間内に終了しない場合は、待ち行列の最後に戻す方式です。
タイムクウォンタムは非常に短い時間ですが、ここでは大雑把に1分であるとします。そうすると各ジョブは下図のように実行されます。
この図の通りにジョブA→ジョブB→ジョブCの順で実行されるとは限りませんが、ジョブBが終了するまでの経過時間は、およそ25分となります。