平成31年春期試験問題 午前問16

五つのジョブA~Eに対して,ジョブの多重度が1で,処理時間順方式のスケジューリングを適用した場合,ジョブBのターンアラウンドタイムは何秒か。ここで,OSのオーバーヘッドは考慮しないものとする。
16.png

  • 8
  • 9
  • 10
  • 11
正解 問題へ
分野:テクノロジ系
中分類:ソフトウェア
小分類:オペレーティングシステム
解説
ターンアラウンドタイムは、入力の開始を始めたときからすべての出力を受け取るまでに要する時間のことをいいます。

処理時間順方式は、処理時間の短いタスクを優先的に実行するスケジューリング方式です。新たなタスクが到着すると処理の待ち行列に加わり、CPUが空くと待ち行列の中から予想処理時間が最も短いタスクが選択され、実行状態に移されます。またジョブの多重度が1なので、CPUは同時に1つのジョブしか処理できません。

これらの条件に従うと、CPUは次のようにジョブを処理していくことになります。
  1. 【開始時点】到着しているのはジョブAだけなので、CPUはジョブAの処理を開始する。
  2. 【1秒後】ジョブBが到着する。CPUはジョブAの処理を続ける。
  3. 【2秒後】ジョブAの処理が完了する。同時にジョブCが到着する。
    未処理のタスクの処理時間を比較するとB>Cなので、CPUはジョブCの処理を開始する。
  4. 【3秒後】ジョブDが到着する。CPUはジョブCの処理を続ける。
    ※処理時間はC>Dですが、処理時間順方式はノンプリエンプティブな方式なのでタスクの切替えは発生しません。
  5. 【4秒後】ジョブEが到着する。CPUはジョブCの処理を続ける。
  6. 【5秒後】ジョブCの処理が完了する。
    未処理のタスクの処理時間を比較するとE<D<Bなので、CPUはジョブEの処理を開始する。
  7. 【6秒後】ジョブEの処理が完了する。
    未処理のタスクの処理時間を比較するとD<Bなので、CPUはジョブDの処理を開始する。
  8. 【8秒後】ジョブDの処理が完了する。
    CPUは最後に残ったジョブBの処理を開始する。
  9. 【12秒後】ジョブBの処理が完了し、全てのジョブの処理が完了する。
このようにタスクの完了順は「A→C→E→D→B」となります。ジョブBが到着したのは開始から1秒後ですから、ジョブBのターンアラウンドタイムは、全体の処理時間12秒から1秒を引いた11秒となります。したがって「エ」が正解です。
16a.png

この問題の出題歴


Pagetop