電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 2132|回復(fù): 0
收起左側(cè)

嵌入式培訓那里好_一種提高構(gòu)件化嵌入式操作系統(tǒng)性能的方案

[復(fù)制鏈接]

2607

主題

2607

帖子

7472

積分

高級會員

Rank: 5Rank: 5

積分
7472
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-7-31 15:23:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
嵌入式培訓那里好_一種提高構(gòu)件化嵌入式操作系統(tǒng)性能的方案,   

摘要:本文分析了現(xiàn)有構(gòu)件化嵌入式操作系統(tǒng)所用調(diào)度算法存在的缺點,提出搶占閾值調(diào)度算法是更為合適的算法。通過仿真實驗比較搶占閾值調(diào)度算法、非搶占式調(diào)度算法和FIFO(First-In-First-Out)調(diào)度算法的性能,證明了上述結(jié)論。通過分析現(xiàn)有嵌入式系統(tǒng)構(gòu)件模型的特點,提出了一種構(gòu)件模型以及將構(gòu)件映射成任務(wù)的方式,還提出了一種設(shè)計方法。整個方案能提高構(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)件。實際嵌入式實時系統(tǒng)的處理器資源和內(nèi)存資源是有限的,同時系統(tǒng)還有實時性需求。另外,當前成熟的實時調(diào)度算法都是基于任務(wù)模型分析系統(tǒng)的可調(diào)度性。所以,在嵌入式實時系統(tǒng)中應(yīng)用構(gòu)件技術(shù)時,還需要研究如何從時間(運行)的角度將構(gòu)件映射成任務(wù),以及為底層構(gòu)件化嵌入式實時操作系統(tǒng)選擇合適的調(diào)度算法。

  本文首先分析了現(xiàn)有構(gòu)件化嵌入式操作系統(tǒng)的特點,著重分析了TinyOS[1]的調(diào)度內(nèi)核。通過仿真實驗比較了搶占閾值(簡稱PT)調(diào)度算法[2]、非搶占式(簡稱NP)調(diào)度算法和FIFO調(diào)度方式的性能,證明了當任務(wù)之間無共享資源時,搶占閾值調(diào)度算法適合作為構(gòu)件化嵌入式操作系統(tǒng)的實時調(diào)度算法。之后,本文論述了嵌入式實時系統(tǒng)對構(gòu)件模型的需求,提出了一種構(gòu)件模型。通過分析比較現(xiàn)有的映射方式,提出了一個將構(gòu)件映射成任務(wù)的方式和一種設(shè)計方法。

2適合構(gòu)件化嵌入式操作系統(tǒng)的調(diào)度算法

  首先定義單處理器靜態(tài)優(yōu)先級實時系統(tǒng)的任務(wù)模型,定義G={t1,t2,…,tn}為一個包含n個相互獨立的周期性或者偶發(fā)性(sporadic)任務(wù)的集合,集合中的任務(wù)用ti=(Ti,Ci,Di)(i=1,2,…n)表示,其中,Ti表示ti的周期(對于偶發(fā)性任務(wù)就是最小到達間隔),Ci表示ti的最壞情況執(zhí)行時間,Di表示ti的相對截止期。我們假定大的數(shù)值表示高的優(yōu)先級,對于集合G,最小的優(yōu)先級是1,最大的優(yōu)先級是n。周期任務(wù)的一次執(zhí)行,稱作任務(wù)的一個實例。任務(wù)實例從進入系統(tǒng)到結(jié)束執(zhí)行所用的時間稱作實例的響應(yīng)時間(responsetime)。在一個系統(tǒng)的整個運行過程中,任務(wù)的最壞情況響應(yīng)時間等于其所有實例中最大的響應(yīng)時間。

  2.1TinyOS存在的問題

  當前的構(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)實時性差。Echidna與TinyOS一樣使用FIFO的方式調(diào)度任務(wù),因此存在相同的缺點。

  V.Subramonian等人在文獻[6]中研究了FIFO調(diào)度方式對TinyOS系統(tǒng)性能的影響。在使用TinyOS的系統(tǒng)中,當需要處理的數(shù)據(jù)量較大時,如果超過其計算能力,則會出現(xiàn)過載(overload)現(xiàn)象。處理過載的較好方式一般是保證關(guān)鍵任務(wù)的執(zhí)行,放棄非關(guān)鍵任務(wù)。而FIFO調(diào)度方式不能做到這一點,因為這種方式無法區(qū)分關(guān)鍵任務(wù)和非關(guān)鍵任務(wù)。下面通過分析TinyOS對通信數(shù)據(jù)包的處理來說明其缺點。

  發(fā)送數(shù)據(jù)包由應(yīng)用層產(chǎn)生并傳遞給底層發(fā)送構(gòu)件,當成功發(fā)送后,后者會觸發(fā)一個任務(wù)實例來通知應(yīng)用層發(fā)送完畢。應(yīng)用層在收到這一事件之前將一直等待,不能繼續(xù)發(fā)送數(shù)據(jù)。即,只有通知任務(wù)實例得到執(zhí)行,應(yīng)用層才能繼續(xù)發(fā)送數(shù)據(jù)。如果TinyOS當前需要處理的數(shù)據(jù)量較大,有較多的任務(wù)實例需要執(zhí)行,則通知任務(wù)實例會排在FIFO隊列的最后,等到前面的任務(wù)實例執(zhí)行完才得以執(zhí)行。這樣就延緩了發(fā)送數(shù)據(jù)的過程,降低了通信數(shù)據(jù)包的吞吐量。在極端情況下,其它任務(wù)實例會將整個FIFO隊列占滿,通知任務(wù)實例到達時會被調(diào)度內(nèi)核放棄,造成應(yīng)用層發(fā)送數(shù)據(jù)的終止。從無線信道接收數(shù)據(jù)時同樣會出現(xiàn)這種情況。

  文獻[6]中提出了一種改進措施,給任務(wù)分配優(yōu)先級,將調(diào)度內(nèi)核升級為優(yōu)先級驅(qū)動的非搶占式調(diào)度。這樣與FIFO調(diào)度方式相比,能提高任務(wù)集合的可調(diào)度性,但仍會出現(xiàn)任務(wù)集合不可調(diào)度的情況。

  2.2搶占閾值調(diào)度算法適合構(gòu)件化嵌入式操作系統(tǒng)

  利用搶占閾值進行任務(wù)調(diào)度時,不但給集合G中的任務(wù)ti分配任務(wù)優(yōu)先級pi
回復(fù)

使用道具 舉報

發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表