MS Windows CE的實時系統(tǒng)
介紹
MicrosoftWindowsCE
快速反應的嵌入式應用常常管理嚴格的時間反應。例如,制造過程控制,高速的數(shù)據(jù)采集設備,電訊交換設備,醫(yī)用設備,空中“有線”控制,武器發(fā)射裝備,空間航行和導航,實驗室,實驗控制,汽車發(fā)動機控制,機器人系統(tǒng)。
為保證這種功能,就意味著不僅需要計算精確性,還有結果的時間性,此種應用必須在指定的時間參數(shù)內(nèi)做出反應。
實時系統(tǒng)的廣義定義是“對任何外部刺激,計算機做出及時反應是至關重要的系統(tǒng)”,標準定義在Internetnewsgroupcorprealtimegroup中。實時定義為:一個實時系統(tǒng)它的計算正確性,不僅依靠于計算邏輯上的正確,還包括及時的產(chǎn)生結果。如果沒有達到系統(tǒng)時間限制條件,系統(tǒng)也是失效的。
搞清楚實時系統(tǒng)和實時操作系統(tǒng)(RTOS)的區(qū)別至關重要,實時系統(tǒng)代表所有系統(tǒng)組成設備——硬件,操作系統(tǒng)和應用——它需要達到系統(tǒng)的要求,實時操作系統(tǒng)(RTOS)只是整個實時系統(tǒng)的一個組成部分,它必須提供足夠的功能以確保整個實時系統(tǒng)達到要求。
同樣,搞清快速操作系統(tǒng)和實時操作系統(tǒng)之間區(qū)別,也很重要,對于一個RTOS雖然達到全面要求十分有用,但并不是它自己達到這種要求。Internetneusgronpcornp.realtime列舉了作為一個實時操作系統(tǒng),必須達到的要求:
OS(操作系統(tǒng))必須是多線程和優(yōu)先級之分。
OS必須支持線程優(yōu)先級。
一個優(yōu)先級繼承的系統(tǒng)必須存在。
OS必須支持可預測的線程,同步發(fā)送機理。
另外,OS的行為必須是可預測的,這意味實時系統(tǒng)的開發(fā)者必須對系統(tǒng)中斷級,系統(tǒng)調(diào)用和分時了如指掌:
必須知道OS和設備驅動器的中數(shù)據(jù)匹配最大時間。
設備驅動器用來處理一個中斷最大時間和關于這些驅動器的中斷申請信息必須清楚。
中斷響應(從中斷到運行時間),必須可預測并滿足功能要求。
每次系統(tǒng)調(diào)用時間必須可以預測,并且獨立于系統(tǒng)的對象數(shù)目。本篇論文論述了微軟WindowsCE操作系統(tǒng)是如何達到一個實時系統(tǒng)的要求,更有意義的是,WindowsCE保證一個時間的上限,它在收到中斷后開始一個實時的優(yōu)先級線程。本論文論述了對特定參考平臺的中數(shù)據(jù)響應時間,參考為有HinathiSH3的微處理器的“Odo”平臺。
MicrosoftWindowsCE
概論
微軟WindowsCE被設計成針對小型設備(它是典型的擁有有限內(nèi)存的無磁盤系統(tǒng))的通用操作系統(tǒng)。WindowsCE可以通過設計一層位于內(nèi)核和硬件之間代碼來用設定硬件平臺,這即是眾所周知的硬盤壓縮層(HAL),(在以前解釋時,這被稱為OEMC(原始設備制造)適應層,即OAL;內(nèi)核壓縮層,即KAL。以免與微軟的WindowsNT操作系統(tǒng)HAL混淆)
不象其它的微軟Windows操作系統(tǒng),WindowsCE并不是代表一個標準的相同的對所有平臺適用的軟件。為了足夠靈活以達到適應廣泛產(chǎn)品需求,WindowsCE采用標準模式,這就意味著,它能夠由一系列軟件模式做出選擇,從而使產(chǎn)品定制。另外,一些可利用模式也可作為其組成部分,這意味著這些模式能夠通過從一套可利用的組份做出選擇,從而成為標準模式,通過選擇,能夠達到系統(tǒng)要求的最小模式,OEM能夠減少存儲腳本和操作系統(tǒng)的運行。
WindowsCE關于VC++5.0開發(fā)系統(tǒng)嵌入式工具包,提供系統(tǒng)庫、工具、文本和樣本代碼,以使OEMS能夠對特定的硬件平臺使WindowsCE標準定制。嵌入式工具包也包括設備驅動包(DDK)和軟件開發(fā)包(SDK),DDK提供了關于寫驅動器的附加文本,SDK提供庫、頭文件、樣本代碼、文本以允許,開發(fā)者對基于WindowsCE的平臺進行寫操作。WindowsCE提供了相同的程序界面,以用來為其它的視窗操作系統(tǒng)開發(fā)功能,例如,WindowsCE版本1.01支持大約1000個微軟的Win32API函數(shù)的其中500個。這就意味著大量不同類的工具,第三方書籍,關于Win32開發(fā)者訓練教程,可以替代或為WindowsCE系統(tǒng)的開發(fā)者所用。
實時系統(tǒng)的開發(fā)者能夠使用,關于VDFF5.0的嵌入式工具包,以把操作系統(tǒng)轉移到特定的平臺,并為這個平臺開發(fā)附加設備驅動器和實時功能。
線程和線程優(yōu)先權級
WindowsCE是有優(yōu)先級的多任務操作系統(tǒng),它允許多重功能、進程,在相同時間系統(tǒng)中運行WindowsCE支持最大的32位同步進程。一個進程包括一個或多個線程,每個線程代表進程的一個獨立部分,一個線程被指定為進程的基本線程,進程也能創(chuàng)造一個未定數(shù)目的額外線程,額外線程實際數(shù)目,僅由可利用的系統(tǒng)資源限定。
WindowsCE利用基于優(yōu)先級的時間片演算法以安排線程的執(zhí)行,WindowsCE支持八個不同的優(yōu)先級,由0到7,0代表最高級,它在頭文件Winbasw.h中定義。
優(yōu)先級描述
0
(最高級)關鍵的線程優(yōu)先級
(最高優(yōu)先等級)
1最高線程優(yōu)先級
2高于通常的線程優(yōu)先級
3通常線程優(yōu)先級
4低于常規(guī)線程優(yōu)先級
5最低線程優(yōu)先級
6高于IDLE的線程優(yōu)先級
7
(最低)IDLE線程優(yōu)先級
(最低優(yōu)先級)
級別0和1通常做為實時過程和設備驅動器,級別2-4做為線程和通常功能,級別5-7做為是低于其它功能級別,注意級別6是目前狀態(tài)并有穩(wěn)定聯(lián)接。
優(yōu)先權唯一的取決于線程優(yōu)先級,擁有高級優(yōu)先權的線程安排優(yōu)先運行,同一優(yōu)先級的線程,以循環(huán)優(yōu)先先級方式運行,即每個線程接受定制的時間或時間片,定量時間默認值為25毫秒(WindowsCE2.0支持在MIPS平臺更改定量時間)。較低優(yōu)先權的線程,要直到較高級線程完成之后再運行,也即直到他們或者放棄或停止。一個重要的例外是最高優(yōu)先級的線程(級別0,關鍵時間優(yōu)先級)不與其它的線程共享時間片,這些線程連續(xù)執(zhí)行直到他們完成。不象其它的微軟窗操作系統(tǒng),WindowsCE是固定不能改變,它不匹配基于這引進優(yōu)先級的中斷,他們能夠暫時改動,但僅能通過WindowsCE內(nèi)核以避免所謂的的“優(yōu)先權倒置”。
優(yōu)先權倒置指的是當它們同時競爭同一資源時,低優(yōu)先級的線程,阻礙了高優(yōu)先權線程對資源的利用。為了改正這種局面并解放較高優(yōu)先權的線程,WindowsCE允許低級優(yōu)先權繼承,嚴格的線程優(yōu)先權,并且運行較高優(yōu)先級直到它釋放所用資源。
標簽: Windows