五つのジョブA〜Eに対して,ジョブの多重度が1で,処理時間順方式のスケジューリングを適用した場合,ジョブBのターンアラウンドタイムは何秒か。
ここで,OSのオーバヘッドは考慮しないものとする。
単位 秒
表/ジョブ|到着時刻|単独実行時の処理時間/A|0|2/B|1|4/C|2|3/D|3|2/E|4|1
正答4
解説
正解は4です。
処理時間順方式は、到着しているジョブのうち処理時間が最も短いものから実行する方式です。
多重度1で、実行中のジョブは途中で中断しないものとして順にたどります。
【計算】
時刻0では到着しているのはAだけなので、Aを0〜2秒に実行します。
時刻2では、B(4秒)とC(3秒)が待っているので、短いCを2〜5秒に実行します。
時刻5では、B(4秒)、D(2秒)、E(1秒)が待っているので、Eを5〜6秒に実行します。
時刻6では、BとDのうち短いDを6〜8秒に実行します。
最後にBを8〜12秒に実行します。
Bのターンアラウンドタイムは、終了時刻12-到着時刻1=11秒です。
【選択肢別解説】
1:× 8秒は、Bの待ち時間を少なく見積もった値です。
BはC、E、Dのあとに回されるので、終了は12秒です。
2:× 9秒は、Bの処理が10秒で終わる前提の値です。
実際には後から到着したDやEが先に実行されます。
3:× 10秒になるにはBが11秒に終わる必要があります。
しかしBの前にA、C、E、Dが合計8秒実行されるので、Bの終了は12秒です。
4:○ Bは処理時間が最も長いので最後に実行され、12秒に終わります。
到着時刻1秒からの経過は11秒です。
【ポイント】
ターンアラウンドタイムは「到着してから処理が終わるまで」の時間です。
処理時間順方式では、処理時間の長いジョブが後回しにされやすい点も押さえましょう。