嵌入式系統

即時作業系統(RTOS)

RTOS 是給嵌入式裝置用的小型作業系統,它的核心承諾不是快、而是準時:它保證一件緊急任務每一次都能在已知、有上限的期限內執行完。「即時(real-time)」講的是時序保證,不是純粹的效能——一個平均跑得飛快、卻偶爾遲到的系統不算即時,而一個較慢、但從不錯過期限的系統才算。想想安全氣囊控制器:晚 5 毫秒引爆,跟根本不引爆一樣沒用。RTOS 的存在,就是要把「永遠準時」變成一份硬性合約。

它的做法是把你的程式拆成多個各有優先權的獨立任務,再由排程器永遠執行優先權最高的就緒任務——一旦有更緊急的事甦醒,就立刻把正在跑的較低優先權任務搶占(pre-empt)下來。它給你同時兼顧多件事的工具箱:任務、在任務間傳資料的佇列、安全共用資源的旗號與互斥鎖,以及驅動時序的穩定 tick 中斷。FreeRTOS、Zephyr、ThreadX 能跑在只有幾 KB RAM 的晶片上。代價是要小心:優先權反轉、競態條件、死結都是真實的危害,因此「硬性(hard)」即時系統(航電、ABS 煞車、心律調節器)必須經過嚴謹分析,證明每一個期限都能被滿足。

硬性與軟性即時:在硬性即時系統中,錯過一次期限就是系統失效(氣囊、飛控);在軟性系統中只是品質下降(掉一格影像、聲音卡頓)。「即時」從不等於「快」——它的意思是「可預測地準時」。

又稱
RTOSreal-time kernel即時核心FreeRTOS