即時 CPU 排程 (Real-Time CPU Scheduling)
備註
本系列文章內容參考自經典教材 Operating System Concepts, 10th Edition (Silberschatz, Galvin, Gagne)。本文對應章節:Section 5.6 Real-Time CPU Scheduling。
即時系統需要什麼樣的排程?
一般的 CPU 排程演算法,例如 SJF 或 Round-Robin,只關心「最終能執行完」這個目標,對「 何時執行完」不做任何保證。但對即時系統(Real-Time System)而言,「在截止時間(Deadline)內完成」與「完成」本身同樣重要,甚至更重要。
以剎車防鎖死系統(ABS)為例:輪胎偵測到打滑後,控制系統必須在 3 到 5 毫秒內做出反應。若排程器讓這個任務等了 50 毫秒,結果和從未執行一樣,汽車已經失去控制。這類系統稱為硬性即時系統(Hard Real-Time System),任務必須在截止時間內完成,否則後果不可接受。
相對地,軟性即時系統(Soft Real-Time System) 只提供較寬鬆的保證:關鍵的即時行程(Real-Time Process)在排程上獲得最高優先級,但系統不保證它一定能在某個截止時間前執行。串流影音播放是一個典型例子,偶爾的延遲會讓畫面卡頓,但不會造成災難性後果。
兩者的核心差異如下:
| 系統類型 | 截止時間保證 | 逾期後果 | 應用場景 |
|---|---|---|---|
| Hard Real-Time | 嚴格保證 | 系統失效(Safety-Critical) | ABS、起搏器、飛控系統 |
| Soft Real-Time | 儘量保證 | 效能降低(Quality Degradation) | 串流媒體、遊戲 |