3.(CPU 排程 Scheduling)哪一種排程策略最容易造成「飢 餓(Starvation)」?
(A)先來先服務(FCFS)
(B)時間片 輪轉(Round Robin)
(C)最短剩餘時間優先(SRTF)
(D)多 層隊列排程(Multilevel Queue)
統計: A(5), B(0), C(11), D(4), E(0) #3678234
詳解 (共 1 筆)
【解題思路】
題目關鍵字:「CPU 排程」「飢餓 Starvation」「最容易造成」。
要解這題,你要知道什麼是飢餓:
飢餓:某一工作永遠得不到 CPU,因為其他工作一直被排在它前面。
接下來看各排程策略是否會讓某些行程「永遠輪不到」。
(A) FCFS(先來先服務)
→ 不會飢餓,只是慢。排到就是排到。
(B) Round Robin(時間片輪轉)
→ 不會飢餓,每個行程都會輪到 CPU。
(C) SRTF(最短剩餘時間優先)
→ 非常容易造成飢餓。
因為「短工作一直插隊」,長工作可能永遠等不到。
(D) Multilevel Queue(多層隊列排程)
→ 也會有飢餓問題(高優先權隊列一直搶)。
但題目問的是「最容易」,不是真正發生比例最高。
在四個選項中,「公認最容易造成飢餓」的是:
SRTF(C)
因為該演算法本質就是「短作業一直插隊」,長作業很可能永遠排不到。
【為什麼其他選項不正確】
(A) FCFS
→ 單純排隊,不會永遠排不到,只是會等很久,不叫飢餓。
(B) RR(Round Robin)
→ 每個行程都有固定時間片,不可能飢餓。
(C) SRTF
→ 正確;長作業可能永遠被短作業插隊。
(D) Multilevel Queue
→ 雖然也可能飢餓,但這題通常考的是「最典型的飢餓來源」,答案是 C。
【延伸知識】
CPU 排程容易造成飢餓的兩大類:
-
Shortest Job First / SRTF
→ 短工作優先,有新短工作就插隊。 -
高優先權策略(例如 Multilevel Queue)
→ 低優先權工作可能永遠排不到。
但課堂與考試「最標準答案」永遠是 SRTF(或 SJF/SRT)。
【記憶技巧】
口訣:
「短插長,長會餓。」
「越愛插隊的排程,越容易飢餓。」
SRTF = 最會插隊 = 最容易飢餓。
【常見錯誤】
學生常認為 Multilevel Queue 比較嚴重,其實兩者都能造成飢餓。
但 CPU 排程章節裡,只要問「最容易產生飢餓」,考法就是鎖定:
→ SRTF