非搶占式優先順序排程


在非先佔優先順序排程中,進程根據分配給它們的優先順序編號進行排程。 一旦進程被安排好了,它就會執行直到完成。 通常,優先順序數越低,進程的優先順序越高。 人們可能會對優先順序數位感到困惑,因此在GATE中,明確提到哪一個是最高優先順序,哪一個是最低優先順序。

範例

在例子中,有7個進程:P1P2P3P4P5P6P7。 它們的優先順序,到達時間和爆發時間在表中給出。

進程ID 優先順序 到達時間 爆發時間
1 2 0 3
2 6 2 5
3 3 1 4
4 5 4 2
5 7 6 9
6 4 5 4
7 10 7 10

我們可以根據非搶先優先順序排程來準備甘特圖。

進程P1在時間0到達,突發時間為3個單位,優先順序為2。由於沒有其他進程到目前為止,因此作業系統會立即安排它。

同時執行P1,還有兩個進程P2和P3到達。 由於P3的優先順序為3,因此CPU將通過P2執行P3。

同時執行P3,所有進程都可以在就緒佇列中使用。 優先順序最低的進程將被優先考慮。 由於P6將優先順序編號分配為4,因此它將在P3之後執行。

在P6之後,P4在可用進程中具有最小優先順序編號; 它會在整個爆發時間執行。

由於所有作業都在就緒佇列中可用,因此所有作業都將根據其優先順序執行。 如果兩個作業的優先順序編號相似,則會執行最短到達時間的編號。

從GANTT圖表中,可以確定每個進程的完成時間。 周轉時間,等待時間和響應時間將被確定。

周轉時間 = 完成時間 - 到達時間
等待時間 = 週轉時間 - 爆發時間
進程Id 優先順序 到達時間 爆發時間 完成時間 周轉時間 等待時間 響應時間
1 2 0 3 3 3 0 0
2 6 2 5 18 16 11 13
3 3 1 4 7 6 2 3
4 5 4 2 13 9 7 11
5 7 6 9 27 21 12 18
6 4 5 4 11 6 2 7
7 10 7 10 37 30 18 27

平均等待時間=(0 + 11 + 2 + 7 + 12 + 2 + 18)/ 7 = 52/7單位