オペレーティングシステム(全107問中72問目)
No.72解説へ
処理はすべてCPU処理である三つのジョブ A,B,C がある。それらを単独で実行したときの処理時間は,ジョブAが5分,ジョブBが10分,ジョブCは15分である。この三つのジョブを次のスケジューリング方式に基づいて同時に実行すると,ジョブBが終了するまでの経過時間はおよそ何分か。
〔スケジューリング方式〕
〔スケジューリング方式〕
- 一定時間(これをタイムクウォンタムと呼ぶ)内に処理が終了しなければ,処理を中断させて,待ち行列の最後尾へ回す。
- 待ち行列に並んだ順に実行する。
- タイムクウォンタムは,ジョブの処理時間に比べて十分に小さい値とする。
- ジョブの切替え時間は考慮しないものとする。
出典:平成20年秋期 問32
- 15
- 20
- 25
- 30
正解 ウ問題へ
広告
解説
〔スケジューリング方式〕の説明より、3つのジョブはマルチタスク的に並行して実行されていくことがわかります。
当初は3つのジョブを同時に実行していくので、CPU時間は、3つのジョブに平均的に割り当てられていきます。処理を進めていくと、まず開始から15分時点でジョブA(処理時間5分)が完了します。15分のうち1/3がジョブAに割り当てられるためです。この時点で、ジョブBとジョブCも全体のうち5分間の処理が完了していることになります。
ジョブAの終了後は、CPU時間は2つのジョブに割り当てられます。ジョブBの残り時間は「10分-5分=5分」で、CPU時間の1/2が割り当てられるので、ジョブBの終了はジョブAの終了後10分後となることがわかります。したがって、ジョブB完了までに要する時間は「15+10=25分」です。
当初は3つのジョブを同時に実行していくので、CPU時間は、3つのジョブに平均的に割り当てられていきます。処理を進めていくと、まず開始から15分時点でジョブA(処理時間5分)が完了します。15分のうち1/3がジョブAに割り当てられるためです。この時点で、ジョブBとジョブCも全体のうち5分間の処理が完了していることになります。
ジョブAの終了後は、CPU時間は2つのジョブに割り当てられます。ジョブBの残り時間は「10分-5分=5分」で、CPU時間の1/2が割り当てられるので、ジョブBの終了はジョブAの終了後10分後となることがわかります。したがって、ジョブB完了までに要する時間は「15+10=25分」です。
広告