SJF(Shortest Job First)スケジューリング方式。
平均待機時間と平均所要時間の計算方法は?
ガントチャートは正しいですか?
ガントチャートが間違っています...最初のプロセスP3が到着したため、最初に実行されます。 P3のバースト時間はP3の完了後3秒であるため、プロセスP2、P4、およびP5が到着しています。 P2、P4、およびP5の中で、P2の最短バースト時間は1秒であるため、P2は次に実行されます。次にP4とP5。最後にP1が実行されます。
このキューのガントチャートは次のようになります。
| P3 | P2 | P4 | P5 | P1 |
1 4 5 7 11 14
平均待機時間=(0 + 2 + 2 + 3 + 3)/ 5 = 2
平均所要時間=(3 + 3 + 4 + 7 + 6)/5=4.6
違います。正しいでしょう
P3 P2 P4 P5 P1 0 3 4 6 10これらは正しい違いとして
待機時間(0 + 3 + 4 + 6 + 10)/ 5 = 4.6
参照: http://www.it.uu.se/edu/course/homepage/oskomp/vt07/lectures/scheduling_algorithms/handout.pdf
HifzanとRajaが提供したガントチャートは、FCFSアルゴリズム用です。
SJFアルゴリズムを使用すると、プロセスを中断できます。つまり、すべてのプロセスが、指定されたバースト時間をまっすぐに実行するとは限りません。
P3 | P2 | P4 | P3 | P5 | P1 | P5
1 | 2 | 3 | 5 | 7 | 8 | 11 | 14
P3は1ミリ秒で到着し、P2とP4は両方ともバースト時間が短いため中断され、その後P3が再開します。 P5は次に実行を開始し、P1のバースト時間がP5より小さいため、P1によって中断されます。到着時間に注意し、注意する必要があります。これらの問題は、一見したところよりも扱いにくい場合があります。
編集:これは、プリエンプティブSJFアルゴリズムにのみ適用されます。単純なSJFアルゴリズムはプリエンプティブではありません。つまり、プロセスを中断しません。