
最短ジョブネクスト(SJN )は、最短ジョブファースト(SJF)または最短プロセスネクスト(SPN)とも呼ばれ、実行時間が最も短い待機プロセスを選択して実行するスケジューリングポリシーです。 [ 1 ] SJNは非プリエンプティブなアルゴリズムです。最短残り時間アルゴリズムは、SJNのプリエンプティブ版です。
最短ジョブ・ネクストは、そのシンプルさと、各プロセスが実行完了まで待機しなければならない平均時間を最小化するという利点があります。しかし、短いプロセスが継続的に追加されると、完了に長時間を要するプロセスではプロセス飢餓が発生する可能性があります。最高応答率ネクストも同様ですが、この問題をエージングと呼ばれる手法を用いて解決します。[ 2 ]
最短ジョブネクストを使用するもう一つの欠点は、ジョブの総実行時間を実行前に把握しておく必要があることです。実行時間を完全に予測することは不可能ですが、過去の実行時間の加重平均など、いくつかの方法で推定することができます。[ 3 ]マルチレベルフィードバックキューは、総実行時間オラクルを必要とせずにSJNを近似するためにも使用できます。[ 1 ]
最短ジョブネクストは、一般的にコマンドの待機と実行を交互に繰り返すパターンを持つ対話型プロセスで効果的に使用できます。プロセスの実行バーストを独立した「ジョブ」と見なす場合、過去の動作に基づいて、実行時間の推定に基づいて次に実行するプロセスを特定できます。
最短ジョブ ネクストは、実行時間の正確な見積りが可能な特殊な環境で使用されます。
重み付け最短ジョブ優先(WSJF)は、アジャイル開発で使用される概念の修正版であり、遅延のコストに応じてジョブに重み付けすることで、最も価値の高いジョブが早く完了するようにします。[ 4 ]
バリューフローレート(VFR)は、WSJFのより直感的な別名であり、実際の時間やお金の単位ではなく、単位のない相対的な「ポイント」を使用して遅延と期間のコストを表します。[ 5 ]