平成30年度秋期 応用情報技術者試験 午前 問16
処理は全てCPU処理である三つのジョブA,B,Cがある。それらを単独で実行したときの処理時間は,ジョブAは5分,ジョブBは10分,ジョブCは15分である。この三つのジョブを次のスケジューリング方式に基づいて同時に開始すると,ジョブBが終了するまでの経過時間はおよそ何分か。 〔スケジューリング方式〕 (1) 一定時間(これをタイムクウォンタムと呼ぶ)内に処理が終了しなければ,処理を中断させて,待ち行列の最後尾へ回す。 (2) 待ち行列に並んだ順に実行する。 (3) タイムクウォンタムは,ジョブの処理時間に比べて十分に小さい値とする。 (4) ジョブの切替え時間は考慮しないものとする。
- ア 15
- イ 20
- ウ 25
- エ 30
解答・解説を見る
正解:ウ
AI解説
タイムクウォンタムが十分小さいラウンドロビン方式では、実行中のジョブ群がCPU時間を等分に分け合うと近似できる。開始から3ジョブ並行の間は各ジョブ1/3ずつ進み、A(5分)が終わるのは経過15分時点(各ジョブが5分ずつ消化)。この時点でBは残り5分、Cは残り10分。以後2ジョブで等分するため、Bの残り5分の消化には実時間で10分かかる。よってBの終了は15+10=25分後となり、ウが正しい。 ア: 15分はジョブA終了時点の経過時間であり、Bはまだ残り5分の処理を残している。 イ: 20分はBの残り処理をB単独で実行できると誤解した場合の値で、実際はCと並行のため2倍の実時間が必要である。 ウ: 正しい。3ジョブ並行の15分でB残り5分、以後2ジョブ並行で5分×2=10分掛かり、合計25分である。 エ: 30分はジョブC(15分)の終了時刻(15+10+5=30分)であり、Bの終了時刻ではない。 💡 微小タイムクウォンタムのラウンドロビンは「並行中のジョブ数で速度が1/nになる」と考えるのがコツ。短いジョブが終わるたびに区間を区切り、区間ごとに残量を計算していく。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。