平成30年度 秋期 応用情報技術者試験 午前 問16
テクノロジ/ソフトウェア処理は全てCPU処理である三つのジョブA,B,Cがある。それらを単独で実行したときの処理時間は,ジョブAは5分,ジョブBは10分,ジョブCは15分である。この三つのジョブを次のスケジューリング方式に基づいて同時に開始すると,ジョブBが終了するまでの経過時間はおよそ何分か。 〔スケジューリング方式〕 (1) 一定時間(これをタイムクウォンタムと呼ぶ)内に処理が終了しなければ,処理を中断させて,待ち行列の最後尾へ回す。 (2) 待ち行列に並んだ順に実行する。 (3) タイムクウォンタムは,ジョブの処理時間に比べて十分に小さい値とする。 (4) ジョブの切替え時間は考慮しないものとする。
出典:平成30年度 秋期 応用情報技術者試験 午前 問16
- ア15
- イ20
- ウ25
- エ30
正解:ウ
解説
タイムクウォンタムが十分小さいラウンドロビンでは,実行中の3ジョブがCPU時間をほぼ均等(1/3ずつ)に分け合う処理共有として近似できます。ジョブAの処理時間5分は,3ジョブで均等に分け合うと経過時間15分で完了します(15×1/3=5)。その後,残るB,Cの2ジョブが均等に分け合い,Bの残り処理量5分(10−15/3)を消化するのに追加で10分(5×2)かかるため,Bが終了するのは15+10=25分後です。
選択肢ごとの解説
- ア誤り。15分はジョブAが完了する時点であり,ジョブBはまだ完了していません。
- イ誤り。20分は,2番目の区間の計算を誤って半分の時間で見積もった場合の値です。
- ウ正しい。ジョブAが15分で完了した後,残りのB,Cが均等に処理を分け合い,Bは25分後に完了します。
- エ誤り。30分は,ジョブCの完了時刻など,別のジョブの終了時刻と混同した値です。