処理はすべてCPU処理である三つのジョブA、B、Cがある。それらを単独で実行したときの処理時間は、ジョブAは5分、ジョブBは10分、ジョブCは15分である。この三つのジョブを次のスケジューリング方式に基づいて同時に開始すると、ジョブBが終了するまでの経過時間はおよそ何分か。
〔スケジューリング方式〕
(1) 一定時間 (これをタイムクウォンタムと呼ぶ) 内に処理が終了しなければ、処理を中断させて、待ち行列の最後尾へ回す。
(2) 待ち行列に並んだ順に実行する。
(3) タイムクウォンタムは、ジョブの処理時間に比べて十分に小さい値とする。
(4) ジョブの切替え時間は考慮しないものとする。
ア 15 イ 20 ウ 25 エ 30
ウ
一定時間を仮に10秒とすると、
ジョブAの処理: 10秒 ⇒ ジョブBの処理: 10秒 ⇒ ジョブCの処理: 10秒
⇒ ジョブAの処理: 10秒 ⇒ ジョブBの処理:10秒 ⇒ ジョブCの処理: 10秒
のように、1分間でそれぞれ20秒ずつ処理され、3分間で各ジョブが1分間ずつ処理されることになる。
ジョブ時間が最も短いジョブAは5分であるから、ジョブAの処理が終わるのに
5分×3 = 15分かかる。
ジョブA終了後は、ジョブBとジョブCが1分間で30秒ずつ処理できるから、ジョブBの残り5分の処理に10分かかる。
従って、ジョブBが終了するまでの経過時間は、15+10 = 25分である。
ちなみに、全てのジョブが終了するには
25分+ジョブCの残り時間5分 = 30分である。
問15 | 目次 | 問17 |