Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

優化輪詢排程:處理可變進程到達時間

輪詢 (RR) 是一種先佔式 CPU 排程演算法,每個進程獲得固定時間片稱作量子。不同於到達時間為零的標準輪詢,此變體處理不同時刻到達的進程,使排程更複雜,因就緒佇列動態變化。

在先佔式排程中,執行中進程可被中斷並移回就緒佇列。輪詢透過給每個進程平等 CPU 時間確保公平性,防止飢餓並維持互動系統的良好回應時間。

不同到達時間下的輪詢運作方式

當進程有不同到達時間,演算法遵循以下步驟:

  • 進程根據到達時間進入就緒佇列
  • CPU 服務第一個可用進程持續量子時長
  • 若進程在量子內完成則終止
  • 未完成則移至就緒佇列末端
  • 新到達進程加入就緒佇列等待輪到
  • 上下文切換儲存被先佔進程狀態

關鍵特性

  • 防止飢餓:每個進程最終都能獲得 CPU 時間
  • 公平排程:所有進程獲得相等時間量子
  • 良好回應時間:適合互動和即時系統
  • 上下文切換開銷:較小量子增加切換成本

範例 1 量子時間 = 2

考慮三個具有不同到達和爆發時間的進程:

進程到達時間爆發時間
P104
P213
P327

甘特圖 — 輪詢 (量子 = 2) P1 P2 P3 P1 P2 P3 0 2 4 6 8 9 14

逐步執行

時間進程就緒佇列動作
0-2P1P1P1 執行 2 單位,P2 在 t=1 到達
2-4P2P2, P1P2 執行 2 單位,P3 在 t=2 到達
4-6P3P3, P1P3 執行 2 單位
6-8P1P1, P2, P3P1 完成剩餘 2 單位
8-9P2P2, P3P2 完成剩餘 1 單位
9-14P3P3P3 完成剩餘 5 單位

計算平均時間

進程到達爆發完成周轉等待
P104884
P213985
P32714125

平均周轉時間 = (8 + 8 + 12) / 3 = 9.33 單位

平均等待時間 = (4 + 5 + 5) / 3 = 4.67 單位

範例 2 量子時間 = 4

較大量子大小下:

進程到達時間爆發時間
P128
P207
P319

甘特圖 — 輪詢 (量子 = 4) P2 P3 P1 P2 P3 P1 0 4 8 12 15 20 24

進程到達爆發完成周轉等待
P128242214
P20715158
P319201910

平均周轉時間 = (22 + 15 + 19) / 3 = 18.67 單位

平均等待時間 = (14 + 8 + 10) / 3 = 10.67 單位

結論

具有不同到達時間的輪詢排程在處理動態進程到達時提供公平 CPU 分配。量子大小顯著影響效能 — 較小量子改善回應時間但增加上下文切換開銷,較大量子可能降低公平性但提高吞吐量。

優化輪詢排程:處理可變進程到達時間