RTOS
RTOS定義 RTOS運作的其正確性不但和(1)邏輯上執行的結果有關,同時也和(2)執行的時間有密切的關係。 即使一個作業行程的執行結果邏輯上是正確的,但沒有滿足時間的要求,這樣結果是不被接受的。 即時系統不代表一種執行速度非常快的系統 而是代表即時反應。 一般多工作業系統如 WINDOWS、UNIX等,為非即時系統。 由於CPU速度快,儘管其中並沒有特殊的演算法來支援即時性,但我們仍感覺好像也可以同時執行多種軟體,所以並不會明顯地感覺軟體是一段一段在執行, 會令人有即時的感覺。
Hard and Soft Real Time OS 即時作業系統強調的就是效率及快速反應。 一般來說區分為 Hard Real Time 每一個任務排程都有嚴格的時間限制,一旦系統回應時間不能滿足,就可能會引起系統崩潰或致命的錯誤。 Ex.車用電子-煞車系統 Soft Real Time 不要求限定某一任務必須在一定的時間內完成,只要求各任務運行得越快越好。 Ex.多媒體播放機
不使用RTOS的考量 小規模的設備 Real Time功能實做於應用軟體中 不需要檔案管理
在嵌入式系統何時需要RTOS 多工環境是使用RTOS的主要考量 多工環境下的排程演算法 需支援Process間的同步與通信 有效的排程(Real Time排程演算法) Earliest Deadline First Scheduling(EDF) Rate Monotonic Scheduling(RMS) 需支援Process間的同步與通信 CPU的狀態、對內外部設備及I/O需要有效管理 記憶體的分配與回收與其他臨界記憶體模組的記憶體位址
即時作業系統特性 對於外界所引發的中斷做迅速的反應。 盡量減短抑制外部中斷時所維持的時間。 快速的本文切換(context switch)。 即時的中斷處理 對於外界所引發的中斷做迅速的反應。 盡量減短抑制外部中斷時所維持的時間。 多工。 快速的本文切換(context switch)。 提供延遲行程、暫停或繼續執行行程的機制。 行程與行程之間溝通的機制。 有效的排程(Real Time排程演算法) 。 其他機制及I/O 佔用比較小的儲存空間(盡可能提供最少且最不可或缺的功能)。 使用特殊格式的循序檔案,以便快速地存取。 特殊的鬧鈴(Alarm)及逾時(Timeout)機制。
即時作業系統評估 如何評估一個RTOS的好壞 可決定性(Determinism) 反應速度(Responsiveness) 使用者控制(User control) 可靠性(Reliability) 錯誤容忍性(Fail-soft operation)
可決定性(Determinism) 作業系統讓使用者可以自行估算,一件工作可以在什麼樣的期限之內做完。 作業系統在這方面的表現是否良好,取決於: 作業系統對外界中斷的反應速度。 系統是否有足夠的能力得以在限定的時間內處理所有的中斷要求。
反應速度(Responsiveness) 在確認到一項中斷要求之後,作業系統需要花多少時間來處理這項中斷要求。 初始化的動作以及準備好開始執行中斷服務常式(interrupt service routine)所需花費的時間。 執行完中斷服務常式所需的時間(通常決定於硬體平台)。 系統是否允許ISR本身也可以因為另一個中斷要求而被中斷。
使用者控制(User control) 作業系統可以讓使用者對於各個行程的優先權精確地加以控制。 在RTOS中,使用者所能做的決策遠比一般的作業系統來的多。
可靠性(Reliability) 對於RTOS來說,可靠性的要求遠比一般非RTOS來的嚴格。 在一般非即時作業系統之中,如果突然發生了某種嚴重的錯誤,重新開機就可以解決問題。 RTOS必須立即的針對外界事件加以反應,不能有任何疏失,否則往往會造成嚴重的損害
錯誤容忍性(Fail-soft operation) 當系統發生錯誤時,它是否有足夠的能力,盡可能地維持住其資料及其系統效能 RTOS遇到錯誤發生時,會試圖自行修復錯誤,或盡可能降低傷害。 系統會通知使用者或使用者的行程,它將要試圖進行修復的動作,並且可能會導致系統效能的降低。 當條件惡化使得系統必須做關機的處置時,會試圖維持檔案及資料的完整性。
µC/OS MUCOS , UCOS Micro-Controller Operating System 1992年由Jean J.Labrose設計完成。 由C語言所設計。 整合了幾個特定的CPU模組,其程式碼涉及多嵌入式系統。 對於非商業使用-免費。 提供多種RTOS系統級函數:時間延遲函數,函數相關的記憶體分配,行程通信相關函數,佇列相關函數。