色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          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ò) 收藏

          例如,如果一個(gè)線程在最高優(yōu)先權(quán)運(yùn)行試圖蕕取由低級(jí)優(yōu)先權(quán)占有的互斥體,低級(jí)優(yōu)先權(quán)的線程變成高級(jí)優(yōu)先權(quán),并且運(yùn)行直到它釋放互斥體。優(yōu)先權(quán)倒置適用于的所有線程。例如,甚至在優(yōu)先級(jí)別1運(yùn)行的內(nèi)核線程能轉(zhuǎn)成級(jí)別0,如果優(yōu)先級(jí)0線程運(yùn)行內(nèi)存分頁(yè)代碼,將引起塊失誤。

          本文引用地址:http://cafeforensic.com/article/149161.htm

          基于優(yōu)先級(jí)的多任務(wù)設(shè)計(jì),保證運(yùn)行在最低級(jí)的線程在一個(gè)預(yù)所知時(shí)間段執(zhí)行。本論文在后面討論設(shè)定響應(yīng),對(duì)于指定的平臺(tái)和公式,并由其它的平臺(tái)獲取數(shù)字。在DAK和SDK的工具,顯示了線程狀態(tài)和優(yōu)先級(jí)別,并描繪指定操作輪廓。

          線程同步

          必須保證進(jìn)程和線程同步,例如,如果應(yīng)用的一部分在另一部分獲得最多當(dāng)前數(shù)據(jù)前即完成,此應(yīng)用的管理進(jìn)程可能不穩(wěn)定,同步將確保在應(yīng)用線程間交換正確。

          如同其它的操作系統(tǒng)一樣,為線程同步提供了一個(gè)豐富的“等待對(duì)象”,這包括關(guān)鍵部門(mén)、事件、互斥體,些等待對(duì)象,允許一個(gè)線程減緩它的運(yùn)行并且等待直到指定事件發(fā)生。

          將互斥體、關(guān)鍵部分、事件請(qǐng)求按“先入先出,優(yōu)先級(jí)(FIFO)”順序排列:不同的先入先出順序序列定義成八個(gè)不同的優(yōu)先級(jí),在給定的優(yōu)稱(chēng)級(jí)的線程請(qǐng)求,將被放在優(yōu)先級(jí)列表末尾,當(dāng)優(yōu)先級(jí)倒置出現(xiàn)時(shí),調(diào)度程序調(diào)整這些序列。

          除了等待對(duì)象,Windows支持標(biāo)準(zhǔn)的Win32時(shí)間API函數(shù),這些來(lái)自?xún)?nèi)核的應(yīng)用,軟件中斷將獲得時(shí)間間隔,它被用來(lái)管理實(shí)時(shí)應(yīng)用。通過(guò)調(diào)用GetTickCont函數(shù),它能夠返回幾毫秒,線程能夠使用系統(tǒng)間隔時(shí)間。關(guān)于更詳細(xì)的分時(shí)信息,WindowsCE內(nèi)核也支持Win32API函數(shù)QueryPerformanreCounter和QueryPerFormanteFrequency。OEM必須為這些調(diào)用提供硬件和軟件支持,它提供一個(gè)較高的時(shí)間分辨力和OAL界面其它方面。

          其它方面考慮

          WindowsCE提供了一個(gè)重要的存儲(chǔ)系統(tǒng),例如,當(dāng)目前某些運(yùn)行WindowsCE的平臺(tái)提供4MB的物理內(nèi)存,WindowsCE支持一個(gè)重要的2GB的地址空間,每個(gè)進(jìn)程聯(lián)接在它自己的32MB物理空間上,當(dāng)它需要產(chǎn)生內(nèi)存分頁(yè)中斷(這可能影響線程執(zhí)行時(shí)間),物理內(nèi)存進(jìn)行線程代碼或數(shù)據(jù)內(nèi)存分頁(yè)。

          內(nèi)存分頁(yè)輸入輸出,將比實(shí)時(shí)進(jìn)程優(yōu)先級(jí)低。在實(shí)時(shí)進(jìn)程中內(nèi)存分頁(yè)仍可自由出現(xiàn),但這要確保后臺(tái)的實(shí)際內(nèi)存管理贏得實(shí)時(shí)系統(tǒng)優(yōu)先權(quán)。

          實(shí)時(shí)線程應(yīng)該鎖存在內(nèi)存中,以防止這些無(wú)關(guān)緊要的內(nèi)存分頁(yè)阻礙其運(yùn)行,它們可能會(huì)占用實(shí)際內(nèi)存管理系統(tǒng)。

          WindowsCE允許映射,這將陰止多個(gè)進(jìn)程共享同一物理內(nèi)存,結(jié)果將會(huì)導(dǎo)致協(xié)同進(jìn)程間或驅(qū)動(dòng)器與映射快速的數(shù)據(jù)傳送,內(nèi)存映射能夠戲劇性的增強(qiáng)實(shí)時(shí)操作。

          中斷處理:IRQSISRS和ISTS

          實(shí)時(shí)應(yīng)用被設(shè)立在指定的時(shí)間間隔內(nèi),對(duì)外部事件做出反應(yīng),實(shí)時(shí)應(yīng)用使用中斷做為一種確保外部事件由操作系統(tǒng)獲知的方式。在Windows中,內(nèi)核和OEM適應(yīng)層(OAL)被設(shè)定成使系統(tǒng)其它部分的中斷和調(diào)度最優(yōu)化。WindowsCE平衡操作,并通過(guò)把中斷過(guò)程分成兩部分而使執(zhí)行更加容易:它分為中斷服務(wù)程序(ISR)和中斷服務(wù)線程(IST)兩部分。

          每條硬件中斷申請(qǐng)線(IRQ),與一個(gè)ISR相連。當(dāng)中斷成立和中斷出現(xiàn)時(shí),內(nèi)核為此調(diào)用寄存的ISR,ISR為中斷處理的內(nèi)核模式部分盡可能短的保存。它首先將內(nèi)核放在適合的IST上。

          ISR執(zhí)行它的最小處理并返回一個(gè)ID號(hào)到內(nèi)核,內(nèi)核檢查返回的中斷ID號(hào),并設(shè)置相關(guān)事件,中斷服務(wù)線程等待事件。當(dāng)內(nèi)核設(shè)置事件時(shí),IST停止等待并開(kāi)始執(zhí)行,附加的中斷進(jìn)程,中斷處理大部分實(shí)際上出現(xiàn)在IST中,兩個(gè)最高的線程優(yōu)先權(quán)(級(jí)別0和1),通常指定為ISTS,保證這些線程運(yùn)行得足夠快。

          正如前面所說(shuō),處在最高級(jí)的ISTS不能被其它的線程占用,這些線程持續(xù)執(zhí)行直到它們截止或放棄。

          WindowsCE不能支持群體中斷,這就意味著當(dāng)以前一個(gè)中斷處理中,另一個(gè)不同接受服務(wù),也就是當(dāng)內(nèi)核位于ISR時(shí)如果中斷出現(xiàn),在為新的IRQ開(kāi)始ISR前它將一直執(zhí)行直到ISR結(jié)束,這將引起硬件中斷和ISR開(kāi)始之間的延遲,拖延和響應(yīng)時(shí)間中斷響應(yīng)。

          中斷響應(yīng)

          本論文中,IntervuptLatency詞組主要指的是較件中斷,處理響應(yīng),也即是從處部中斷到達(dá)處理器到中斷開(kāi)始處理間的時(shí)間。

          WindowsCE中斷響應(yīng)時(shí)間是針對(duì)鎖存在內(nèi)存上的線程(當(dāng)內(nèi)存響應(yīng)不存在時(shí))。這使得計(jì)算最差事件響應(yīng)成為可能——中斷服務(wù)程序(ISR)開(kāi)始和中斷服務(wù)線程(IST)開(kāi)始D的總時(shí)間,直到中斷處理的總時(shí)間能夠通ISR和IST中所需時(shí)間計(jì)算決定。

          ISR響應(yīng)通用公式定義如下:

          ISR開(kāi)始時(shí)間=value1+dISR_Current+sum(dISR_Higher)

          value1=由內(nèi)核處理過(guò)程獲得響應(yīng)值

          dISR_Current=中斷到達(dá)時(shí)程序中ISR持續(xù)時(shí)間。這個(gè)值范圍由0到系統(tǒng)中最長(zhǎng)的ISR持續(xù)時(shí)間

          sum(dISR_Higher)=所有在ISR開(kāi)始前的較高級(jí)ISRS持續(xù)時(shí)間總和,即在時(shí)間vahe1+dISR-cumeneu間到達(dá)的中斷

          例如,考慮一個(gè)擁有關(guān)鍵優(yōu)先權(quán)ISR的嵌入式系統(tǒng),因?yàn)镮SR被設(shè)成最高級(jí),這有樣ISRSdISR-Higher值為0。當(dāng)沒(méi)有其它ISRS最低響應(yīng),在程序中,即為value1最低響應(yīng)即為value1加系統(tǒng)中最長(zhǎng)ISR周期,當(dāng)中斷到達(dá)時(shí),正是系統(tǒng)中最長(zhǎng)的ISR開(kāi)始執(zhí)行。

          IST響應(yīng)周期定義如下:

          IST開(kāi)始時(shí)間=value2+sum(dIST)+sum(dISR)

          value2=由內(nèi)核處理的響應(yīng)值

          sum(dIST)=所有的出現(xiàn)在ISR和IST,開(kāi)始的優(yōu)先級(jí)ISTS和線程上下文轉(zhuǎn)換時(shí)間總和。

          sum(dISR)=在中斷(?)ISR和它的IST之間運(yùn)行的其它ISRS持續(xù)時(shí)間總和。

          最簡(jiǎn)單的例子——具有一個(gè)關(guān)鍵級(jí)ISR和一個(gè)關(guān)鍵級(jí)線程(無(wú)其它0優(yōu)先級(jí)的線程)的嵌入式系統(tǒng)——沒(méi)有其它的ISTS能夠在ISR和IST之間中斷,然而在關(guān)鍵級(jí)的ISR和它相關(guān)的IST開(kāi)始間其它的ISRS能被處理。

          因?yàn)镮SRS一旦能夠獲得,即可被處理,很容易想象成病態(tài)情況,涉及產(chǎn)生一個(gè)持續(xù)的ISRS流,從而產(chǎn)生不確定的推遲。IST的開(kāi)始不可能出現(xiàn),因?yàn)镺EM對(duì)系統(tǒng)中的中斷完成控制。因?yàn)镺EM(原始設(shè)備制造商)為特定操作系統(tǒng)設(shè)計(jì)傳統(tǒng)WindowsCE版本。OCM利用目標(biāo)操作環(huán)境限制使系統(tǒng)設(shè)計(jì)最佳化。

          為減少響應(yīng)時(shí)間,OEM控制ISR和IST處理時(shí)間中斷優(yōu)先級(jí)線程優(yōu)先級(jí)。公式中的value1和walue2代表,WindowsCE內(nèi)核中處理時(shí)間,這是OEM不能控制的目前的在分時(shí),研究工作涉及這些確認(rèn)值。



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉