2012-12-05 49 views
0
 
Process  Burst Time  Arrival Time  Priority 
P1   5    0    1 
P2   1    0    3 
P3   2    2    1 
P4   4    4    2 
P5   2    4    2 
P6   3    5    3 
P7   4    5    3 

嗨,大家好。我們被賦予了關於搶佔式優先級調度的任務,並且我真的不知道如何在具有相同優先級編號的兩個或多個進程中執行此操作。作業 - 搶先優先排程

我必須製作甘特圖,計算週轉時間和平均等待時間。

如果可能,你們可以發佈一步一步的解決方案,瞭解如何做到這一點,以便我可以研究它是如何完成的。

感謝您的幫助球員。

+2

如果這是一個概念性問題,它會更適合[programmers.se]或可能[rational.se]。 – GraphicsMuncher

回答

0

首先:兩個具有相同優先級的進程通常會根據它們的到達時間進行排序:所以先來先服務。

轉身時間:通常是指過程產生輸出所需的時間量。您的課程可能會使用不同或更簡單的定義來簡化計算。從我所看到的你可能被要求計算每個過程完成所花費的時間量。這等於:finish_time - time_first_scheduled_on_CPU(不是finish_time - arrival_time)。

平均等待時間:根據您開發的甘特圖,它精確地顯示了某個進程在CPU上的時間和時長,您可以計算每個進程等待獲取CPU的總時間。

這包括:到達之間

  1. 大量的時間和當它第一次安排在CPU
  2. 如果進程具有較長的執行時間比單量子,那麼你需要總結所有的所花的時間關閉的CPU
  3. 添加兩個量在一起,你有總的等待時間過程
  4. 重複步驟1-3爲每個進程和取平均值。
+0

嗯。從我的例子來看,P1和P3的優先級是1 ... P1的到達時間爲0,但突發時間爲5. P3的到達時間爲2,但突發時間爲2. 如果P1先完成所有5個單元在去P3的2個單位之前? 或P1先完成1個單位然後讓P3有2個單位然後完成4? –

+0

是的,所以P1會先運行。 – ose

+0

由於P3具有相同的優先級,所以P1會運行完成。可以這樣想:一名將軍可以搶先一名中尉,但一名中尉不能搶先佔領一名將軍。最重要的是,所有的中尉都是平等的,所以A中尉不能搶先佔領B中尉。 – ose