|
嵌入式培訓(xùn)那里好_一種提高構(gòu)件化嵌入式操作系統(tǒng)性能的方案,
摘要:本文分析了現(xiàn)有構(gòu)件化嵌入式操作系統(tǒng)所用調(diào)度算法存在的缺點(diǎn),提出搶占閾值調(diào)度算法是更為合適的算法。通過仿真實(shí)驗(yàn)比較搶占閾值調(diào)度算法、非搶占式調(diào)度算法和FIFO(First-In-First-Out)調(diào)度算法的性能,證明了上述結(jié)論。通過分析現(xiàn)有嵌入式系統(tǒng)構(gòu)件模型的特點(diǎn),提出了一種構(gòu)件模型以及將構(gòu)件映射成任務(wù)的方式,還提出了一種設(shè)計(jì)方法。整個(gè)方案能提高構(gòu)件化嵌入式操作系統(tǒng)的性能。
關(guān)鍵詞:構(gòu)件化嵌入式操作系統(tǒng);搶占閾值調(diào)度;FIFO調(diào)度;構(gòu)件模型
1前言
如何將構(gòu)件技術(shù)成功地應(yīng)用到嵌入式操作系統(tǒng)開發(fā)中得到越來越多的重視,F(xiàn)有的工作大部分著重于從結(jié)構(gòu)的角度分解系統(tǒng)成若干構(gòu)件,并重用構(gòu)件。實(shí)際嵌入式實(shí)時(shí)系統(tǒng)的處理器資源和內(nèi)存資源是有限的,同時(shí)系統(tǒng)還有實(shí)時(shí)性需求。另外,當(dāng)前成熟的實(shí)時(shí)調(diào)度算法都是基于任務(wù)模型分析系統(tǒng)的可調(diào)度性。所以,在嵌入式實(shí)時(shí)系統(tǒng)中應(yīng)用構(gòu)件技術(shù)時(shí),還需要研究如何從時(shí)間(運(yùn)行)的角度將構(gòu)件映射成任務(wù),以及為底層構(gòu)件化嵌入式實(shí)時(shí)操作系統(tǒng)選擇合適的調(diào)度算法。
本文首先分析了現(xiàn)有構(gòu)件化嵌入式操作系統(tǒng)的特點(diǎn),著重分析了TinyOS[1]的調(diào)度內(nèi)核。通過仿真實(shí)驗(yàn)比較了搶占閾值(簡稱PT)調(diào)度算法[2]、非搶占式(簡稱NP)調(diào)度算法和FIFO調(diào)度方式的性能,證明了當(dāng)任務(wù)之間無共享資源時(shí),搶占閾值調(diào)度算法適合作為構(gòu)件化嵌入式操作系統(tǒng)的實(shí)時(shí)調(diào)度算法。之后,本文論述了嵌入式實(shí)時(shí)系統(tǒng)對構(gòu)件模型的需求,提出了一種構(gòu)件模型。通過分析比較現(xiàn)有的映射方式,提出了一個(gè)將構(gòu)件映射成任務(wù)的方式和一種設(shè)計(jì)方法。
2適合構(gòu)件化嵌入式操作系統(tǒng)的調(diào)度算法
首先定義單處理器靜態(tài)優(yōu)先級實(shí)時(shí)系統(tǒng)的任務(wù)模型,定義G={t1,t2,…,tn}為一個(gè)包含n個(gè)相互獨(dú)立的周期性或者偶發(fā)性(sporadic)任務(wù)的集合,集合中的任務(wù)用ti=(Ti,Ci,Di)(i=1,2,…n)表示,其中,Ti表示ti的周期(對于偶發(fā)性任務(wù)就是最小到達(dá)間隔),Ci表示ti的最壞情況執(zhí)行時(shí)間,Di表示ti的相對截止期。我們假定大的數(shù)值表示高的優(yōu)先級,對于集合G,最小的優(yōu)先級是1,最大的優(yōu)先級是n。周期任務(wù)的一次執(zhí)行,稱作任務(wù)的一個(gè)實(shí)例。任務(wù)實(shí)例從進(jìn)入系統(tǒng)到結(jié)束執(zhí)行所用的時(shí)間稱作實(shí)例的響應(yīng)時(shí)間(responsetime)。在一個(gè)系統(tǒng)的整個(gè)運(yùn)行過程中,任務(wù)的最壞情況響應(yīng)時(shí)間等于其所有實(shí)例中最大的響應(yīng)時(shí)間。
2.1TinyOS存在的問題
當(dāng)前的構(gòu)件化嵌入式操作系統(tǒng)主要有TinyOS和Echidna[5]兩種。TinyOS是為無線傳感器網(wǎng)絡(luò)(WirelessSensorNetwork,簡稱WSN)開發(fā)的構(gòu)件化嵌入式操作系統(tǒng),適用于內(nèi)存資源和處理能力有限,電池供電的嵌入式系統(tǒng)。其內(nèi)核支持兩級調(diào)度,任務(wù)按照FIFO的方式執(zhí)行,目的是減少對內(nèi)存的使用量,但造成系統(tǒng)實(shí)時(shí)性差。Echidna與TinyOS一樣使用FIFO的方式調(diào)度任務(wù),因此存在相同的缺點(diǎn)。
V.Subramonian等人在文獻(xiàn)[6]中研究了FIFO調(diào)度方式對TinyOS系統(tǒng)性能的影響。在使用TinyOS的系統(tǒng)中,當(dāng)需要處理的數(shù)據(jù)量較大時(shí),如果超過其計(jì)算能力,則會出現(xiàn)過載(overload)現(xiàn)象。處理過載的較好方式一般是保證關(guān)鍵任務(wù)的執(zhí)行,放棄非關(guān)鍵任務(wù)。而FIFO調(diào)度方式不能做到這一點(diǎn),因?yàn)檫@種方式無法區(qū)分關(guān)鍵任務(wù)和非關(guān)鍵任務(wù)。下面通過分析TinyOS對通信數(shù)據(jù)包的處理來說明其缺點(diǎn)。
發(fā)送數(shù)據(jù)包由應(yīng)用層產(chǎn)生并傳遞給底層發(fā)送構(gòu)件,當(dāng)成功發(fā)送后,后者會觸發(fā)一個(gè)任務(wù)實(shí)例來通知應(yīng)用層發(fā)送完畢。應(yīng)用層在收到這一事件之前將一直等待,不能繼續(xù)發(fā)送數(shù)據(jù)。即,只有通知任務(wù)實(shí)例得到執(zhí)行,應(yīng)用層才能繼續(xù)發(fā)送數(shù)據(jù)。如果TinyOS當(dāng)前需要處理的數(shù)據(jù)量較大,有較多的任務(wù)實(shí)例需要執(zhí)行,則通知任務(wù)實(shí)例會排在FIFO隊(duì)列的最后,等到前面的任務(wù)實(shí)例執(zhí)行完才得以執(zhí)行。這樣就延緩了發(fā)送數(shù)據(jù)的過程,降低了通信數(shù)據(jù)包的吞吐量。在極端情況下,其它任務(wù)實(shí)例會將整個(gè)FIFO隊(duì)列占滿,通知任務(wù)實(shí)例到達(dá)時(shí)會被調(diào)度內(nèi)核放棄,造成應(yīng)用層發(fā)送數(shù)據(jù)的終止。從無線信道接收數(shù)據(jù)時(shí)同樣會出現(xiàn)這種情況。
文獻(xiàn)[6]中提出了一種改進(jìn)措施,給任務(wù)分配優(yōu)先級,將調(diào)度內(nèi)核升級為優(yōu)先級驅(qū)動(dòng)的非搶占式調(diào)度。這樣與FIFO調(diào)度方式相比,能提高任務(wù)集合的可調(diào)度性,但仍會出現(xiàn)任務(wù)集合不可調(diào)度的情況。
2.2搶占閾值調(diào)度算法適合構(gòu)件化嵌入式操作系統(tǒng)
利用搶占閾值進(jìn)行任務(wù)調(diào)度時(shí),不但給集合G中的任務(wù)ti分配任務(wù)優(yōu)先級pi |
|