當前位置:才華齋>計算機>作業系統>

如何選擇正確的嵌入式作業系統型別

作業系統 閱讀(1.01W)

在嵌入式系統的前期設計過程中,你必須決定所採用的嵌入式作業系統的型別。這是一個很重要的決定,因為這會影響到工程後期的釋出以及軟體的維護。本文中將概括四種通用體系和一些值得考慮的觀點。

如何選擇正確的嵌入式作業系統型別

  沒有標準的作業系統很多

  嵌入式作業系統

都是非標準的作業系統。對於針對比較狹窄領域,尤其是使用帶有非常有限資源的微控制器來說,這是一個很正常的現象。作業系統中最基本的操作是建立一個帶有能夠處理關鍵實時事件的中斷服務程式(ISR)的簡單後臺迴圈程式碼,過程非常簡單,但卻是相當出色。

然而,當專案增大,很多問題就隨之產生。後臺迴圈所需要的響應時間取決於迴圈次數最多所用的時間。當迴圈次數增多,所需要的時間就會增多,可預測的方面就減少。此時有用的方法就是將這些後臺迴圈分成很多小部分,但這可能導致產生更復雜的系統而難於除錯和維護。如果系統中有多個開發人員,這一情況會變成更加惡化。

  沒有優先級別的作業系統

一個簡單的、沒有優先級別的作業系統可以在一個大型後臺迴圈中增添一些規則。這一方法對於中等大小的工程最為合適。

一個沒有優先級別的作業系統可以將程式中的後臺工作轉化為可以預先處理的工作,而不需要將原來的程式分割成多個塊。一個不存在優先級別的系統一般相對比較很容易的執行、除錯,並且,在設計過程中不存在很多如資源共享的複雜操作。

這一系統的主要不足之處是開發人員必須時刻保護決定將CPU轉交給其他任務的時間。如果轉交時間延遲,即使只有一次,也會對整個作業系統的響應導致崩潰。 ]

  具備優先級別的作業系統

一個完整的具備優先級別的作業系統可以處理包含多個相互競爭的任務和多個軟體開發者。具備優先級別的作業系統在外部事件(比如中斷,時間等)和作業系統呼叫之間轉換。

任務根據它們之間相對的優先級別和分配的時間週期進行安排,這就可以讓你從決定轉換任務的`時間之中解放出來,同時,也減少了任務之間的相互衝突。

這一特性帶來了很多外在的複雜性。在優先級別的系統中的任務轉換會使除錯帶來更多的困難,而且需要任務之間的相互通訊的外部機制。

然而,這一外部機制帶來了新的問題,比如任務之間的死鎖冒險。程式設計師必須學會使用新的技術和規則來處理這些問題,否則將會導致很多臭蟲和不可靠的程式碼。

  更改的桌面型作業系統

更改的桌面型作業系統,比如Windows,Linux,或者DOS,都是一些流行的嵌入式裝置,特別是基於使用者介面的系統。這些作業系統非常能吸收人,因為它們功能特別完整,並且提供了開發人員一個熟悉的開發環境

然而,這些系統卻通常會出現資源危機,執行的控制器的效能也非常受限制,從而不能滿足執行特定環境下的實時效能限制。

嵌入式作業系統的特定與標準的桌面型環境有很多不相同的地方,所以開發一個嵌入式產品並不是簡單地遵循開發一個標準的桌面程式的方法那麼的直接。