嵌入式系統/即時作業系統
即時作業系統 (RTOS) 是一個計算環境,它在特定時間段內對輸入做出反應。即時截止日期可能很小,以至於系統反應看起來是即時的。術語 即時計算 也被用來描述具有更長但固定時間限制的“慢速即時”輸出。
瞭解即時作業系統和標準作業系統的區別就像想象你在玩電腦遊戲一樣。你在遊戲中進行的每一個動作都像是在該環境中執行的一個程式。一款使用即時作業系統作為環境的遊戲感覺像是你身體的延伸,因為你可以依靠特定的“延遲時間”:你請求動作與計算機顯著執行你的請求之間的時間。然而,標準作業系統可能會感覺不連貫,因為延遲時間不可靠。為了實現時間可靠性,即時程式及其 作業系統 環境必須優先考慮截止日期實現,而不是其他任何事情。在遊戲示例中,這可能會導致在反應時間和視覺效果發生衝突時出現掉幀或視覺質量下降。
如果作業系統始終能夠讓其程式在特定的時間限制內(通常是使用者期望的時間限制)執行任務,則該作業系統被認為是即時的。為了滿足此定義,採用以下方法中的部分或全部方法
- RTOS 執行的任務很少,因此可以確保這些任務總是在截止日期之前執行
- RTOS 在無法在時間限制內執行某些功能時會丟棄或減少這些功能(“負載削減”)
- RTOS 始終以及時的方式監控輸入
- RTOS 監控資源,並在需要時中斷後臺程序以確保即時執行
- RTOS 預計潛在請求,並釋放足夠的系統以允許及時響應使用者的請求
- RTOS 記錄在最壞情況下當前正在執行的任務可能使用多少資源(每個時間片的 CPU 時間、RAM、通訊頻寬等),並拒絕接受新任務,除非該任務“適合”在剩餘的未分配資源中。
本節中的章節將討論 RTOS 的工作原理,一些使用 RTOS 的通用方法,以及 一些流行的 RTOS。最後,在後面的一些章節中,我們將討論如何編寫自己的 RTOS
RTOS 必須及時響應更改,但這並不一定意味著 RTOS 可以處理大量資料吞吐量。實際上,在 RTOS 中,響應時間短遠比計算能力或資料速度更重要。有時,RTOS 甚至需要丟棄資料以確保滿足嚴格的截止日期。本質上,這為我們提供了一個完美的定義:RTOS 是一個旨在滿足嚴格截止日期的作業系統。除了這個定義之外,對於 RTOS 必須是什麼或必須具備哪些功能幾乎沒有要求。一些 RTOS 實現非常完整且非常健壯,而其他實現非常簡單,只適合於一個特定目的。
RTOS 可以是事件驅動的,也可以是時間共享的。事件驅動 RTOS 是一個僅在響應傳入事件時才改變狀態的系統。時間共享 RTOS 是一個隨著時間變化而改變狀態的系統。
對於大多數人來說,嵌入式系統不像計算機那麼容易辨認。相反,它們隱藏在我們周圍的日常物品中,幫助我們生活。嵌入式系統通常不透過熟悉的個人計算機介面裝置(如滑鼠、鍵盤和圖形使用者介面)與外部世界互動。相反,它們透過非凡的介面(如感測器、執行器和專用通訊鏈路)與外部世界互動。即時和嵌入式系統在受限環境中執行,在該環境中,計算機記憶體和處理能力有限。它們通常需要在嚴格的時間期限內向使用者和周圍世界提供其服務。正是這些記憶體、速度和時間限制決定了在嵌入式軟體中使用即時作業系統。
即時作業系統(以及所有作業系統的核心)的核心是核心。核心是作業系統的核心,負責所有作業系統工作
- 引導
- 任務排程
- 標準函式庫
現在,我們將在後面討論引導和引導載入程式,我們還將專門用幾章來討論任務排程。所以,我們至少應該提一下標準函式庫:在嵌入式系統中,很少有足夠的記憶體(如果有的話)來維護一個大型函式庫。如果要包含函式,則這些函式必須小而重要。
在嵌入式系統中,核心通常會引導系統,初始化埠和全域性資料項。然後,它會啟動排程程式並例項化任何需要啟動的硬體計時器。完成所有這些後,核心基本上會從記憶體中轉儲出去(庫函式除外,如果有的話),排程程式將開始執行子任務。
在下面的討論中,我們將重點關注“核心”——作業系統的一部分,它為在處理器上執行的應用程式軟體提供最基本的服務。“核心”即時作業系統(“RTOS”)提供了一個“抽象層”,它從應用程式軟體中隱藏了將要執行應用程式軟體的處理器(或一組處理器)的硬體細節。
- 作業系統設計
- RTEMS for Embedded Software Developers
- 嵌入式控制系統設計/作業系統
- Atmel AVR/作業系統和任務管理器
- "作業系統崛起" 由 Jim Turley 撰寫,嵌入式系統設計 2006-06-21。調查結果顯示,大約 3/4 的嵌入式系統專案使用某種作業系統。大約 1/4 的嵌入式系統專案根本不使用作業系統(可能使用 嵌入式系統/超級迴圈架構)。
請參閱 嵌入式系統/常見 RTOS,瞭解常見即時作業系統的列表。