劉懿嶙 謝長睿
摘要:Windows CE作為系統(tǒng)是為Windows家族中的新成員,是設(shè)計(jì)給掌上型電腦所使用的電腦環(huán)境。這樣的系統(tǒng)可以使完整的可攜式技術(shù)與現(xiàn)在擁有的Windows桌面技術(shù)整合工作。Windows CE被設(shè)計(jì)成為針對小型設(shè)備的通用操作系統(tǒng)。為了足夠的方便來能夠適應(yīng)廣泛產(chǎn)品的需求,Windows CE采用標(biāo)準(zhǔn)模式,這樣就可以讓某些模式的來通過這樣的一套工作利用便捷做出選擇。
關(guān)鍵詞:Windows CE;可攜式技術(shù);通用操作系統(tǒng)
前言
Windows CE是一個(gè)32位、多任務(wù)、多線程的操作系統(tǒng),其開放式的設(shè)計(jì)結(jié)構(gòu)適用于各種各樣的設(shè)備,它這樣的系統(tǒng)擁有這很多獨(dú)特的特點(diǎn)。例如,它是一種可以壓縮和升級的軟件系統(tǒng),如果在小內(nèi)存條件下,也能夠完美的提供比較高的性能。CE還擁有著攜帶方便和能夠運(yùn)行在多種微處理器。它的高效和完美的電源系統(tǒng)能夠讓移動設(shè)備的電池壽命延長很久。因?yàn)樗旧碇С值氖菢?biāo)準(zhǔn)系統(tǒng),所以就可以很方便地去進(jìn)入Internet來發(fā)送和接受電子郵件。
一、Windows CE的歷史背景
最早的系統(tǒng)版本是在1996年之后才發(fā)布的,從這開始,微軟就開始不停的更新版本,一直到現(xiàn)在的最新版,來適應(yīng)市場用戶的不同需求。1997年,帶有網(wǎng)絡(luò)支持的CE2.0被微軟發(fā)布。Windows中標(biāo)準(zhǔn)的網(wǎng)絡(luò)功能和通用的NE2000網(wǎng)卡驅(qū)動支持隨之到了1998年的8月份,再次發(fā)布了H/PC配套的操作系統(tǒng)2.11版本。該系統(tǒng)更新了它的存儲功能,文件大于4M。命令解釋器的cmd.exe來支持MS-DOS的命令,以至于后續(xù)的Fast IR來維持紅外線的運(yùn)行。這套版本的最完美表現(xiàn)在它的IP多點(diǎn)傳送。隨后2000年的3.0版本隨之問世,微軟大大的提高了這個(gè)系統(tǒng)的內(nèi)核來更好的支持256個(gè)線程調(diào)整線程周期的優(yōu)先級。2003年的第二個(gè)季度的4.2版本發(fā)布,其中API的菜單條和輸入法等精簡框架都被完美構(gòu)筑在中。2004年的7月份,5.0版本正是發(fā)行,能夠處理多媒體和Web瀏覽的功能,其他設(shè)備與其互聯(lián)的時(shí)候加強(qiáng)操作性。2006年的6.0上市操作支持著NDIS miniport驅(qū)動模式。當(dāng)然了也就是這個(gè)6.0讓微軟不但擁有了自己獨(dú)特的新版系統(tǒng)還讓其的資源共享發(fā)表它所屬的核心源代碼。使很多的IDE成為VS2005的嵌入式開發(fā)廠商擁有的一個(gè)基本插件。2011年的7.0系統(tǒng)則是盡善盡美地適用于很多醫(yī)療設(shè)備,工業(yè)設(shè)備,零售系統(tǒng)和平板電腦。
二、Windows CE的中斷處理
(一)中斷體系結(jié)構(gòu)
中斷過程被其分為了兩個(gè)部分,其中當(dāng)出現(xiàn)中斷時(shí),相應(yīng)的ISR被內(nèi)核相應(yīng)的調(diào)用,來盡可能保存短的內(nèi)核模式為中斷處理模式。內(nèi)核收到一個(gè)最小處理的ISR來返回一個(gè)合適的IST上,然后檢查ID號來等待事件服務(wù)線程的發(fā)生。IST開始執(zhí)行等待停止然后中斷的發(fā)生處理程序。
(二)中斷延遲
這里的中斷延遲也能夠分為兩個(gè)部分,其中從開始發(fā)生中斷時(shí)算起,到ISR把命令開始執(zhí)行時(shí)的間隔成為第一個(gè)延遲被稱作ISR延遲。當(dāng)然了發(fā)生延遲就得存在著原因,其中因素涵蓋很多,首先是中斷系統(tǒng)被關(guān)閉,處理器不會產(chǎn)生異常狀態(tài)而且機(jī)器指令都被中斷處理器檢查來調(diào)用移動指令長字符鎖定中斷。然而第二個(gè)是從發(fā)生中斷開始計(jì)算最后到IST的第一行代碼存在執(zhí)行時(shí)的時(shí)間間隔稱作是第二個(gè)IST延遲。
三、Windows CE的進(jìn)程和線程
(一)CE的進(jìn)程
一個(gè)正在運(yùn)行的一個(gè)進(jìn)程應(yīng)用基本是兩個(gè)部分組成的。其中操作系統(tǒng)的管理內(nèi)核對象和地址空間擁有的進(jìn)程。其中地址空間的存在讓代碼靜態(tài)數(shù)據(jù)段都要從執(zhí)行方面來看的話,應(yīng)用程序的一個(gè)或者多個(gè)線程都是一個(gè)完美的執(zhí)行單元,基本的線程操作系統(tǒng)都是來進(jìn)行一個(gè)線程地址空間來訪問分配的。而控制執(zhí)行CPU的基本單位則是一種能夠單元的執(zhí)行代碼。
(二)CE的線程
任務(wù)操作在調(diào)度過程中的CE. NET是一個(gè)搶占系統(tǒng)。搶占多任務(wù)多,系統(tǒng)優(yōu)先級列表是一個(gè)當(dāng)前所有線程的,所有的線程的優(yōu)先級排列顧序是當(dāng)內(nèi)核的調(diào)度中斷發(fā)生時(shí),排列順序會被調(diào)度線程所有系統(tǒng)重新安排的。其中256個(gè)優(yōu)先級的線程高度是0的優(yōu)先級最高,255則是最低。實(shí)時(shí)性的調(diào)度系統(tǒng)CE. NET具有保證髙優(yōu)先級線程時(shí)間片先運(yùn)行的機(jī)智。所以低優(yōu)先級線程才能得到阻塞必須在前者才能夠終止占有CPU相同優(yōu)先級。其中的線程一旦發(fā)生中斷,內(nèi)核會終止程序死鎖和阻塞低線程的暫停,來讓髙優(yōu)先級線程其他相同占有時(shí)間時(shí)的共同隨機(jī)運(yùn)行,直到具有使用完了 設(shè)置為0的時(shí)間片內(nèi)阻塞。睡眠OEM可以更改優(yōu)先級的線程。內(nèi)核限制線程占有CPU的時(shí)間,那么CPU時(shí)間片其他相同會占有時(shí)間片這個(gè)值,甚至CPU時(shí)間片設(shè)置為0會出現(xiàn)程序死鎖的情況。臨界區(qū)鎖定線程2這次進(jìn)入了一個(gè)臨界區(qū)內(nèi)的資源是運(yùn)行的機(jī)智不會被其他線程訪問的,當(dāng)臨界區(qū)正運(yùn)行時(shí),線程1時(shí)間片釋放在中運(yùn)行狀態(tài),阻塞狀態(tài)的資源被線程2來放開。
四、Windows CE的內(nèi)存管理
(一)進(jìn)程空間地址結(jié)構(gòu)
CE系統(tǒng)又把從0x80000000?0x80000000的2G用戶空間分為64個(gè)槽(Slot),一個(gè)槽(Slot)占用32MB的地址空間,其中前33個(gè)Slot(0x00000000?0x42000000)作為進(jìn)程空司:當(dāng)一個(gè)進(jìn)程啟動時(shí),內(nèi)核選擇一個(gè)沒有被占用的槽作為這個(gè)進(jìn)程的地址空間。當(dāng)前運(yùn)行進(jìn)程(Currendy Running Process)其中0x0000000?CxOlFFFFFF這個(gè)槽稱為Slot 0,Slot 0作為當(dāng)前運(yùn)行進(jìn)程的地址空間。當(dāng)一個(gè)進(jìn)程即將得到CPU控制權(quán)時(shí),將其整個(gè)地址映射到Slot0。這個(gè)進(jìn)程被分配一個(gè)槽后,槽內(nèi)按由低地址到高地址順序依次存放的數(shù)據(jù)位代碼段、靜態(tài)數(shù)據(jù)段、堆、棧,棧之后的空間為所有DLL保留。
(二)堆和棧的內(nèi)存分配
連續(xù)的較大的地址堆是一段虛擬空間。應(yīng)用程序內(nèi)存頁為單位在堆中可以動態(tài)地分配,釋放在堆內(nèi)分配內(nèi)存塊可以是任意大小的,而直接分配內(nèi)存就必須以每個(gè)內(nèi)存頁所需大小的內(nèi)存塊。可能是ikb、4kb或并且保留頂部2KB更多。棧和堆相比空間要小的多,它是專為函數(shù)使用的。棧的大小和CPU有關(guān),一般為64KB,為了防止溢出。實(shí)際開發(fā)中,不要在一段連續(xù)的虛擬地址空間棧中分配很大和很多的內(nèi)存塊。因?yàn)榉峙涞膬?nèi)存塊超過了默認(rèn)棧的限制,就會引起非法訪問進(jìn)程的異、常中止并且造成。
參考文獻(xiàn):
[1]? 金亮,張學(xué)杰.《3種嵌入式操作系統(tǒng)內(nèi)核的關(guān)鍵技術(shù)分析》.云南大學(xué),2006。
[2]? 林濤.《嵌入式操作系統(tǒng)WindowsCE的研究》.微計(jì)算機(jī)信息,2006。
[3]? 鄧亞明.《嵌入式操作系統(tǒng)比較研究中國髙新技術(shù)企業(yè)》,2008。
(作者單位:華北水利水電大學(xué))