応用情報技術者試験 平成31年春 午前問16 解説付き過去問
問題
五つのジョブA~Eに対して、ジョブの多重度が1で、処理時間順方式のスケジューリングを適用した場合、ジョブBのターンアラウンドタイムは何秒か。
ここで、OSのオーバヘッドは考慮しないものとする。


正解
解説
この問題は、処理時間順方式(Shortest Job First)によるスケジューリングに基づいて、ジョブBのターンアラウンドタイムを求めるものです。
- 処理時間順方式の特徴
処理時間順方式(Shortest Job First)は、実行可能なジョブの中から、最も処理時間の短いジョブを優先して実行する方式です。ジョブの多重度が1であるため、同時に処理できるジョブは1つに限られます。また、問題文に特に指定がないため、ノンプリエンプティブ(途中で割り込まれない)な方式とみなします。 - 各ジョブの到着時間と処理時間
図から以下のように読み取れます。
ジョブA:到着時刻0秒、処理時間2秒
ジョブB:到着時刻1秒、処理時間4秒
ジョブC:到着時刻2秒、処理時間3秒
ジョブD:到着時刻3秒、処理時間2秒
ジョブE:到着時刻4秒、処理時間1秒 - 処理の順序
時間の流れに従って、処理対象が次のように選ばれます。
・0~2秒:ジョブAを実行
・2~5秒:ジョブCを実行(B, Cが到着済み、Cの方が短い)
・5~6秒:ジョブEを実行(E, B, Dの中でEが最短)
・6~8秒:ジョブDを実行(残りはDとB、Dが短い)
・8~12秒:ジョブBを実行(最後に残ったジョブ) - ジョブBのターンアラウンドタイム
ジョブBは1秒に到着し、8秒から実行され、12秒に終了します。
ターンアラウンドタイムは、終了時刻−到着時刻で求められるため、12−1=11秒です。
したがって、ジョブBのターンアラウンドタイムは11秒です。