五つのジョブA〜Eに対して,ジョブの多重度が1で,処理時間順方式のスケジューリングを適用した場合,ジョブBのターンアラウンドタイムは何秒か。
ここで,OSのオーバーヘッドは考慮しないものとする。
単位 秒
ジョブ|到着時刻|単独実行時の処理時間
A|0|2
B|1|4
C|2|3
D|3|2
E|4|1
正答4
解説
正解は4です。
処理時間順方式は、実行待ちのジョブのうち処理時間が最も短いものから実行するスケジューリング方式です。
多重度1なので、一度に実行できるジョブは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(4秒)とD(2秒)が待っているので、Dを6秒から8秒まで実行します。
最後にBを8秒から12秒まで実行します。
Bのターンアラウンドタイムは 12秒-到着時刻1秒=11秒です。
【選択肢別解説】
1:× 8秒は、Bの実行開始時刻にあたり、終了時刻ではありません。
2:× 9秒は計算結果と一致しません。
到着順などで処理した場合の値とも合いません。
3:× 10秒は計算結果と一致しません。
4:○ Bは8秒から12秒まで実行され、到着の1秒から数えて11秒で完了します。
【ポイント】
処理時間順方式は平均ターンアラウンドタイムを短くできますが、処理時間の長いジョブは後回しになりがちです。
各時刻で「到着済みのジョブ」だけを比べることが計算のコツです。