即時作業系統 (Real-time Operating System)

即時作業系統 (Real-time Operating System)

即時作業系統 (Real-time Operating System)


資料來源:https://sls.weco.net/node/21340


定義:    

    即時作業系統(Real-time operating system,RTOS),是指作業系統要在一個固定時間內,做出正確反應,以及對時序及穩定度的要求十分嚴格,它會按照排序執行、管理系統資源,並為開發應用程式提供一致的基礎。 

    即時作業系統相較一般的作業系統,最大的特色就在於「即時性」,也就是說,如有一個 process 需執行,即時作業系統會在最短時間內執行該 process ,不會有較長的延遲。這種特性保證了各個 process 的即時執行。通常都具備有最基礎的 kernel,以及外加上去的模組,像是檔案系統、網路協定堆疊和應用、裝置驅動程式……等模組。RTOS 的核心通常包括,排程器、物件、服務程式。 

    衡量一個即時作業系統堅固性的重要指標,是他從接收一個 process,到完成該 process 所需的時間,其時間的變化稱為 jitter。硬即時作業系統比軟即時作業系統有更少的 jitter。設計即時作業系統的首要標的不是高的 throughput,而是保證 process 在特定時間內完成。 

    即時作業系統可分類為「軟式(Soft)」與「硬式(Hard)」。硬即時作業系統,是指系統從命令起始到執行動作之間的中斷延遲回應特性。一般像是 Win CE 這種的軟即時作業系統,其反應時間約為 1~2ms,要達到硬即時性能的要求,其反應時間必須要在 150μs 以內;軟即時系統通常指超過期限後,系統的公用程式可容忍某段誤差時間。舉例來說,當行動電話來電時,則必須在按下按鈕時即建立連結。然而,此限制時間並非絕對,亦可有些許的延遲。 

    硬即時作業系統必須使 process 在確定的時間內完成,而軟即時作業系統能讓絕大多數 process 在確定時間內完成。

2 thoughts on “即時作業系統 (Real-time Operating System)

  1. http://www.programmer-club.com.tw/ShowSameTitleN/embedded/73.html

    以下概略列舉業界流行的 free RTOS 優缺點:

    1. embedded Linux, ucLinux

    優點: 系統完整, 功能強大, 支援各種 file system, TCP/IP stack, communication protocol stack, 發展工具齊全(GNU toolchain), 網路上高手多, 有熱情的專家們定期更新版本, 書籍資料多, 看都看不完.

    缺點: 是否歸類於 RTOS 仍有爭議, 只支援 32-bit CPU, 複雜度高, device driver 架構稍大, 移植難度較大, 編譯後的 file footprint (kernel + application) 過大, 新手較難維護, scheduling mode 較少, hard-real time scheduling 的支援度待改進.

    2. e-Cos

    優點: 發展工具齊全(GNU toolchain), 模組化程度非常好, 支援的 CPU 架構多, 複雜度較低, device driver 架構比較簡單, 移植容易, 編譯後的 file footprint 小, 有專門的公司定期更新版本.

    缺點: 支援的 file system, TCP/IP stack 和 communication protocol 較少, scheduling mode 較少, 網路上高手較少, 出問題要找專人解決時的顧問費用不低.

    3. uc/OS-II

    優點: 支援的 CPU 架構多, 系統單純, 學習容易, 書籍內容精彩, device driver 發展容易, 移植容易, 編譯後的 file footprint 非常小, 有專門的公司維護版本.

    缺點: 發展工具少( borland C/C++ only. 但可改用 GNU toolchain). 沒有 file system 和 TCP/IP stack (要自己解決), scheduling mode 較少, 網路上高手較少. 商用授權費不低.

    學習 RTOS 和評估使用那一個 RTOS 是兩回事. 以學習 RTOS 來說, 初學者先得瞭解什麼是 real-time system, 她和 PC/Server 有何不同. 再瞭解 programming for RTOS 和一般 programming 的差異, 她的 multi-tasking scheduling 的方式, task 間彼此 synchronize/communication 的方式等等. 以鍛鍊上述基本功夫來說, uC/OS-II 確實是一個理想的學習工具. 她夠單純, 但 RTOS 該有的基本機制她都有. 她和藹可親, 初學者很快就可以與她打成一片. 她身材纖細苗條, 只要 32K bytes 的 flash 就可以存放了.

    至於如何為產品選擇 RTOS, 則需要對專案有全局的瞭解才能挑出適用之材, 例如產品規格需求, 軟硬體發展時程, 預算多寡, 人員訓練等等. 因為許多時候 RTOS 是產品成敗的關鍵. 舉個例子, 如 linux, 有些公司只著眼在她是免費的, 忽略了客戶 real-time 的需求, 或是用了 uc/OS-II 才發現需要 file system 或 TCP/IP stack, 導致專案延誤甚至取消.

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *