新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MS Windows CE的實(shí)時(shí)系統(tǒng)

MS Windows CE的實(shí)時(shí)系統(tǒng)

作者: 時(shí)間:2012-05-02 來(lái)源:網(wǎng)絡(luò) 收藏

確保操作

兩種不同途徑被用來(lái)確保操作:

開(kāi)發(fā)組進(jìn)行內(nèi)部的檢查或分析內(nèi)核代碼,

OEM和ISV(獨(dú)立軟件銷售商)利用一些將在未來(lái)的WindowsCE版本嵌入式工具包(forVCFT)提供工具來(lái)確保特定配置。

WindowsCE關(guān)于VC++的嵌入工具包包括以下工具:

(一個(gè)對(duì)于分時(shí)研究的內(nèi)核的工具版本和Intrtinrt.ext應(yīng)用軟件來(lái)觀察,中斷過(guò)程的最大、最小、平均時(shí)間。

微軟也能開(kāi)發(fā)其它的針對(duì)顧客需要的分時(shí)工具。

WindowsCE開(kāi)發(fā)組,已經(jīng)檢查了內(nèi)核代碼以證實(shí)它能由最差的情況時(shí)間表征,它是獨(dú)立于對(duì)象數(shù)目的。

為了利用這個(gè)檢查,內(nèi)核被表征成一套KCALLS或調(diào)用,在內(nèi)核關(guān)閉優(yōu)先權(quán)是它們是內(nèi)核程序,并且不允許其它的線程運(yùn)行,最差事件時(shí)間,此時(shí),進(jìn)程、標(biāo)止運(yùn)行,它能在內(nèi)核中表征成最差事件KCALL時(shí)間(注意:這些時(shí)間不影響ISRS,只影響線程,例如ISTS)。

開(kāi)發(fā)組通過(guò)檢查發(fā)現(xiàn)這沒(méi)有非持久的循環(huán)在KCALLS,這意味著:并所有的KCALLS能夠表示成單向分支,代碼路徑,并確保通過(guò)KCALL并獨(dú)立于輸入?yún)?shù)發(fā)現(xiàn)最差事件時(shí)間成為可能。

查找實(shí)際的最差事件時(shí)間包括使用Instrumentedkemal,這僅是一個(gè)內(nèi)核版本,它在設(shè)定應(yīng)用環(huán)境后編輯使用,KCALL_PROFICE=1,以保證額外的分時(shí)功能,這個(gè)instrumentedkemel與debugkemel不同,Instrumentted是為一個(gè)零售的內(nèi)核使用,它用來(lái)獲得分時(shí)值,這常對(duì)于裝運(yùn)產(chǎn)品常常諱之莫深,在retailkernal和instrumentedkernel唯一區(qū)別是它的裝備。

Instrumenttedkernel記錄所有的KCALL時(shí)間,這些值,包括最小、最大和平均時(shí)間,并能夠通過(guò)調(diào)用專用的API函數(shù)DumPkcallprofile打印到調(diào)試接口,Instrumentedkernel通常運(yùn)行在強(qiáng)狀態(tài)下,然后調(diào)用Dumpkcallprefile來(lái)獲得時(shí)間。

中斷測(cè)試應(yīng)用軟件Intrtime.exe,在WindowsCE標(biāo)準(zhǔn)版本收集中斷分時(shí)延遲信息,應(yīng)用軟件在測(cè)試中控制時(shí)間。因此,當(dāng)系統(tǒng)需要時(shí)間控制器時(shí),是不合適使用的。例如,此應(yīng)用程序不能與內(nèi)核instrumented版本一起使用,因?yàn)樗残枰獣r(shí)間控制。

在WindowsCE2版(Beta版)測(cè)試響應(yīng),

Intertime應(yīng)用軟件在odoSH3參考平臺(tái)上運(yùn)行1000次中斷測(cè)試,內(nèi)部運(yùn)行58.98Mhz,外部為14.745Mhz外部頻率,這個(gè)測(cè)試在一個(gè)標(biāo)準(zhǔn)的H/PC配置,它包括WindowsCE所有模式和組合。僅有主操作系統(tǒng)進(jìn)程進(jìn)行(NK.exe,Filesys.exe,Gwes.exe,Device.EXE,Shell.EXE和Explover.EXE),在測(cè)試中無(wú)用戶初始中斷(觸摸屏、鍵盤或其它應(yīng)用),應(yīng)用軟件可報(bào)告下面的ISR和IST開(kāi)始、最小和最大時(shí)間:

響應(yīng)最大、最小值(1000次測(cè)試)

ISR開(kāi)始1.3-7.5微秒

IST開(kāi)始93-275微秒

大多數(shù)測(cè)試結(jié)果,分布在最小值數(shù)值附近,當(dāng)測(cè)試ISR開(kāi)始時(shí)間時(shí),最小值1.3和1.6微秒,出現(xiàn)了293和549次,共占測(cè)試的84%,類似的超過(guò)90%的(1000次中923)start-of-IST測(cè)試出最大響應(yīng)為102微秒或少一些。

Intertime應(yīng)用軟件也使用一個(gè)用戶指定數(shù)目的系統(tǒng)對(duì)象來(lái)測(cè)試ISR和IST開(kāi)始時(shí)間。雖然工作十分初級(jí),但它驗(yàn)證了ISR開(kāi)始時(shí)間與系統(tǒng)對(duì)象數(shù)目無(wú)關(guān),測(cè)試設(shè)為1000次(除了特別更改)并且線程優(yōu)先權(quán)為5或7。

ISR開(kāi)始最大值后臺(tái)線程、數(shù)目(每個(gè)線程一個(gè)事件)優(yōu)先級(jí)

8.407

8.65(注:僅100次)7

9.010(注:僅100次)5

14.8105

19.2105

17.0107

12.8205

11.020(注:僅100次)7

10.0507

15.01005

15.61007

這數(shù)值不是系統(tǒng)對(duì)象數(shù)目的函數(shù),不同的值可能由于中斷出現(xiàn)時(shí)內(nèi)核狀態(tài),開(kāi)發(fā)組目前正在研究以鑒定ISR開(kāi)始最差時(shí)間值。

由這些結(jié)果向回推,假定ISR開(kāi)始最小值代表最好情況。此時(shí),dISR_Current和Sum(dISR_Htgbor)為0,最小的value1=ISR開(kāi)始值=1.3微秒,類似的設(shè)定最好情況時(shí),Sum(dIST)和Sum(dISR)為0,Value最小值=.IST開(kāi)始值=93微秒,單從測(cè)驗(yàn)結(jié)果看,它是不能確定,valume1或value2最大值。

附加的分時(shí)信息能夠由instrumentedkernel收集,對(duì)于一個(gè)最差情況在IST開(kāi)始前花費(fèi)時(shí)間valume2,能由下列公式計(jì)算:

Value2=dkCall+dNextThread

dKcall=.內(nèi)核調(diào)用時(shí)間;當(dāng)消除優(yōu)先級(jí)時(shí),花費(fèi)在內(nèi)核的一部分時(shí)間量。

DNextThread=Next.Thread內(nèi)核調(diào)用時(shí)期。花費(fèi)在IST中時(shí)間量。

實(shí)際上,在0級(jí)別線程調(diào)度要比NextThread調(diào)用快,但此公式能估計(jì)出上限。

下面表格顯示了用instrumentedKernel進(jìn)行初步測(cè)試時(shí)最差事件結(jié)果,這些測(cè)試條件與Intrtime測(cè)試相同。

內(nèi)核調(diào)用模型最大值(ad-hoc.testing)

最大時(shí)間值(所用內(nèi)核調(diào)用)266微秒(Learecrite)

NextThread237微秒

總值503微秒

Instrumentedkernel顯示這些條件下value2上限為500微秒。這個(gè)值為兩個(gè)最差事件總時(shí)間,遠(yuǎn)遠(yuǎn)超過(guò)了由Intritime應(yīng)用程序得到的結(jié)果,也大于實(shí)際最差事件時(shí)間。例如:通過(guò)Nextthread調(diào)度一個(gè)優(yōu)先級(jí)為0的線程,不會(huì)導(dǎo)致最差事件,這意味著500微秒是一個(gè)高于實(shí)際的最差事件值的保守值。

IntertimeUtility對(duì)于從總體上觀察最差事件值十分有用,InstrumenttedKemel對(duì)于獲得可能最差事件的值,通過(guò)內(nèi)核描繪出所有響應(yīng)原因——一個(gè)IST在這些事件運(yùn)行,但在內(nèi)核非優(yōu)先部分運(yùn)行執(zhí)行時(shí),將受阻礙,系統(tǒng)的最差事件響應(yīng)可由每一部分的最差事件總和計(jì)算。

注意本論文中所有測(cè)試結(jié)果均基于內(nèi)部WindowsCE的beta版,目前存在的操作系統(tǒng)和應(yīng)用將繼續(xù)得到修正,并且進(jìn)行附加測(cè)試以獲得在不同操作條件下系統(tǒng)操作,這些數(shù)值將繼續(xù)被更新并出版,以反思目前的操作系統(tǒng)版本。

總結(jié)

微軟WindowsCE內(nèi)核設(shè)計(jì)以達(dá)到RTOS最小要求,以使WindowsCE用在許多不同類型的嵌入式和系統(tǒng)作為操作系統(tǒng);

WindowsCE的多線程和優(yōu)先級(jí),WindowsCE支持個(gè)人線程優(yōu)先級(jí);

WindowsCE支持優(yōu)先權(quán)繼承程序,以便調(diào)整優(yōu)銜級(jí)別以修改優(yōu)先權(quán)顛倒;

WindowsCE支持一個(gè)可預(yù)測(cè)的線程同步機(jī)理,包括等待對(duì)象,如互斥體關(guān)鍵部分,命名或未命名的事件對(duì)象,它基于線程優(yōu)先權(quán)排序。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉