修了試験 2014-12-21実施分 基本情報技術者試験 問16
処理は全てCPU処理である三つのジョブA,B,Cがある。 それらを単独で実行したときの処理時間は,ジョブAが5分,ジョブBが10分,ジョブCは15分である。 この三つのジョブを次のスケジューリング方式に基づいて同時に実行すると,ジョブBが終了するまでの経過時間はおよそ何分か。 〔スケジューリング方式〕 (1) 一定時間(これをタイムクウォンタムと呼ぶ)内に処理が終了しなければ,処理を中断させて,待ち行列の最後尾へ回す。 (2) 待ち行列に並んだ順に実行する。 (3) タイムクウォンタムは,ジョブの処理時間に比べて十分に小さい値とする。 (4) ジョブの切替え時間は考慮しないものとする。
正答3
解説
正解は3です。 これはラウンドロビン方式のスケジューリングです。 タイムクウォンタムが十分小さいので、実行中のジョブにCPU時間がほぼ均等に配分されると考えます。 3ジョブが同時に動く間は、各ジョブは経過時間の1/3ずつしか進みません。 【計算】 最初は3ジョブで均等に分け合います。 最も短いジョブA(5分)が終わるのは、各ジョブが5分ずつ進んだときです。 その時点の経過時間=5分×3ジョブ=15分です。 このときジョブBは5分進んでおり、残りは10-5=5分です。 以降はBとCの2ジョブで均等に分け合います。 Bの残り5分を終えるのに必要な経過時間=5分×2ジョブ=10分です。 ジョブBの終了時刻=15+10=25分です。 【選択肢別解説】 1:× 15分はジョブAが終了する時刻です。 この時点でジョブBはまだ5分分の処理が残っています。 2:× 20分は、A終了後にBが単独でCPUを使えるとした値です。 実際にはCとも分け合うので、残り5分の処理に10分かかります。 3:○ A終了までに15分、その後BとCで分け合ってBが終わるまでに10分かかり、合計25分です。 4:× 30分は3ジョブの処理時間の合計で、最後のジョブCが終了する時刻です。 Bはそれより前に終了します。 【ポイント】 ラウンドロビンでは、短いジョブほど早く終わり、全体の終了時刻は処理時間の合計になります。 「同時に動いているジョブ数×進んだ処理時間」で経過時間を区切って求めるのがコツです。まとめて解く
修了試験 2014-12-21実施分を通しで解く(80問)→