オペレーティングシステム(全131問中34問目)

処理はすべてCPU処理である三つのジョブ A,B,C がある。それらを単独で実行したときの処理時間は,ジョブAは5分,ジョブBは10分,ジョブCは15分である。この三つのジョブを次のスケジューリング方式に基づいて同時に開始すると,ジョブBが終了するまでの経過時間はおよそ何分か。

〔スケジューリング方式〕
  • 一定時間(これをタイムクウォンタムと呼ぶ)内に処理が終了しなければ,処理を中断させて,待ち行列の最後尾へ回す。
  • 待ち行列に並んだ順に実行する。
  • タイムクウォンタムは,ジョブの処理時間に比べて十分に小さい値とする。
  • ジョブの切替え時間は考慮しないものとする。

出典:平成30年秋期 問16

  • 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分後となることがわかります。
16.png
したがって、ジョブB完了までに要する時間は「15+10=25分」です。

この問題の出題歴


Pagetop