基本情報技術者試験「優先度スケジューリング」の問題
4つのタスクPA・PB・PC・PDが時刻0に同時到着する。処理時間はPA=6・PB=2・PC=4・PD=8で、優先度はPB・PC・PA・PDの順に高い。優先度順のノンプリエンプティブ方式で実行するとき、平均ターンアラウンドタイムはいくらか。
ア5.0
イ12.5
ウ10.0
エ8.5
正解
ウ.10.0
優先度の高い順PB→PC→PA→PDで実行する。完了時刻はPB=2、PC=2+4=6、PA=6+6=12、PD=12+8=20。到着0なのでターンアラウンドタイムはそのまま2・6・12・20、合計40を4で割り平均10となり正しい。
?選択肢ごとの解説
ア ×5.0は各タスクの開始時刻の平均(0+2+6+12)/4=5、すなわち平均待ち時間であり、完了時刻で測るターンアラウンドの平均ではない。
イ ×12.5は処理時間の長い順など優先度の並びを逆に取り違えて実行した場合に近い値であり、与えられた優先度順と異なる。
ウ ○優先度の高い順PB→PC→PA→PDで実行する。完了時刻はPB=2、PC=2+4=6、PA=6+6=12、PD=12+8=20。到着0なのでターンアラウンドタイムはそのまま2・6・12・20、合計40を4で割り平均10となり正しい。
エ ×8.5は到着順(FCFS)や一部タスクの完了時刻を取り違えた計算による値で、優先度順の結果とは一致しない。
✎くわしく
優先度スケジューリングは優先度の高いタスクから実行する。ノンプリエンプティブでは実行中のタスクを途中で奪わないため、開始順は優先度で固定される。ターンアラウンドタイムは完了時刻(到着0なら累積処理時間)で求める。
✓本番での押さえどころ
試験のコツ
優先度順に並べて完了時刻を累積し、到着0なら完了時刻=ターンアラウンド。平均は全タスクの完了時刻の平均で求める。
覚え方
優先度順は『VIPから案内』。偉い順に通し、各人の終了時刻を積み上げて平均する、と覚える。
よくある誤り
優先度の高低の向き(数値が小さいほど高い等)を取り違える、または平均待ち時間と平均ターンアラウンドを混同する誤りが多い。
ソフトウェアの他の問題
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0210