logo

最短ジョブ優先 (SJF) スケジューリング

これまでは、(FCFS スケジューリングで) 到着時間に従ってプロセスをスケジュールしていました。ただし、SJF スケジューリング アルゴリズムは、バースト時間に従ってプロセスをスケジュールします。

SJF スケジューリングでは、レディキュー内の使用可能なプロセスのリストの中で、バースト時間が最も短いプロセスが次にスケジュールされます。

ただし、プロセスに必要なバースト時間を予測することは非常に困難であるため、このアルゴリズムをシステムに実装することは非常に困難です。

SJFのメリット

  1. 最大スループット
  2. 最小の平均待ち時間と所要時間

SJFのデメリット

  1. 飢餓の問題に苦しむ可能性がある
  2. プロセスの正確なバースト時間を事前に知ることができないため、これは実装できません。

プロセスの CPU バースト時間を決定できるさまざまな手法が利用可能です。それらについては後で詳しく説明します。

次の例では、P1、P2、P3、P4、および P5 という名前の 5 つのジョブがあります。それらの到着時間とバースト時間を以下の表に示します。

PID 到着時刻 バーストタイム 完了時間 ターンアラウンドタイム 待ち時間
1 1 7 8 7 0
2 3 3 13 10 7
3 6 2 10 4 2
4 7 10 31 24 14
5 9 8 21 12 4

したがって、時間 0 にはプロセスが到着しません。には空のスロットが存在します ガントチャート 時間 0 から 1 (最初のプロセスが到着した時間)。

このアルゴリズムに従って、OS は、レディキュー内の使用可能なプロセスの中でバースト時間が最も短いプロセスをスケジュールします。

これまで、準備完了キューにはプロセスが 1 つしかないため、バースト時間に関係なく、スケジューラはこれをプロセッサにスケジュールします。

これは 8 単位時間まで実行されます。それまでに、さらに 3 つのプロセスが準備完了キューに到着するため、スケジューラはバースト時間が最も短いプロセスを選択します。

表に示されているプロセスのうち、利用可能なすべてのプロセスの中でバースト時間が最も短い P3 が次に実行されます。

ということで、このまま手続きが進んでいきます 最短のジョブから順 (SJF) スケジュールアルゴリズム。

os SJF スケジューリング アルゴリズム

平均待ち時間 = 27/5