ソフトウェア

基本情報技術者試験SJFスケジューリング」の問題

テクノロジ系ソフトウェア計算問題難易度:normal
4つのタスクが時刻0に同時到着し、処理時間はそれぞれ6・2・8・4である。処理時間の短い順に実行するSJF(ノンプリエンプティブ)方式を用いるとき、4タスクの平均待ち時間はいくらか。
5
待ち時間の平均は10
4となる
およそ7.5
正解
5

SJFは処理時間2・4・6・8の順で実行する。各タスクの待ち時間(開始時刻)は0、2、2+4=6、2+4+6=12。合計20を4で割り平均待ち時間は5となり正しい。

?選択肢ごとの解説

ア ○SJFは処理時間2・4・6・8の順で実行する。各タスクの待ち時間(開始時刻)は0、2、2+4=6、2+4+6=12。合計20を4で割り平均待ち時間は5となり正しい。
イ ×10は処理時間の合計20を待ち時間と取り違えるなど、平均をとる際の分母や対象を誤った値である。
ウ ×4は待ち時間の合計20を5で割るなど分母を取り違えた誤り、または一部タスクを数え漏らした値である。
エ ×およそ7.5は処理時間の長い順(到着順FCFSでの最悪に近い順)で実行した場合の平均に近く、SJFの並べ替えを行っていない誤りである。

くわしく

SJFは到着済みタスクのうち最短のものから実行し、平均待ち時間を最小化する。待ち時間は各タスクの開始時刻に等しく、短いタスクを先に通すほど後続全体の待ちが減る。これがSJFが平均待ち時間最小となる理由である。

本番での押さえどころ

試験のコツ

SJFはまず処理時間で昇順ソート。各タスクの待ち時間=それより前のタスクの処理時間の累計、と機械的に積み上げる。

覚え方

SJFは『短い用事から済ませる』。短い順に通すと全員の待ち合計が最小になる、と直感で覚える。

よくある誤り

並べ替えずに到着順で計算する、または待ち時間とターンアラウンドタイムを取り違える誤りが多い。

ソフトウェアの他の問題

この問題を、AIの8-ways解説つきで。

基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。

無料ではじめる →

ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0208

【基本情報技術者試験】SJFスケジューリングの問題 — 解答・解説|ukamiru 過去問