真實系統、效能與前沿

即時作業系統

即時作業系統最重要的承諾不是速度而是時序:它保證某些任務每一次都在嚴格的期限前完成。想想航管員,或汽車的防鎖死煞車系統——若在錯誤的時刻哪怕只遲到一點點,平均很快也毫無用處。一般的桌面作業系統追求平均上感覺靈敏;即時作業系統則被打造成:即使在最壞情況下,關鍵的回應也可被證明在有界且可預測的時間內發生。

其決定性的特性是決定性(determinism):從一個事件(比方說一次感測器讀數)到系統回應的時間是有界且已知的,而不只是「通常很短」。為達此目的,即時作業系統把分派延遲(dispatch latency)保持得既小又可預測,採用以優先權為基礎的可搶佔排程,使高優先權任務能立刻把低優先權的擠到一旁,並對優先權反轉特別小心(它常用優先權繼承,讓持有所需鎖的低優先權任務被暫時提升)。即時排程理論——速率單調排程與最早期限優先——讓工程師能事先證明:在給定任務週期與最壞情況執行時間下,每個期限都能滿足。人們區分硬即時(錯過期限即失敗,如心律調節器或飛航控制)與軟即時(偶爾錯過只是品質下降,如影片播放)。

誠實的重點是:即時不代表快——它代表準時且可預測。事實上,即時作業系統常為了可預測性而放棄原始的平均產出率:那些讓通用作業系統平均很快的功能(深層快取、複雜排程器、無界佇列)會使最壞情況的時序變得不可預測,所以即時作業系統刻意把事情保持得更簡單、更可分析。一台非常快的桌上型電腦並不是即時系統,因為它無法保證某個回應永遠不會遲到。

安全氣囊控制器必須在撞擊感測器觸發後的幾毫秒內點火。在即時作業系統上,撞擊處理任務具有最高優先權與一條已驗證的最壞情況路徑:感測器一觸發,正在執行的低優先權任務就被搶佔,氣囊程式碼在期限前完整執行——這是保證的,而非只是「通常如此」。

保證的是期限,而非平均速度。

最大的誤解是把即時當成「非常快」。它指的是可預測且有界。一個總能滿足期限的較慢系統是即時的;一個飛快卻偶爾錯過的系統則不是。

又稱
RTOS即時系統