普考-資訊處理計算機概要106 年第 20 題單選題
下列何者 CPU 排班演算法可以得到最短的等待時間?
A先到先服務排班法(FCFS)
B循環排班法(RR)
C最短工作優先排班法(SJF)正確答案
D最長工作優先排班法(LJF)
C正確答案
SJF(最短工作優先)可得到最短平均等待時間,是作業系統經典定理。
為什麼答案是 C
SJF 永遠先做 CPU burst 最短的工作,可被數學證明為「最小化平均等待時間」的最佳演算法,但缺點是可能造成長工作飢餓 (starvation)。
載入中…
完整詳解
Pro · 無限重點 SJF(最短工作優先)可得到最短平均等待時間,是作業系統經典定理。
看到「最短等待時間」直接選 SJF,這是 OS 課本的標準結論。
逐選項分析
A✕ 陷阱
FCFS 依到達順序執行,若先來的是長工作會造成「護送效應」(convoy effect),短工作被迫久等,平均等待時間通常較差。
B✕
RR 採時間配額輪流執行,重點在公平性與回應時間,適合分時系統,但因頻繁 context switch,平均等待時間並非最佳。
C✓ 正確
SJF 永遠先做 CPU burst 最短的工作,可被數學證明為「最小化平均等待時間」的最佳演算法,但缺點是可能造成長工作飢餓 (starvation)。
D✕
LJF 先做最長工作,短工作全部被擋在後面等待,平均等待時間最差,是 SJF 的反面,現實上幾乎不會採用。
CPU 排班演算法比較
| 演算法 | 策略 | 優點 | 缺點 |
|---|
| FCFS | 先到先服務 | 簡單、公平 | 護送效應、等待時間長 |
| SJF | 最短工作優先 | 平均等待時間最佳 | 長工作飢餓、需預估 burst |
| RR | 時間配額輪流 | 回應快、適合分時 | context switch 成本高 |
| Priority | 依優先權 | 重要工作先做 | 低優先權飢餓 |
| LJF | 最長工作優先 | (幾乎無實用) | 平均等待時間最差 |
題目問「最短等待時間」不是「最短回應時間」。RR 是回應時間好,SJF 才是平均等待時間最佳。另外也別把 SJF 跟 LJF 看反,考選部就愛放 LJF 當誘答選項測眼力。