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