平成30年度 秋期 午前 問16
ソフトウェア
ラウンドロビンに関する問題
処理は全て CPU 処理である三つのジョブ A,B,C がある。それらを単独で実行したときの処理時間は,ジョブ A は 5 分,ジョブ B は 10 分,ジョブ C は 15 分である。この三つのジョブを次のスケジューリング方式に基づいて同時に開始すると,ジョブ B が終了するまでの経過時間はおよそ何分か。
〔スケジューリング方式〕
(1) 一定時間(これをタイムクウォンタムと呼ぶ)内に処理が終了しなければ,処理を中断させて,待ち行列の最後尾へ回す。
(2) 待ち行列に並んだ順に実行する。
(3) タイムクウォンタムは,ジョブの処理時間に比べて十分に小さい値とする。
(4) ジョブの切替え時間は考慮しないものとする。
- ア15
- イ20
- ウ25
- エ30
答えと解説を見る
✓ これが正解ウ25
解説
3本で等分の15分と2本で等分の10分を足して25分です。
三つのジョブを同時に開始したとき、処理時間が中くらいのジョブが終わるまでの経過時間を求める問いです。まず方式の正体を見抜きます。一定時間で処理を中断して待ち行列の最後尾へ回し、並んだ順に実行するというスケジューリングですから、ラウンドロビン方式です。タイムクウォンタムは処理時間に比べて十分に小さいと断られているので、そのとき走っているジョブで CPU を等分していると見てよいことになります。切替え時間も考えなくてよいと書かれています。そこで区間に分けて数えます。最初は三本が走っているので、それぞれ三分の一の速さで進みます。単独なら五分で終わるジョブは、三倍の十五分かかります。その十五分の間に、ほかの二本も五分ぶんずつ進んでいます。残りは、単独十分のジョブが五分ぶん、単独十五分のジョブが十分ぶんです。次の区間は二本になりますから、速さは二分の一に上がり、残り五分ぶんは十分で片づきます。合わせて二十五分です。CPU の総仕事量でも確かめられます。前半の十五分で十五分ぶん、後半の十分で十分ぶんが処理され、二十五分のあいだ CPU は休んでいません。見分けの軸は、走っている本数が変わった瞬間に区間を切り直すことです。本数が減れば残ったジョブはその瞬間から速くなります。
ほかの選択肢はなぜ違うのか
- ア15:最も短いジョブが終わる時刻です。三本で等分している間に五分ぶんの処理を終えるのがそのジョブで、その時点では問われているジョブにまだ五分ぶんの処理が残っています。終わるのはさらに後になります。
- イ20:最初の区間の十五分に、残っている五分ぶんをそのまま五分として足した形です。しかし十五分の時点ではまだ二本が走っているので、残り五分ぶんの処理には実際には十分かかります。単独で走れるわけではありません。
- エ30:三つのジョブの処理時間を五分と十分と十五分で全部足した値で、最も長いジョブまで含めてすべてが終わる時刻です。CPU が休まず働くのでこの時刻は正しいのですが、問われているのは二本目が終わる時刻です。
出典:平成30年度 秋期 応用情報技術者試験 午前 問16
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)