嵌入式操作系統任務切換方法對比分析
摘要:嵌入式操作系統在很多領域得到應用。由于嵌入式實時操作系統支持多任務,使得程序開發更加容易,在便于維護的同時還能提高系統的穩定性和可靠性,所以逐步成為嵌入式系統的重要組成部分。本文介紹4種嵌入式實時操作系統VxWorks、μClinux、μC/OS-II和Windo-ws CE,對多任務的調度切換進行了分析比較。
關鍵詞:嵌入式操作系統;任務切換;VxWorks;Linux;μC/OS-II;Wiladows CE
引言
嵌入式系統在航天、軍事、工控以及家電等方面得到了廣泛應用。大量的嵌入式系統具有實時性的要求,但是由于體積、能耗、價格等方面的約束,其處理器速度往往比較慢,存儲器容量也有限。而傳統的實時操作系統難以簡單地移植到嵌入式系統中,所以需要重新開發針對嵌入式系統特性的實時操作系統。任務調度策略是實時系統內核的關鍵部分,如何進行任務調度,使得各個任務能在其期限之內得以完成,是實時操作系統的重要研究領域。而不同的操作系統對任務調度的機制也有所不同,本文對目前比較流行的操作系統——VxWorks、μClinux、μC/OS-II、Windows CE的任務切換機制進行分析和比較。
1 操作系統介紹
1.1 VxWorks
VxWorks是美國WindRiver公司的產品,是目前嵌入式系統領域中應用很廣泛、市場占有率比較高的嵌入式操作系統。VxWorks實時操作系統由400多個相對獨立、短小精悍的目標模塊組成,用戶可根據需要選擇適當的模塊來裁剪和配置系統;提供基于優先級的任務調度、任務間同步與通信、中斷處理、定時器和內存管理等功能,內建符合POSIX(可移植操作系統接口)規范的內存管理,以及多處理器控制程序;具有簡明易懂的用戶接口,在核心方面甚至可以微縮到8KB。
1.2 μC/OS-lI
μC/OS-II是在μC/OS的基礎上發展起來的,是美國嵌入式系統專家Jean J.Lal3rosse用C語言編寫的一個結構小巧、搶占式的多任務實時內核。μC/OS-II能管理64個任務,并提供任務調度與管理、內存管理、任務間同步與通信、時間管理和中斷服務等功能,具有執行效率高、占用空間小、實時性能優良和可擴展性強等特點。
1.3 Linux
Linux是一種自由的Unix類多用戶、多任務操作系統,可運行在Intel 80386及更高檔次的PC、ARM、DECAlpha等多種計算機平臺上,已經成為應用廣泛、可靠性高、功能強大的計算機操作系統。
1.4 WindOWS CE
微軟Windows CE是一個開放且多樣化的32位嵌入式操作系統。其設計目的是為符合廣泛的智能設備的需求,例如從企業工具(如工業控制器、通信集線器和收款機系統)到電子消費性產品(如攝影機、電話和家庭娛樂設備等),提供自動控制、視聽娛樂、行動計算、終端機等各個應用領域一個穩定、實時及多任務的操作系統。
2 任 務
2.1 任務切換概述
上下文切換(context switch),其實際含義是任務切換,或者CPU寄存器切換。當多任務內核決定運行另外的任務時,它保存正在運行任務的當前狀態,也就是CPU寄存器中的全部內容。這些內容被保存在任務自己的堆棧中,入棧工作完成后就把下一個將要運行的任務的當前狀況從該任務的棧中重新裝入CPU寄存器,并開始下一個任務的運行,這一過程就是context switch。
每個任務都是整個應用的一部分,都被賦予一定的優先級,有自己的一套CPU寄存器和棧空間,如圖1所示。
評論