擁有微軟Windows CE的實(shí)時(shí)系統
介紹
Microsoft Windows CE
快速反應的嵌入式應用常常管理嚴格的時(shí)間反應。例如,制造過(guò)程控制,高速的數據采集設備,電訊交換設備,醫用設備,空中“有線(xiàn)”控制,武器發(fā)射裝備,空間航行和導航,實(shí)驗室,實(shí)驗控制,汽車(chē)發(fā)動(dòng)機控制,機器人系統。
為保證這種功能,就意味著(zhù)不僅需要計算精確性,還有結果的時(shí)間性,此種應用必須在指定的時(shí)間參數內做出反應。
實(shí)時(shí)系統的廣義定義是“對任何外部刺激,計算機做出及時(shí)反應是至關(guān)重要的系統”,標準定義在Internet newsgroup corp realtime group中 。實(shí)時(shí)定義為:一個(gè)實(shí)時(shí)系統它的計算正確性,不僅依靠于計算邏輯上的正確,還包括及時(shí)的產(chǎn)生結果。如果沒(méi)有達到系統時(shí)間限制條件,系統也是失效的。
搞清楚實(shí)時(shí)系統和實(shí)時(shí)操作系統(RTOS)的區別至關(guān)重要,實(shí)時(shí)系統代表所有系統組成設備——硬件,操作系統和應用——它需要達到系統的要求,實(shí)時(shí)操作系統(RTOS)只是整個(gè)實(shí)時(shí)系統的一個(gè)組成部分,它必須提供足夠的功能以確保整個(gè)實(shí)時(shí)系統達到要求。
同樣,搞清快速操作系統和實(shí)時(shí)操作系統之間區別,也很重要,對于一個(gè)RTOS雖然達到全面要求十分有用,但并不是它自己達到這種要求。Internet neusgronp cornp.realtime列舉了作為一個(gè)實(shí)時(shí)操作系統,必須達到的要求:
- OS(操作系統)必須是多線(xiàn)程和優(yōu)先級之分。
- OS必須支持線(xiàn)程優(yōu)先級。
- 一個(gè)優(yōu)先級繼承的系統必須存在。
- OS必須支持可預測的線(xiàn)程,同步發(fā)送機理。
另外,OS的行為必須是可預測的,這意味實(shí)時(shí)系統的開(kāi)發(fā)者必須對系統中斷級,系統調用和分時(shí)了如指掌:
- 必須知道OS和設備驅動(dòng)器的中數據匹配最大時(shí)間。
- 設備驅動(dòng)器用來(lái)處理一個(gè)中斷最大時(shí)間和關(guān)于這些驅動(dòng)器的中斷申請信息必須清楚。
- 中斷響應(從中斷到運行時(shí)間),必須可預測并滿(mǎn)足功能要求。
每次系統調用時(shí)間必須可以預測,并且獨立于系統的對象數目。本篇論文論述了微軟Windows CE 操作系統是如何達到一個(gè)實(shí)時(shí)系統的要求,更有意義的是,Windows CE 保證一個(gè)時(shí)間的上限,它在收到中斷后開(kāi)始一個(gè)實(shí)時(shí)的優(yōu)先級線(xiàn)程。本論文論述了對特定參考平臺的中數據響應時(shí)間,參考為有 Hinathi SH3 的微處理器的 “Odo” 平臺。
Microsoft Windows CE
概論
微軟Windows CE 被設計成針對小型設備(它是典型的擁有有限內存的無(wú)磁盤(pán)系統)的通用操作系統。Windows CE 可以通過(guò)設計一層位于內核和硬件之間代碼來(lái)用設定硬件平臺,這即是眾所周知的硬盤(pán)壓縮層(HAL),(在以前解釋時(shí),這被稱(chēng)為 OEMC (原始設備制造)適應層,即 OAL; 內核壓縮層,即 KAL。 以免與微軟的 Windows NT 操作系統 HAL 混淆)
不象其它的微軟 Windows 操作系統,Windows CE 并不是代表一個(gè)標準的相同的對所有平臺適用的軟件。為了足夠靈活以達到適應廣泛產(chǎn)品需求, Windows CE 采用標準模式,這就意味著(zhù),它能夠由一系列軟件模式做出選擇,從而使產(chǎn)品定制。另外,一些可利用模式也可作為其組成部分,這意味著(zhù)這些模式能夠通過(guò)從一套可利用的組份做出選擇,從而成為標準模式,通過(guò)選擇,能夠達到系統要求的最小模式, OEM 能夠減少存儲腳本和操作系統的運行。
Windows CE 關(guān)于 VC 5.0 開(kāi)發(fā)系統嵌入式工具包,提供系統庫、工具、文本和樣本代碼,以使 OEMS 能夠對特定的硬件平臺使 Windows CE 標準定制。嵌入式工具包也包括設備驅動(dòng)包(DDK)和軟件開(kāi)發(fā)包(SDK) ,DDK 提供了關(guān)于寫(xiě)驅動(dòng)器的附加文本,SDK 提供庫、頭文件、樣本代碼、文本以允許,開(kāi)發(fā)者對基于 Windows CE 的平臺進(jìn)行寫(xiě)操作。 Windows CE 提供了相同的程序界面,以用來(lái)為其它的視窗操作系統開(kāi)發(fā)功能,例如,Windows CE 版本 1.01支持大約1000個(gè)微軟的Win 32 API 函數的其中500個(gè)。這就意味著(zhù)大量不同類(lèi)的工具,第三方書(shū)籍,關(guān)于 Win 32 開(kāi)發(fā)者訓練教程,可以替代或為 Windows CE 系統的開(kāi)發(fā)者所用。
實(shí)時(shí)系統的開(kāi)發(fā)者能夠使用,關(guān)于VDFF 5.0 的嵌入式工具包,以把操作系統轉移到特定的平臺,并為這個(gè)平臺開(kāi)發(fā)附加設備驅動(dòng)器和實(shí)時(shí)功能。
線(xiàn)程和線(xiàn)程優(yōu)先權級
Windows CE 是有優(yōu)先級的多任務(wù)操作系統,它允許多重功能、進(jìn)程,在相同時(shí)間系統中運行 Windows CE 支持最大的 32 位同步進(jìn)程。一個(gè)進(jìn)程包括一個(gè)或多個(gè)線(xiàn)程,每個(gè)線(xiàn)程代表進(jìn)程的一個(gè)獨立部分,一個(gè)線(xiàn)程被指定為進(jìn)程的基本線(xiàn)程,進(jìn)程也能創(chuàng )造一個(gè)未定數目的額外線(xiàn)程,額外線(xiàn)程實(shí)際數目,僅由可利用的系統資源限定。
Windows CE 利用基于優(yōu)先級的時(shí)間片演算法以安排線(xiàn)程的執行,Windows CE 支持八個(gè)不同的優(yōu)先級,由0到7,0代表最高級,它在頭文件 Winbasw.h中定義。
優(yōu)先級 | 描述 |
0 (最高級) | 關(guān)鍵的線(xiàn)程優(yōu)先級 (最高優(yōu)先等級) |
1 | 最高線(xiàn)程優(yōu)先級 |
2 | 高于通常的線(xiàn)程優(yōu)先級 |
3 | 通常線(xiàn)程優(yōu)先級 |
4 | 低于常規線(xiàn)程優(yōu)先級 |
5 | 最低線(xiàn)程優(yōu)先級 |
6 | 高于IDLE的線(xiàn)程優(yōu)先級 |
7 (最低) | IDLE線(xiàn)程優(yōu)先級 (最低優(yōu)先級) |
級別0和1通常做為實(shí)時(shí)過(guò)程和設備驅動(dòng)器,級別2-4做為線(xiàn)程和通常功能,級別5-7做為是低于其它功能級別,注意級別6是目前狀態(tài)并有穩定聯(lián)接。
優(yōu)先權唯一的取決于線(xiàn)程優(yōu)先級,擁有高級優(yōu)先權的線(xiàn)程安排優(yōu)先運行,同一優(yōu)先級的線(xiàn)程,以循環(huán)優(yōu)先先級方式運行,即每個(gè)線(xiàn)程接受定制的時(shí)間或時(shí)間片,定量時(shí)間默認值為25毫秒 (Windows CE 2.0 支持在 MIPS 平臺更改定量時(shí)間)。較低優(yōu)先權的線(xiàn)程,要直到較高級線(xiàn)程完成之后再運行,也即直到他們或者放棄或停止。一個(gè)重要的例外是最高優(yōu)先級的線(xiàn)程(級別0,關(guān)鍵時(shí)間優(yōu)先級)不與其它的線(xiàn)程共享時(shí)間片,這些線(xiàn)程連續執行直到他們完成。不象其它的微軟窗操作系統,Windows CE 是固定不能改變,它不匹配基于這引進(jìn)優(yōu)先級的中斷,他們能夠暫時(shí)改動(dòng),但僅能通過(guò) Windows CE 內核以避免所謂的的“優(yōu)先權倒置”。
優(yōu)先權倒置指的是當它們同時(shí)競爭同一資源時(shí),低優(yōu)先級的線(xiàn)程,阻礙了高優(yōu)先權線(xiàn)程對資源的利用。為了改正這種局面并解放較高優(yōu)先權的線(xiàn)程,Windows CE 允許低級優(yōu)先權繼承,嚴格的線(xiàn)程優(yōu)先權,并且運行較高優(yōu)先級直到它釋放所用資源。
例如,如果一個(gè)線(xiàn)程在最高優(yōu)先權運行試圖蕕取由低級優(yōu)先權占有的互斥體,低級優(yōu)先權的線(xiàn)程變成高級優(yōu)先權,并且運行直到它釋放互斥體。優(yōu)先權倒置適用于系統的所有線(xiàn)程。例如,甚至在優(yōu)先級別1運行的內核線(xiàn)程能轉成級別0,如果優(yōu)先級0線(xiàn)程運行內存分頁(yè)代碼,將引起塊失誤。
基于優(yōu)先級的多任務(wù)設計,保證運行在最低級的線(xiàn)程在一個(gè)預所知時(shí)間段執行。本論文在后面討論設定響應,對于指定的平臺和公式,并由其它的平臺獲取數字。在 DAK 和 SDK 的工具,顯示了線(xiàn)程狀態(tài)和優(yōu)先級別,并描繪指定實(shí)時(shí)系統操作輪廓。
線(xiàn)程同步
實(shí)時(shí)系統必須保證進(jìn)程和線(xiàn)程同步,例如,如果實(shí)時(shí)應用的一部分在另一部分獲得最多當前數據前即完成,此應用的管理進(jìn)程可能不穩定,同步將確保在應用線(xiàn)程間交換正確。
如同其它的 Windows 操作系統一樣,Windows CE 為線(xiàn)程同步提供了一個(gè)豐富的“等待對象”,這包括關(guān)鍵部門(mén)、事件、互斥體,些等待對象,允許一個(gè)線(xiàn)程減緩它的運行并且等待直到指定事件發(fā)生。
Windows CE 將互斥體、關(guān)鍵部分、事件請求按“先入先出,優(yōu)先級(FIFO)”順序排列:不同的先入先出順序序列定義成八個(gè)不同的優(yōu)先級,在給定的優(yōu)稱(chēng)級的線(xiàn)程請求,將被放在優(yōu)先級列表末尾,當優(yōu)先級倒置出現時(shí),調度程序調整這些序列。
除了等待對象,Windows CE 支持標準的 Win 32 時(shí)間 API 函數,這些來(lái)自?xún)群说膽?,軟件中斷將獲得時(shí)間間隔,它被用來(lái)管理實(shí)時(shí)應用。通過(guò)調用 GetTickCont 函數,它能夠返回幾毫秒,線(xiàn)程能夠使用系統間隔時(shí)間。關(guān)于更詳細的分時(shí)信息,Windows CE 內核也支持Win 32 API 函數QueryPerformanreCounter 和 QueryPerFormanteFrequency 。OEM 必須為這些調用提供硬件和軟件支持,它提供一個(gè)較高的時(shí)間分辨力和 OAL 界面其它方面。
其它方面考慮
Windows CE 提供了一個(gè)重要的存儲系統,例如,當目前某些運行 Windows CE 的平臺提供 4MB 的物理內存,Windows CE 支持一個(gè)重要的 2GB 的地址空間,每個(gè)進(jìn)程聯(lián)接在它自己的32MB 物理空間上,當它需要產(chǎn)生內存分頁(yè)中斷(這可能影響線(xiàn)程執行時(shí)間),物理內存進(jìn)行線(xiàn)程代碼或數據內存分頁(yè)。
內存分頁(yè)輸入輸出,將比實(shí)時(shí)進(jìn)程優(yōu)先級低。在實(shí)時(shí)進(jìn)程中內存分頁(yè)仍可自由出現,但這要確保后臺的實(shí)際內存管理贏(yíng)得實(shí)時(shí)系統優(yōu)先權。
實(shí)時(shí)線(xiàn)程應該鎖存在內存中,以防止這些無(wú)關(guān)緊要的內存分頁(yè)阻礙其運行,它們可能會(huì )占用實(shí)際內存管理系統。
Windows CE 允許映射,這將陰止多個(gè)進(jìn)程共享同一物理內存,結果將會(huì )導致協(xié)同進(jìn)程間或驅動(dòng)器與映射快速的數據傳送,內存映射能夠戲劇性的增強實(shí)時(shí)操作。
中斷處理: IRQS ISRS 和 ISTS
實(shí)時(shí)應用被設立在指定的時(shí)間間隔內,對外部事件做出反應,實(shí)時(shí)應用使用中斷做為一種確保外部事件由操作系統獲知的方式。在 Windows 中,內核和 OEM 適應層 (OAL)被設定成使系統其它部分的中斷和調度最優(yōu)化。Windows CE 平衡操作,并通過(guò)把中斷過(guò)程分成兩部分而使執行更加容易:它分為中斷服務(wù)程序(ISR)和中斷服務(wù)線(xiàn)程(IST)兩部分。
每條硬件中斷申請線(xiàn)(IRQ),與一個(gè)ISR相連。當中斷成立和中斷出現時(shí),內核為此調用寄存的 ISR, ISR 為中斷處理的內核模式部分盡可能短的保存。它首先將內核放在適合的 IST 上。
ISR 執行它的最小處理并返回一個(gè) ID 號到內核,內核檢查返回的中斷 ID 號,并設置相關(guān)事件,中斷服務(wù)線(xiàn)程等待事件。當內核設置事件時(shí),IST 停止等待并開(kāi)始執行,附加的中斷進(jìn)程,中斷處理大部分實(shí)際上出現在 IST 中,兩個(gè)最高的線(xiàn)程優(yōu)先權 (級別0和1),通常指定為 ISTS,保證這些線(xiàn)程運行得足夠快。
正如前面所說(shuō),處在最高級的 ISTS 不能被其它的線(xiàn)程占用,這些線(xiàn)程持續執行直到它們截止或放棄。
Windows CE 不能支持群體中斷,這就意味著(zhù)當以前一個(gè)中斷處理中,另一個(gè)不同接受服務(wù),也就是當內核位于 ISR 時(shí)如果中斷出現,在為新的 IRQ 開(kāi)始 ISR 前它將一直執行直到ISR 結束,這將引起硬件中斷和 ISR 開(kāi)始之間的延遲,拖延和響應時(shí)間中斷響應。
中斷響應
本論文中,Intervupt Latency 詞組主要指的是較件中斷,處理響應,也即是從處部中斷到達處理器到中斷開(kāi)始處理間的時(shí)間。
Windows CE 中斷響應時(shí)間是針對鎖存在內存上的線(xiàn)程 (當內存響應不存在時(shí))。這使得計算最差事件響應成為可能——中斷服務(wù)程序(ISR) 開(kāi)始和中斷服務(wù)線(xiàn)程(IST)開(kāi)始D的總時(shí)間,直到中斷處理的總時(shí)間能夠通ISR 和 IST 中所需時(shí)間計算決定。
ISR 響應通用公式定義如下:
ISR開(kāi)始時(shí)間 = value1 dISR_Current sum(dISR_Higher)
value1=由內核處理過(guò)程獲得響應值
dISR_Current=中斷到達時(shí)程序中 ISR 持續時(shí)間。這個(gè)值范圍由0到系統中最長(cháng)的 ISR 持續時(shí)間
sum(dISR_Higher)=所有在 ISR 開(kāi)始前的較高級ISRS 持續時(shí)間總和,即在時(shí)間 vahe1 dISR-cumeneu間到達的中斷
例如,考慮一個(gè)擁有關(guān)鍵優(yōu)先權 ISR 的嵌入式系統,因為 ISR 被設成最高級,這有樣 ISRS dISR-Higher 值為0。當沒(méi)有其它 ISRS 最低響應,在程序中,即為value1 最低響應即為value1加系統中最長(cháng) ISR 周期,當中斷到達時(shí),正是系統中最長(cháng)的 ISR 開(kāi)始執行。
IST 響應周期定義如下:
IST開(kāi)始時(shí)間 = value2 sum(dIST) sum(dISR)
value2=由內核處理的響應值
sum(dIST)=所有的出現在 ISR 和 IST ,開(kāi)始的優(yōu)先級 ISTS 和線(xiàn)程上下文轉換時(shí)間總和。
sum(dISR)=在中斷(?) ISR 和它的 IST 之間運行的其它 ISRS 持續時(shí)間總和。
最簡(jiǎn)單的例子——具有一個(gè)關(guān)鍵級 ISR 和一個(gè)關(guān)鍵級線(xiàn)程(無(wú)其它0優(yōu)先級的線(xiàn)程)的嵌入式系統——沒(méi)有其它的 ISTS 能夠在ISR 和 IST 之間中斷,然而在關(guān)鍵級的 ISR 和它相關(guān)的 IST 開(kāi)始間其它的 ISRS 能被處理。
因為 ISRS 一旦能夠獲得,即可被處理,很容易想象成病態(tài)情況,涉及產(chǎn)生一個(gè)持續的 ISRS 流,從而產(chǎn)生不確定的推遲。 IST 的開(kāi)始不可能出現,因為 OEM對系統中的中斷完成控制。因為 OEM (原始設備制造商)為特定操作系統設計傳統 Windows CE 版本。 OCM 利用目標操作環(huán)境限制使系統設計最佳化。
為減少響應時(shí)間,OEM 控制 ISR 和IST 處理時(shí)間中斷優(yōu)先級線(xiàn)程優(yōu)先級。公式中的 value1 和 walue2 代表,Windows CE 內核中處理時(shí)間,這是 OEM 不能控制的目前的在分時(shí),研究工作涉及這些確認值。
確保Windows CE的實(shí)時(shí)操作
兩種不同途徑被用來(lái)確保Windows CE操作:
- 由Windows CE開(kāi)發(fā)組進(jìn)行內部的檢查或分析內核代碼,
- OEM和ISV(獨立軟件銷(xiāo)售商)利用一些將在未來(lái)的Windows CE版本嵌入式工具包(for VCFT)提供工具來(lái)確保特定配置。
Windows CE關(guān)于VC 的嵌入工具包包括以下工具:
- (一個(gè)對于分時(shí)研究的內核的工具版本和Intrtinrt.ext應用軟件來(lái)觀(guān)察,中斷過(guò)程的最大、最小、平均時(shí)間。
- 微軟也能開(kāi)發(fā)其它的針對顧客需要的分時(shí)工具。
Windows CE開(kāi)發(fā)組,已經(jīng)檢查了內核代碼以證實(shí)它能由最差的情況時(shí)間表征,它是獨立于系統對象數目的。
為了利用這個(gè)檢查,內核被表征成一套KCALLS或系統調用,在內核關(guān)閉優(yōu)先權是它們是內核程序,并且不允許其它的線(xiàn)程運行,最差事件時(shí)間,此時(shí),實(shí)時(shí)進(jìn)程、標止運行,它能在內核中表征成最差事件KCALL時(shí)間(注意:這些時(shí)間不影響ISRS,只影響線(xiàn)程,例如ISTS)。
開(kāi)發(fā)組通過(guò)檢查發(fā)現這沒(méi)有非持久的循環(huán)在KCALLS,這意味著(zhù):并所有的KCALLS能夠表示成單向分支,代碼路徑,并確保通過(guò)KCALL并獨立于輸入參數發(fā)現最差事件時(shí)間成為可能。
查找實(shí)際的最差事件時(shí)間包括使用In strum ented kemal,這僅是一個(gè)內核版本,它在設定應用環(huán)境后編輯使用,KCALL_PROFICE=1,以保證額外的分時(shí)功能,這個(gè)instrumented kemel 與debug kemel不同,Instrument ted是為一個(gè)零售的內核使用,它用來(lái)獲得分時(shí)值,這常對于裝運產(chǎn)品常常諱之莫深,在retail kernal和instrumented kernel唯一區別是它的裝備。
Instrumentted kernel記錄所有的KCALL時(shí)間,這些值,包括最小、最大和平均時(shí)間,并能夠通過(guò)調用專(zhuān)用的API函數Dum Pk call profile打印到調試接口,Instrumented kernel通常運行在強狀態(tài)下,然后調用Dumpkcall prefile來(lái)獲得時(shí)間。
中斷測試應用軟件Intrtime.exe,在Windows CE標準版本收集中斷分時(shí)延遲信息,應用軟件在測試中控制系統時(shí)間。因此,當系統需要時(shí)間控制器時(shí),是不合適使用的。例如,此應用程序不能與內核instrumented版本一起使用,因為它也需要時(shí)間控制。
在Windows CE 2版(Beta版)測試響應,
Intertime應用軟件在odoSH3參考平臺上運行1000次中斷測試,內部運行58.98Mhz,外部為14.745Mhz外部頻率,這個(gè)測試在一個(gè)標準的H/PC配置,它包括Windows CE所有模式和組合。僅有主操作系統進(jìn)程進(jìn)行(NK.exe, Filesys.exe, Gwes.exe, Device. EXE, Shell.EXE和Explover.EXE),在測試中無(wú)用戶(hù)初始中斷(觸摸屏、鍵盤(pán)或其它應用),應用軟件可報告下面的ISR和IST開(kāi)始、最小和最大時(shí)間:
響應 最大、最小值(1000次測試)
ISR開(kāi)始 1.3-7.5微秒
IST開(kāi)始 93-275微秒
大多數測試結果,分布在最小值數值附近,當測試ISR開(kāi)始時(shí)間時(shí),最小值1.3和1.6微秒,出現了293和549次,共占測試的84%,類(lèi)似的超過(guò)90%的(1000次中923)start-of-IST測試出最大響應為102微秒或少一些。
Intertime應用軟件也使用一個(gè)用戶(hù)指定數目的系統對象來(lái)測試ISR和IST開(kāi)始時(shí)間。雖然工作十分初級,但它驗證了ISR開(kāi)始時(shí)間與系統對象數目無(wú)關(guān),測試設為1000次(除了特別更改)并且線(xiàn)程優(yōu)先權為5或7。
ISR開(kāi)始最大值 | 后臺線(xiàn)程、數目(每個(gè)線(xiàn)程一個(gè)事件) | 優(yōu)先級 |
8.4 | 0 | 7 |
8.6 | 5(注:僅100次) | 7 |
9.0 | 10(注:僅100次) | 5 |
14.8 | 10 | 5 |
19.2 | 10 | 5 |
17.0 | 10 | 7 |
12.8 | 20 | 5 |
11.0 | 20(注:僅100次) | 7 |
10.0 | 50 | 7 |
15.0 | 100 | 5 |
15.6 | 100 | 7 |
這數值不是系統對象數目的函數,不同的值可能由于中斷出現時(shí)內核狀態(tài),開(kāi)發(fā)組目前正在研究以鑒定ISR開(kāi)始最差時(shí)間值。
由這些結果向回推,假定ISR開(kāi)始最小值代表最好情況。此時(shí),dISR_Current和Sum(dISR_Htgbor)為0,最小的value 1=ISR開(kāi)始值=1.3微秒,類(lèi)似的設定最好情況時(shí),Sum(dIST)和Sum(dISR)為0,Value最小值=.IST開(kāi)始值=93微秒,單從測驗結果看,它是不能確定,valume 1或value 2最大值。
附加的分時(shí)信息能夠由instrumented kernel 收集,對于一個(gè)最差情況在IST開(kāi)始前花費時(shí)間valume2,能由下列公式計算:
Value2=dkCall dNextThread
dKcall=.內核調用時(shí)間;當消除優(yōu)先級時(shí),花費在內核的一部分時(shí)間量。
DNextThread=Next.Thread內核調用時(shí)期?;ㄙM在IST中時(shí)間量。
實(shí)際上,在0級別線(xiàn)程調度要比Next Thread調用快,但此公式能估計出上限。
下面表格顯示了用instrumented Kernel進(jìn)行初步測試時(shí)最差事件結果,這些測試條件與Intrtime測試相同。
內核調用模型 | 最大值(ad-hoc.testing) |
最大時(shí)間值(所用內核調用) | 266微秒(Learecrite) |
Next Thread | 237微秒 |
總值 | 503微秒 |
Instrumented kernel顯示這些條件下value 2上限為500微秒。這個(gè)值為兩個(gè)最差事件總時(shí)間,遠遠超過(guò)了由Intritime應用程序得到的結果,也大于實(shí)際最差事件時(shí)間。例如:通過(guò)Nextthread調度一個(gè)優(yōu)先級為0的線(xiàn)程,不會(huì )導致最差事件,這意味著(zhù)500微秒是一個(gè)高于實(shí)際的最差事件值的保守值。
Intertime Utility對于從總體上觀(guān)察最差事件值十分有用,Instrumentted Kemel對于獲得可能最差事件的值,通過(guò)內核描繪出所有響應原因——一個(gè)IST在這些事件運行,但在內核非優(yōu)先部分運行執行時(shí),將受阻礙,系統的最差事件響應可由每一部分的最差事件總和計算。
注意本論文中所有測試結果均基于內部Windows CE的beta版,目前存在的操作系統和應用將繼續得到修正,并且進(jìn)行附加測試以獲得在不同操作條件下系統操作,這些數值將繼續被更新并出版,以反思目前的操作系統版本。
總結
微軟Windows CE內核設計以達到RTOS最小要求,以使Windows CE用在許多不同類(lèi)型的嵌入式和實(shí)時(shí)系統作為操作系統;
- Windows CE的多線(xiàn)程和優(yōu)先級,Windows CE支持個(gè)人線(xiàn)程優(yōu)先級;
- Windows CE支持優(yōu)先權繼承程序,以便調整優(yōu)銜級別以修改優(yōu)先權顛倒;
- Windows CE支持一個(gè)可預測的線(xiàn)程同步機理,包括等待對象,如互斥體關(guān)鍵部分,命名或未命名的事件對象,它基于線(xiàn)程優(yōu)先權排序。
Windows CE也支持與系統控制器的聯(lián)連: - OEM能夠控制類(lèi)由系統支持的中斷處理,即通過(guò)執行ISRS和ISTS,它可彌補中斷處理軟件;
- OEM完成在所有映射到中斷ID號的IRQS,并且它與中斷處理軟件相聯(lián)系(ISR和IST),描繪工具和應用軟件可以利用記錄處理中斷最大時(shí)間。
- 中斷響應是可預測和有限制的,當優(yōu)先權取消時(shí),上限即為花費在內核中時(shí)間總量,匹配轉化時(shí)間,和由OEM執行的ISRS和ISTS申請處理時(shí)間。
- 每個(gè)系統調用的時(shí)間是可預測的,并與系統對象數目無(wú)關(guān),
利用 instrumentted kernel系統調用時(shí)間能夠保證Windows CE內核設計保證中斷和它們相關(guān)線(xiàn)
linux相關(guān)文章:linux教程
評論