web-dev-qa-db-ja.com

SJFスケジューリングで平均待機時間と平均ターンアラウンド時間を計算する方法は?

SJF(Shortest Job First)スケジューリング方式。

enter image description here

平均待機時間と平均所要時間の計算方法は?

ガントチャートは正しいですか?

enter image description here

22
Failed_Noob

ガントチャートが間違っています...最初のプロセス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

21
Hifzan

SJFは2つのタイプ-i)非プリエンプティブSJF ii)プリエンプティブSJF

到着時間に従ってプロセスを再配置しました。ここに先制のないSJFがあります

A.T =到着時間

B.T =バースト時間

C.T =完了時間

T.T =ターンアラウンドタイム= C.T-A.T

W.T =待機時間= T.T-B.T

enter image description here

プリエンプティブSJFは次のとおりです。各プロセスは、新しいプロセスが到着したときにプリエンプトします。その後、バースト時間を比較し、バースト時間が最短のプロセスを割り当てます。しかし、2つのプロセスのバースト時間が同じ場合、最初に来たプロセスがFCFSと同様に最初に割り当てられます。

enter image description here

17
Erfan Ahmed

違います。正しいでしょう

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

2
Raja

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アルゴリズムはプリエンプティブではありません。つまり、プロセスを中断しません。

2
brthomps