2012-10-26 46 views
5

我有6個過程如下:計算等待時間和處理時間的(非搶先)FCFS隊列

-- 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與此相關。即:到達時間0意味着過程在系統執行時開始; 130的到達時間意味着在系統啓動後該過程開始130個單位。

這是正確的:waitingTime = (systemTime - arrivalTime)

我的以爲這是systemTime - arrivalTime是這一進程中的先來先服務一直在等待的時間排隊使用CPU推理

而對於週轉時間,我想這樣(或這是錯的?): turnaroundTime = burstTime + waitingTime,因爲等待時間和突發時間應該是完成該過程的總時間。雖然我再一次不知道我的直覺是否正確。

任何和所有的讀數將不勝感激!

回答

15

對於非搶佔系統,

waitingTime = startTime - arrivalTime 

turnaroundTime = burstTime + waitingTime = finishTime- arrivalTime 

開始時間 =時間在這過程中開始執行

finishTime =時間在該過程完成執行

你可以保持跟蹤系統中已過去的當前時間(timeElapsed)。在開始時將所有處理器分配給進程,並執行直到最短進程完成執行。然後將這個免費的處理器分配給隊列中的下一個進程。這樣做直到隊列爲空所有進程都已完成執行。另外,每當一個進程開始執行時,記錄它的startTime,當完成時,記錄它的finishTime(兩者與timeElapsed相同)。這樣你可以計算出你需要的東西。

+0

除了這個問題:我如何計算平均CPU利用率? –

+0

對不起,不確定。 – Max

-3
wt = tt - cpu tm. 
Tt = cpu tm + wt. 

wt是一個等待時間,tt的週轉時間。 Cpu時間也被稱爲突發時間。

+0

這是不正確的,應該刪除。 – marcusshep

相關問題