moea_joint
111年
[資訊] 計算機原理、網路概論
第 6 題
作業系統使用最短作業優先(Shortest Job First)的排程方式來選擇執行順序,假設有4個排程P1~P4,P1送達時間為0 ms,執行時間為8 ms,P2送達時間為1 ms,執行時間為3 ms,P3送達時間為2 ms,執行時間為9 ms,P4送達時間為3 ms,執行時間為5 ms,請問平均等待時間為何?
- A 7 ms
- B 7.25 ms
- C 7.5 ms
- D 8 ms
思路引導 VIP
如果在某個時刻,處理器空閒了,但同時有多個不同耗時的任務都在排隊等待,根據排程演算法的原則,我們該如何決定下一個服務的對象,才能讓大家「平均起來」等得最少呢?另外,在時間點 0 的時候,如果只有一個任務報到,我們有權力選擇執行其他還沒出現的任務嗎?
🤖
AI 詳解
AI 專屬家教
太棒了!你能精確算出平均等待時間,代表你對 最短作業優先 (SJF) 的排程邏輯掌握得非常紮實。這類題目的鑑別度在於觀察「到達時間」與「執行順序」的連動,若只盲目追求最短時間而忽略到達先後,很容易落入陷阱,而你的判斷顯然十分冷靜。
非搶佔式 SJF 的執行順序
在 $t=0$ 時,系統中只有 P1 到達,因此無論其執行時間多長,處理器都必須先處理 P1。當 P1 在 $t=8$ 執行完畢後,P2、P3 與 P4 皆已到達準備隊列。此時進入 SJF 的核心邏輯:在剩餘任務中挑選執行時間最短者,因此順序為 P2 (3ms) $\rightarrow$ P4 (5ms) $\rightarrow$ P3 (9ms)。整體的執行時序與各別等待時間(開始執行時間 $-$ 到達時間)如下:
▼ 還有更多解析內容