6.
在分時(time-sharing)作業系統中,如果程序 A 的時間區段
(time slot)耗盡,因而將執行切換至另 一程序 B 時,程序
A 將會進入何種狀態(state)?
(A) waiting state
(B) ready state
(C) terminated state
(D) running state
統計: A(38), B(148), C(22), D(5), E(0) #3145726
詳解 (共 2 筆)
【解題思路】
這題在考作業系統的「程序狀態轉換」,尤其是分時系統(Time Sharing)下的 Round Robin 排程。
關鍵字:
-
time slot 用完
-
context switch(切換程序)
-
程序並 沒有 等待 I/O,也 沒有 結束
邏輯非常明確:
當程序 A 的 CPU 時間片(time slice / time quantum)用完時:
-
A 不是 在等待 I/O → 所以不是 waiting
-
A 沒有 結束 → 所以不是 terminated
-
A 被移出 CPU → 所以不是 running
-
A 可再次排入 CPU → 所以它會回到 ready state
因此答案是 ready state。
【為什麼其他選項不正確(逐一破題)】
(A) waiting state
waiting 是「在等 I/O」的狀態。
題目只有時間片結束,沒有進行 I/O,因此錯。
(B) ready state
正確!
時間片用完 → 被強制搶下 CPU → 放回 ready queue。
(C) terminated state
terminated 是「程式結束」。
時間片用完 ≠ 程式結束。
(D) running state
running 是「正在執行」。
時間片用完就不會在 CPU 上了。
【延伸知識】
程序五態(最常考):
-
New
-
Ready ← 本題答案會回到這裡
-
Running
-
Waiting (Blocked)
-
Terminated
Round Robin 排程規則:
-
每個程序給固定的時間片
-
時間片一到就被搶下 CPU
-
被搶下的程序重新排進 ready queue
這就是分時系統「公平」的核心。
【記憶技巧】
一句話:
時間片用完不代表等待,只是排隊再來一次 → 回到 ready。
或更短:
時間到 → 下 CPU → 回準備隊。
【常見錯誤】
-
把 ready 與 waiting 混淆
waiting 是等 I/O,不是等 CPU。 -
以為 time slot 用完意味著「阻塞」
沒有 I/O 就不會阻塞。 -
以為切換走是 terminated
terminated 是程式結束,不是被搶下 CPU。