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

No.28

五つのジョブA〜Eに対して,ジョブの多重度が1で,処理時間順方式のスケジューリングを適用した場合,ジョブBのターンアラウンドタイムは何秒か。ここで,OSのオーバヘッドは考慮しないものとする。
17.gif/image-size:242×144
  • [この問題の出題歴]
  • ソフトウェア開発技術者 H16春期 問26
  • ソフトウェア開発技術者 H18秋期 問25

分類

テクノロジ系 » ソフトウェア » オペレーティングシステム

正解

解説

ターンアラウンドタイムは、入力作業の開始からすべての出力作業を終えるまでにかかる時間のことをいいます。そして処理時間順方式(Shortest Processing Time First)は、タスクの横取りがない(ノンプリエンプティブな)スケジューリング方式で、処理時間の短いタスクを優先的に実行します。新たなタスクが到着すると処理の待ち行列に加わり、CPUが空くと待ち行列の中から最も(予想)処理時間の短いタスクが選択され、実行状態に移されます。

これに従うとCPUは次のようにジョブを処理していくことになります。
  1. 開始時点で到着しているのはジョブAだけなので、CPUはジョブAの処理を開始する。
  2. 開始から1秒後にジョブBが到着する。CPUはジョブAの処理を続ける。
  3. 開始から2秒後にジョブCが到着する。同時にジョブAの処理が完了する。
    未処理のタスクの処理時間を比較するとC<Bなので、CPUはジョブCの処理を開始する。
  4. 開始から3秒後にジョブDが到着する。CPUはジョブCの処理を続ける。
  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」になり、開始から1秒後にジョブBが到着してから処理が終了するまでには11秒を要します。
17a.gif/image-size:411×151
© 2010-2018 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop