メインコンテンツへ
ソフトウェアOS応用

SJF(Shortest Job First)スケジューリングについて、ジョブA(処理時間8)、B(処理時間4)、C(処理時間2)、D(処理時間6)が同時刻に到着したとき、平均待ち時間として正しいものはどれか。

ア.5正解
イ.6
ウ.10
エ.20

解説

SJFは「会計レジで短い買い物の人を先に通す方式」。待ち時間の総和を最小化できる定理が知られていて、全員が一斉に並んだ場合は処理時間の短い順に並べ替えるだけで最適解になります。

なぜ ア が正解か

アが正解。SJFでは処理時間の短い順にC(2)→B(4)→D(6)→A(8)の順で実行される。各ジョブの待ち時間(実行開始までの待ち)は C=0、B=2、D=2+4=6、A=2+4+6=12。平均待ち時間 = (0+2+6+12)/4 = 20/4 = 5。

なぜ イ は間違いか

6はFCFS(到着順A→B→C→D)で計算した場合の平均待ち時間 (0+8+12+14)/4=8.5 とも合わない。計算手順のどこかで足し算ミスをした典型的な誤答。

なぜ ウ は間違いか

10は「待ち時間の合計の半分」あたりを誤って答えたもの。SJFの平均待ち時間は「各ジョブが実行開始まで待った時間の総和÷ジョブ数」であり10ではない。

なぜ エ は間違いか

20は「待ち時間の合計(0+2+6+12=20)」をそのまま答えてしまった典型例。問題は平均なので必ずジョブ数4で割る必要がある。

出典: AI生成問題(学習用)