(1)具有模塊化的可裁剪內(nèi)核結(jié)構(gòu)。
(2)適應(yīng)小型系統(tǒng),為低成本弱計(jì)算能力系統(tǒng)提供簡(jiǎn)潔、高效、完善的控制手段。
(3)遵循Windows平臺(tái)的應(yīng)用開(kāi)發(fā)規(guī)范,提供Win32 API等。
(4)靈活的內(nèi)存訪問(wèn)機(jī)制,可以使系統(tǒng)中不同類型的應(yīng)用程序充分地使用系統(tǒng)提供的RAM、ROM和閃存,并有選擇地有效利用處理器提供的虛存、保護(hù)等功能。
(5)高效的任務(wù)管理調(diào)度機(jī)制——多任務(wù),具有256級(jí)優(yōu)先級(jí)和動(dòng)態(tài)優(yōu)先級(jí)搶占式調(diào)度的功能。
(6)支持實(shí)時(shí)應(yīng)用。
(7)Windows CE的通信服務(wù)包括:①串行通信,IrDA;②Telephony API(TAPI);③與Windows2000相當(dāng)?shù)腡CP/IP支持;④Windows Socket;⑤Remote Access Server(RAS);⑥Simple Network Management Protocol(SNMP)代理;⑦Network Driver Interface Specification(NDIS);⑧Dynamic Host Configuration Protocol(DHCP)客戶端;⑨Internet Protocol Helper API,如名字解析、ARP(地址解析協(xié)議)等;⑩Windows Networking CIFS(Common Internet File System)轉(zhuǎn)發(fā)。
(8)內(nèi)置多媒體功能,具有可擴(kuò)充的Compact Flash/MMC/SD插槽,通過(guò)擴(kuò)展卡可實(shí)現(xiàn)多種功能。
(9)提供高級(jí)電源管理功能。
此外,Windows CE應(yīng)用程序的集成開(kāi)發(fā)環(huán)境eMbedded Visual C++擁有強(qiáng)大的開(kāi)發(fā)和調(diào)試工具。利用其進(jìn)行應(yīng)用程序的開(kāi)發(fā),程序可運(yùn)行于特定的平臺(tái),而不需要編寫額外的代碼,針對(duì)特定平臺(tái)的代碼轉(zhuǎn)換工作由系統(tǒng)自動(dòng)完成。
3 Windows CE結(jié)構(gòu)分析
Windows CE的設(shè)計(jì)目標(biāo)是具有可伸縮性的模塊化結(jié)構(gòu),實(shí)時(shí)性能好,通信能力強(qiáng),支持多種CPU。完備的功能需要必備的結(jié)構(gòu)。下面以Windows CE的最新版本W(wǎng)indows CE .NET為例,從系統(tǒng)模型、管理機(jī)制等方面對(duì)其結(jié)構(gòu)進(jìn)行分析。
3.1 系統(tǒng)模型
Windows CE .NET采用典型的系統(tǒng)分層模型,其分層結(jié)構(gòu)模型如圖2所示。
由圖2可知,Windows CE .NET操作系統(tǒng)的功能在中間二層得以實(shí)現(xiàn),應(yīng)用支持庫(kù)的上部和操作系統(tǒng)層的上部(主要是CoreDLL.dll)以及下部具有接口性質(zhì),它們構(gòu)成了Windows CE .NET的應(yīng)用界面和系統(tǒng)界面。從宏觀角度看,系統(tǒng)包括多個(gè)軟件實(shí)體:CoreDLL、NK、數(shù)據(jù)存儲(chǔ)、設(shè)備管理、圖形用戶界面、網(wǎng)絡(luò)通信等。
CoreDLL完成外部調(diào)用系統(tǒng)功能的代理,實(shí)現(xiàn)系統(tǒng)API函數(shù)的管理和按名調(diào)用。此外,還可調(diào)用一些基本的支持函數(shù),例如字符串處理、隨機(jī)數(shù)生成、時(shí)間計(jì)算等。其運(yùn)行時(shí)表現(xiàn)為CoreDLL.dll。
NK是Windows CE .NET操作系統(tǒng)的核心,主要完成處理器調(diào)度、內(nèi)存管理、異常處理、系統(tǒng)內(nèi)的通信機(jī)制、為其他部分提供核心調(diào)用例程、為系統(tǒng)范圍內(nèi)的調(diào)試提供支持。其運(yùn)行時(shí)表現(xiàn)為NK.exe。
數(shù)據(jù)存儲(chǔ)提供基本的數(shù)據(jù)存儲(chǔ)能力。其運(yùn)行時(shí)表現(xiàn)為filesys.exe(Memory)。
設(shè)備管理提供系統(tǒng)范圍內(nèi)基本的設(shè)備列表管理、即插即用管理、電源管理、I/O資源管理并實(shí)現(xiàn)設(shè)備驅(qū)動(dòng)程序得以工作的基本機(jī)制。其運(yùn)行時(shí)表現(xiàn)為Device.exe。
圖形用戶界面提供基本的繪圖引擎、窗口管理、界面的事件機(jī)制等。其運(yùn)行時(shí)表現(xiàn)為GWES.exe。
網(wǎng)絡(luò)通信包括了服務(wù)層、接口層、協(xié)議層和驅(qū)動(dòng)層。通過(guò)系統(tǒng)提供的API,用戶可以很容易地開(kāi)發(fā)各種網(wǎng)絡(luò)應(yīng)用。
除此之外,在Windows CE .NET的應(yīng)用界面上還存在一個(gè)重要的Win32系統(tǒng)服務(wù)層。Windows CE .NET提供了符合Windows平臺(tái)標(biāo)準(zhǔn)的開(kāi)發(fā)環(huán)境,它實(shí)現(xiàn)了Win32 API的一個(gè)子集,覆蓋了大部分的Win32功能。該服務(wù)層滿足了Windows CE .NET對(duì)應(yīng)用程序提供的接口實(shí)現(xiàn)。
3.2 系統(tǒng)管理機(jī)制
Windows CE作為目前掌上電腦的主流操作系統(tǒng),在內(nèi)存管理方面除了采用分配、回收、虛擬映射、調(diào)頁(yè)等機(jī)制外,為了優(yōu)化頁(yè)的使用,系統(tǒng)在虛擬內(nèi)存之上提供了邏輯內(nèi)存管理機(jī)制。此外,Windows CE .NET是一個(gè)多任務(wù)的操作系統(tǒng),在多任務(wù)調(diào)度方面,為了滿足實(shí)時(shí)性的要求,Windows CE .NET采用基于動(dòng)態(tài)優(yōu)先級(jí)的搶占式調(diào)度算法,而對(duì)于相同優(yōu)先級(jí)的任務(wù)采用了時(shí)間片輪轉(zhuǎn)調(diào)度的算法。同一優(yōu)先級(jí)的時(shí)間片輪轉(zhuǎn)調(diào)度算法可作為基于優(yōu)先級(jí)的可搶占調(diào)度算法的補(bǔ)充,以完成實(shí)時(shí)多任務(wù)系統(tǒng)的任務(wù)調(diào)度。
(1)邏輯內(nèi)存管理
Windows CE .NET提供了三個(gè)層次的內(nèi)存邏輯結(jié)構(gòu),即物理內(nèi)存、虛擬內(nèi)存和邏輯內(nèi)存。Windows CE .NET采用分頁(yè)式虛擬內(nèi)存,通過(guò)32位的虛擬地址查找頁(yè)表,映射到相應(yīng)的ROM或RAM物理地址。為了避免以頁(yè)為單位分配回收時(shí)造成的空間浪費(fèi),Windows CE .NET采用以堆為單位的邏輯內(nèi)存管理機(jī)制,應(yīng)用程序可以用比頁(yè)小的很多的粒度來(lái)申請(qǐng)堆,系統(tǒng)可以根據(jù)應(yīng)用程序的需要自動(dòng)地增加堆的大小,而釋放空間時(shí),堆的削減也由系統(tǒng)自動(dòng)完成。
(2)任務(wù)調(diào)度
Windows CE .NET采用基于動(dòng)態(tài)優(yōu)先級(jí)的搶占式多任務(wù)機(jī)制。越重要的任務(wù)優(yōu)先級(jí)越高。
高優(yōu)先級(jí)的任務(wù)最先得到CPU的控制權(quán),保證了實(shí)時(shí)系統(tǒng)中對(duì)時(shí)間有嚴(yán)格限制的緊急任務(wù)得到更為優(yōu)先的處理。同時(shí)優(yōu)先級(jí)動(dòng)態(tài)的調(diào)整,不但增強(qiáng)了系統(tǒng)的靈活性,而且提高了系統(tǒng)的運(yùn)行效果。采用搶占式的調(diào)度算法使得任務(wù)級(jí)響應(yīng)時(shí)間達(dá)到最優(yōu)化。Windows CE .NET在任務(wù)調(diào)度中采用任務(wù)優(yōu)先級(jí)機(jī)制、優(yōu)先級(jí)動(dòng)態(tài)調(diào)整機(jī)制和搶占式調(diào)度,目的都是為了最大限度地滿足任務(wù)調(diào)度的實(shí)時(shí)性。
對(duì)于一個(gè)優(yōu)先級(jí)只有一個(gè)任務(wù)的簡(jiǎn)單系統(tǒng)內(nèi)核,上述的三種調(diào)度機(jī)制足以滿足系統(tǒng)的實(shí)時(shí)要求。但對(duì)于Windows CE .NET這樣復(fù)雜的、高性能的多任務(wù)實(shí)時(shí)內(nèi)核,由于多個(gè)任務(wù)允許共用一個(gè)優(yōu)先級(jí),則相同優(yōu)先級(jí)間的調(diào)度就要采取Windows CE .NET提供的時(shí)間片輪轉(zhuǎn)方法來(lái)實(shí)現(xiàn)。具體實(shí)現(xiàn)如圖3所示。
在沒(méi)有更高優(yōu)先級(jí)任務(wù)就緒時(shí),相同優(yōu)先級(jí)的任務(wù)依照就緒的先后次序執(zhí)行。執(zhí)行了一定的時(shí)間片后,無(wú)論任務(wù)完成與否,均轉(zhuǎn)入下一任務(wù)執(zhí)行,未運(yùn)行完的任務(wù)釋放處理器的控制權(quán)后轉(zhuǎn)入就緒隊(duì)列的末尾,依次往復(fù)。這樣的輪轉(zhuǎn)策略保證了具有相同優(yōu)先級(jí)的任務(wù)相對(duì)平等地享有處理器的控制權(quán)。在Windows CE系統(tǒng)中,一般設(shè)置的時(shí)間片的大小為10ms,它可以通過(guò)OEM廠商所開(kāi)發(fā)的不同硬件進(jìn)行設(shè)置。
4 Windows CE的應(yīng)用與發(fā)展
Windows CE操作系統(tǒng)是微軟為了進(jìn)軍PDA市場(chǎng)而開(kāi)發(fā)的,其首要的應(yīng)用是在PDA領(lǐng)域。但是作為一款通用性的嵌入式操作系統(tǒng),隨著手機(jī)的普及以及掌上電腦與移動(dòng)通信功能的融合,微軟已進(jìn)軍無(wú)線通信市場(chǎng),并且在工業(yè)控制領(lǐng)域嶄露頭角?;赪indows CE對(duì)多媒體(包括DirectX)、通信(TCP/IP、SNMP及TAPI等)和安全的支持,利用微軟提供的嵌入式軟件開(kāi)發(fā)環(huán)境,將使Windows CE在娛樂(lè)、通信、工業(yè)控制和事務(wù)處理等嵌入應(yīng)用領(lǐng)域中發(fā)揮積極的作用。
隨著Internet的發(fā)展以及Internet技術(shù)與信息家電、工業(yè)控制技術(shù)等結(jié)合日益密切,嵌入式設(shè)備與Internet的結(jié)合將代表著嵌入式技術(shù)的真正未來(lái),Windows CE也必將面向網(wǎng)絡(luò)而發(fā)展。為了滿足市場(chǎng)需求的不斷提高,在Windows CE .NET的基礎(chǔ)上微軟發(fā)布了Windows CE .NET4.2版本,其功能特性包括強(qiáng)大的實(shí)時(shí)技術(shù)手段、網(wǎng)絡(luò)互聯(lián)特性、視頻與音頻編/解碼程序、圖形顯示功能及遠(yuǎn)程桌面支持。
綜上所述,Windows CE .NET將為快速建立下一代智能移動(dòng)和小內(nèi)存占用的設(shè)備提供一個(gè)健壯的實(shí)時(shí)操作系統(tǒng)。
參考文獻(xiàn)
1 陳向群,王雷,馬洪兵等.Windows CE .NET系統(tǒng)分析及實(shí)驗(yàn)教程.北京:機(jī)械工業(yè)出版社,2003
2 魏忠,蔡勇,雷紅衛(wèi).嵌入式開(kāi)發(fā)詳解.北京:電子工業(yè)出版社,2003
3 陳章龍,涂時(shí)亮.嵌入式系統(tǒng)-Intel StrongARM結(jié)構(gòu)與開(kāi)發(fā).北京:北京航天航空大學(xué)出版社,2002