CPU 排程

排程評估準則(scheduling criteria)

你怎麼分辨好排程器和壞排程器?你不能只說「比較快」,因為對誰快?算圖希望機器不停地拼命跑;打字的人希望游標即時反應。排程評估準則就是作業系統設計者用來評斷一個排程政策的那幾把可量測的尺,好讓取捨能誠實地被討論,而不是憑感覺。

經典的五項:CPU 使用率——CPU 有多大比例的時間在忙著做事(越高越好)。產出率(throughput)——單位時間內有多少行程完成(高為佳)。完成時間(turnaround time,又稱周轉時間)——從工作抵達到完成的總時間(低為佳)。等待時間(waiting time)——工作待在就緒佇列中、未在執行的總時間(低為佳)。反應時間(response time)——從提出要求到第一個回應出現的時間,對互動使用最重要(低為佳)。注意使用率與產出率是全系統的量度,而完成、等待、反應是逐工作的,通常以平均值回報。

誠實的部分:這些目標彼此衝突,所以沒有政策能同時把它們全部最大化。把產出率最大化可能偏袒短工作而傷害長工作的完成時間。把反應時間最小化(用很小的時間片)會升高環境切換開銷,可能降低產出率。真實系統會挑出對其工作負載最重要的準則——桌面看反應時間、批次叢集看產出率——並接受其他項目稍微犧牲。某些場合還在意最壞情況或變異程度,而非只看平均,因為一個可預測的系統可能勝過一個稍快但抖動的系統。

兩個工作,長度分別為 24 毫秒與 3 毫秒。先跑長的:平均等待時間是 (0 + 24)/2 = 12 毫秒。先跑短的:平均等待時間是 (0 + 3)/2 = 1.5 毫秒——光憑順序,在這個指標上就好了八倍。產出率(27 毫秒內完成 2 個工作)兩種方式完全相同;改變的只有逐工作的準則。

在此順序不改變產出率,卻徹底改變等待時間——不同的準則會獎勵不同的政策。

平均值會掩蓋痛苦:一個平均反應時間很漂亮的政策,仍可能餓死某個倒楣的工作。對即時與互動系統而言,最壞情況或變異程度常比平均值更重要。

又称
scheduling metrics排程指標