6

私は次のように6つのプロセスを持っています:

-- P0 --
  arrival time = 0 
  burst time = 10  

-- P1 --
  arrival time = 110 
  burst time = 210  

-- P2 --
  arrival time = 130 
  burst time = 70  

-- P3 --
  arrival time = 130 
  burst time = 70

-- P4 --
  arrival time = 130 
  burst time = 90

-- P5 --
  arrival time = 130 
  burst time = 50

各プロセスの待機時間と所要時間を計算するにはどうすればよいですか?システムはプリエンプティブではない必要があります(プロセスは完了するまでCPUを取得します)。また、このシステムには4つの論理プロセッサがあります。

systemTimeが現在のシステムの稼働時間であり、arrivalTimeがそれに相対的であると想定します。つまり、arrivalTimeが0の場合は、システムが開始したときにプロセスが開始されることを意味します。到着時間130は、システムの起動後130ユニットでプロセスが開始されることを意味します。

これは正しいですか:waitingTime = (systemTime - arrivalTime)

これを考える私の理由はsystemTime - arrivalTime、プロセスがfcfsキューでCPUを使用するのを待っている時間です(またはこれは間違っていますか?)

そして、ターンアラウンドタイムについては、次のようなことを考えてturnaroundTime = burstTime + waitingTimeいました。待機時間とバースト時間は、プロセスを完了するための合計時間である必要があるためです。もう一度、私の直感が正しいかどうかはわかりませんが。

ありとあらゆる読み方をいただければ幸いです。

4

2 に答える 2

18

非プリエンプティブ システムの場合、

waitingTime = startTime - arrivalTime

turnaroundTime = burstTime + waitingTime = finishTime- arrivalTime

startTime = プロセスが実行を開始した時刻

finishTime = プロセスの実行が終了した時刻

システムで現在の経過時間を追跡できます( timeElapsed)。最初にすべてのプロセッサをプロセスに割り当て、最短のプロセスが実行されるまで実行します。次に、空いているこのプロセッサをキュー内の次のプロセスに割り当てます。キューが空になり、すべてのプロセスの実行が完了するまで、これを行います。また、プロセスが実行を開始するたびにそのstartTimeを記録し、終了するとその を記録しますfinishTime(両方とも と同じtimeElapsed)。そうすれば、必要なものを計算できます。

于 2012-10-26T21:24:25.190 に答える
-5
wt = tt - cpu tm.
Tt = cpu tm + wt.

wt待ち時間と所要時間はどこですかtt。CPU時間はバースト時間とも呼ばれます。

于 2014-03-22T05:42:09.403 に答える