實時多任務操作系統是指具有實時性、能支持實時控制系統工作的操作系統。其首要任務是調度一切可利用的資源完成實時控制任務,其次才著眼于提高計算機系統的使用效率,重要特點是要滿足對時間的限制和要求。實時操作系統具有如下功能:任務管理 ( 多任務和基于優先級的任務調度 ) 、任務間同步和通信 ( 信號量和郵箱等 ) 、存儲器優化管理 ( 含 ROM 的管理 ) 、實時時鐘服務、中斷管理服務。實時操作系統具有如下特點:規模小,中斷被屏蔽的時間很短,中斷處理時間短,任務切換很快。
實時操作系統可分為可搶占型和不可搶占型兩類。對于基于優先級的系統而言,可搶占型實時操作系統是指內核可以搶占正在運行任務的 CPU 使用權并將使用權交給進入就緒態的優先級更高的任務,是內核搶了 CPU 讓別的任務運行。不可搶占型實時操作系統使用某種算法并決定讓某個任務運行后,就把 CPU 的控制權完全交給了該任務,直到它主動將 CPU 控制權還回來。中斷由中斷服務程序來處理,可以激活一個休眠態的任務,使之進入就緒態;而這個進入就緒態的任務還不能運行,一直要等到當前運行的任務主動交出 CPU 的控制權。使用這種實時操作系統的實時性比不使用實時操作系統的系統性能好,其實時性取決于最長任務的執行時間。不可搶占型實時操作系統的缺點也恰恰是這一點,如果最長任務的執行時間不能確定,系統的實時性就不能確定。
可搶占型實時操作系統的實時性好,優先級高的任務只要具備了運行的條件,或者說進入了就緒態,就可以立即運行。也就是說,除了優先級最高的任務,其他任務在運行過程中都可能隨時被比它優先級高的任務中斷,讓后者運行。通過這種方式的任務調度保證了系統的實時性,但是,如果任務之間搶占 CPU 控制權處理不好,會產生系統崩潰、死機等嚴重后果。
2. 嵌入式操作系統的發展
嵌入式操作系統伴隨著嵌入式系統的發展經歷了 4 個比較明顯的階段。
第一階段是無操作系統的嵌入算法階段,是以單芯片為核心的可編程控制器形式的系統,同時具有與監測、伺服、指示設備相配合的功能。這種系統大部分應用于一些專業性極強的工業控制系統中,一般沒有操作系統的支持,通過匯編語言編程對系統進行直接控制,運行結束后清除內存。這一階段系統的主要特點是:系統結構和功能都相對單一,處理效率較低,存儲容量較小,幾乎沒有用戶接口。由于這種嵌入式系統使用簡便、價格很低,以前在國內工業領域應用較為普遍,但是已經遠遠不能適應高效的、需要大容量存儲介質的現代化工業控制和新興的信息家電等領域的需求。
第二階段是以嵌入式 CPU 為基礎、以簡單操作系統為核心的嵌入式系統。這一階段系統的主要特點是: CPU 種類繁多,通用性比較差;系統開銷小, 效率高;一般配備系統仿真器,操作系統具有一定的兼容性和擴展性;應用軟件較專業,用戶界面不夠友好;系統主要用來控制系統負載以及監控應用程序運行。
第三階段是通用的嵌入式實時操作系統階段,是以嵌入式操作系統為核心的嵌入式系統。這一階段系統的主要特點是:嵌入式操作系統能運行于各種不同類型的微處理器上,兼容性好;操作系統內核精小、效率高,并且具有高度的模塊化和擴展性;具備文件和目錄管理、設備支持、多任務、網絡支持、圖形窗口以及用戶界面等功能;具有大量的應用程序接口 (API) ,開發應用程序簡單;嵌入式應用軟件豐富。
第四階段是以基于 Internet 為標志的嵌入式系統,這是一個正在迅速發展的階段。目前大多數嵌入式系統還孤立于 Internet 之外,但隨著 Internet 的發展以及 Internet 技術與信息家電、工業控制技術等結合日益密切,嵌入式設備與 Internet 的結合將代表著嵌入式技術的真正未來。
3. 使用實時操作系統的必要性
嵌入式實時操作系統在目前的嵌入式應用中用得越來越廣泛,尤其在功能復雜、系統龐大的應用中顯得愈來愈重要。
首先,嵌入式實時操作系統提高了系統的可靠性。在控制系統中,出于安全方面的考慮,要求系統起碼不能崩潰,而且還要有自愈能力。不僅要求在硬件設計方面提高系統的可靠性和抗干擾性,而且也應在軟件設計方面提高系統的抗干擾性,盡可能地減少安全漏洞和不可靠的隱患。長期以來的前后臺系統軟件設計在遇到強干擾時,使得運行的程序產生異常、出錯、跑飛,甚至死循環,造成了系統的崩潰。而實時操作系統管理的系統,這種干擾可能只是引起若干進程中的一個被破壞,可以通過系統運行的系統監控進程對其進行修復。通常情況下,這個系統監視進程用來監視各進程運行狀況,遇到異常情況時采取一些利于系統穩定可靠的措施,如把有問題的任務清除掉。
其次,提高了開發效率,縮短了開發周期。在嵌入式實時操作系統環境下,開發一個復雜的應用程序,通常可以按照軟件工程中的解耦原則將整個程序分解為多個任務模塊。每個任務模塊的調試、修改幾乎不影響其他模塊。商業軟件一般都提供了良好的多任務調試環境。 再次,嵌入式實時操作系統充分發揮了 32 位 CPU 的多任務潛力。 32 位 CPU 比 8 、 16 位 CPU 快,另外它本來是為運行多用戶、多任務操作系統而設計的,特別適于運行多任務實時系統。 32 位 CPU 采用利于提高系統可靠性和穩定性的設計,使其更容易做到不崩潰。例如, CPU 運行狀態分為系統態和用戶態。將系統堆棧和用戶堆棧分開,以及實時地給出 CPU 的運行狀態等,允許用戶在系統設計中從硬件和軟件兩方面對實時內核的運行實施保護。如果還是采用以前的前后臺方式,則無法發揮 32 位 CPU 的優勢。
從某種意義上說,沒有操作系統的計算機 ( 裸機 ) 是沒有用的。在嵌入式應用中,只有把 CPU 嵌入到系統中,同時又把操作系統嵌入進去,才是真正的計算機嵌入式應用。
4. 實時操作系統的優缺點
在嵌入式實時操作系統環境下開發實時應用程序使程序的設計和擴展變得容易,不需要大的改動就可以增加新的功能。通過將應用程序分割成若干獨立的任務模塊,使應用程序的設計過程大為簡化;而且對實時性要求苛刻的事件都得到了快速、可靠的處理。通過有效的系統服務,嵌入式實時操作系統使得系統資源得到更好的利用。但是,使用嵌入式實時操作系統還需要額外的 ROM/RAM 開銷, 2~5% 的 CPU 額外負荷,以及內核的費用。