等待時間定義爲每個進程在獲得時間片之前必須等待的時間。 在調度算法中,比如Shorted Job First和First Come First服務,我們可以輕鬆地發現等待時間,當我們將作業排隊等候,並看到每個人在服務之前必須等待多長時間。Round Robin調度中的平均等待時間
談到循環法或任何其他搶先算法,我們發現長時間運行的作業在CPU中花費一點時間,當它們被搶佔時,然後等待某個時間輪到它執行,並在某個時間輪到它,它會執行直到完成。我想找出最好的方法來理解這種調度算法中作業的「等待時間」。
我發現了一個formula這使等待時間爲:
Waiting Time = (Final Start Time - Previous Time in CPU - Arrival Time)
但我無法理解這個公式的推理。對於例如考慮一個工作A,其爆發時間爲30個單位,循環發生在每5個單位。還有兩個工作B(10)和C(15)。
中,這些將被提供服務將是順序:
0 A 5 B 10 C 15 A 20 B 25 C 30 A 35 C 40 A 45 A 50 A 55
等待時間,A = 40 - 5 - 0
- 我選擇40,因爲40一個永遠等待之後。它只是獲得時間片並繼續。
- 選擇5是因爲A在30到35之間花費了過程。
- 0是開始時間。
那麼,我對這個公式有疑問,爲什麼15 A 20
沒有佔? 直覺上,我不明白這是如何讓我們等待A的時間,當時我們只是倒數第二次執行,然後減去到達時間。
據我來說,等待時間A應該是:
- 決賽開始時間 - (所有時間的總和它在處理消費)。
如果這個公式錯了,爲什麼呢?
請幫助澄清我對這個概念的理解。
是不是等待時間就是完成時間 - 到達時間 - 如果它自己跑完所需要的時間。也就是說,與系統中唯一的工作相比,需要花費額外的時間。 – 2010-12-22 07:25:50
@凱斯,那也會給出正確的答案。 tmtowtdi,因爲它是一個簡單的公式。 – 2010-12-22 22:23:47