<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式微內核實(shí)時(shí)操作系統分析與測試

嵌入式微內核實(shí)時(shí)操作系統分析與測試

作者: 時(shí)間:2004-12-09 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:介紹的體系結構;針對Wolf,設計一套微實(shí)現方案。在Wolf操作系統支持下,已產(chǎn)業(yè)化的閱讀不耗電電子書(shū)(eBook)驗證了Wolf操作系統的可靠性。

關(guān)鍵詞:嵌入式操作系統ERTOS Wolf 軟件 eBook

1 嵌入式操作系統概述

嵌入式實(shí)時(shí)操作系統(ERTOS)是操作系統研究的一個(gè)重要分支,它與一般商用多任務(wù)OS,如UNIX,Windows等,最大的不同之處在于:商用多任務(wù)OS的目的是追求系統資源最大利用率和公平對待所有的系統請求;而ERTPS追求的是實(shí)時(shí)性、可確定性、可靠性。

自20世紀90年代以來(lái),ERTOS發(fā)展迅速。國外著(zhù)名商用EPTOS有:Wind River公司的VxWorks、IS(Integrated Systems)公司(2000年已被Wind River公司合并)的pSOS、AC(Accelerated Technology)公司的Nucleus等等。國外ERTOS很多,大多是針對不同應用的專(zhuān)用ERTOS或通用ERTOS。

與傳統的嵌入式系統軟件開(kāi)發(fā)模式相比,雖然ERTOS會(huì )要求一些額外的開(kāi)銷(xiāo),但可以由現代微控制器的高速度、大存儲器以及產(chǎn)品提前進(jìn)入市場(chǎng)的優(yōu)勢來(lái)彌補。優(yōu)秀的ERTOS可以對幾十個(gè)系列的嵌入式處理器MPU、微控制器MCU提供API接口。在此基礎上,可以編定出各川硬件驅動(dòng)程序、產(chǎn)品庫函數,與通用性的應用程序一起作為產(chǎn)品銷(xiāo)售。

2 ERTOS――Wolf

嵌入式實(shí)時(shí)操作系統產(chǎn)品Wolf(南開(kāi)津科ERTOS)是一個(gè)開(kāi)放式的微內核實(shí)時(shí)操作系統。其基本設計思想是:

*低功耗(具有間歇式工作機制,支持哈偶結構);

*支持尖端智能輸入/輸出設備;

*支持微型大容量存儲卡(SM卡、SD卡等);

*本質(zhì)安全,支持信息版權及安全保護;

*為第三方提供產(chǎn)品級的SDK。

具有以下特點(diǎn):

*微內核結構;

*支持多種CPU產(chǎn)品;

*基于優(yōu)先級的搶占式調度和輪轉調度相結合的多任務(wù)調度;

*極小的內存開(kāi)銷(xiāo);

*高可用性、可靠性。

2.1 微內核體系結構

微內核體系結構是相對層次內核體系結構而言的。層次操作系統體系結構如圖1(a)所示,大部分或全部層次功能由內核實(shí)現,所有的接口功能只與相鄰層有關(guān),系統和應用獨立,但其每一功能層的變化都會(huì )影響整個(gè)系統,層間安全性低。微內核體系結構如圖1(b)所示,其基本思想是將原來(lái)屬于傳統如圖1(b)所示,其基本思想是將原來(lái)屬于傳統操作系統內核的一些功能和服務(wù)從內核中分出,以子系統(組件)的形式與內核或其它子系統相互作用。組件功能以服務(wù)進(jìn)程的方式通過(guò)消息與微內核和其它組件相互通信來(lái)完成。微內核的主要功能就是消息交換:確認消息、在組件間傳送消息及準許對硬件操作。微內核結構的主要優(yōu)點(diǎn)是:系統具有統一的接口,擴展性、可靠性及支持分布式系統。

Wolf是一個(gè)具有微內核結構的嵌入式操作系統,它由一個(gè)實(shí)時(shí)多任務(wù)內核和多個(gè)組件的集合組成。軟件組件都是獨立的標準構件塊,可以不用變更地從一個(gè)應用程序移到另一個(gè)應用程序。Wolf體系結構如圖2所示。

2.2 微內核剖析

Wolf多任務(wù)調度是動(dòng)態(tài)基于消息觸發(fā)調度機制,任務(wù)切換由臨時(shí)事件驅動(dòng),任務(wù)間是內部同步,不同的任務(wù)能夠異步招待。Wolf內核負責維護系統中的所有任務(wù)的當前狀態(tài),所有任務(wù)具有以下四種狀態(tài)之一:

*就緒態(tài)(Ready),縮寫(xiě)為R。一個(gè)就緒態(tài)任務(wù)是可運行的,等待高優(yōu)先級的任務(wù)釋放CPU。

*運行態(tài)(Run),縮寫(xiě)為E。一個(gè)運行態(tài)的任務(wù)是一個(gè)正在使用CPU的就緒任務(wù)。任何時(shí)刻有且只有一個(gè)運行著(zhù)的任務(wù)。

*阻塞態(tài)(Blocked),縮寫(xiě)為B。一個(gè)任務(wù)被阻塞是由于任務(wù)自身的多個(gè)活動(dòng)的必要手段。一個(gè)任務(wù)不能從就緒態(tài)到阻塞態(tài)。

*刮起態(tài)(Suspend)。一個(gè)掛起態(tài)的任務(wù)不能執行,主要用于調試。

*任務(wù)調試程序維護1個(gè)或多個(gè)跟蹤每個(gè)任務(wù)狀態(tài)的內部列表。它有一個(gè)就緒列表和每個(gè)(任務(wù)正在等待的)同步對象的一個(gè)單獨受阻列表。就緒隊列前頭的任務(wù)是下一個(gè)要運行的任務(wù)。在受阻列表中的任何任務(wù)都被掛起,每當受阻列表中的一個(gè)任務(wù)等待的事情發(fā)生時(shí),該任務(wù)就從受阻列表中被刪除,并被放到就緒列表中等待執行、如圖3所示。

(1)多任務(wù)調度

任務(wù)調度是指根據一定的約束規定,將CPU分配給符合條件的任務(wù)使用。約束規則又稱(chēng)為調度算法。Wolf內核采用多種調度算法分配CPU給處于Ready態(tài)(就緒態(tài))的任務(wù)。默認基于優(yōu)先級的搶占式調度算法,也支持基于時(shí)間片的輪轉(Round-Robin)調度算法。在嵌入式系統實(shí)時(shí)應用中,不是每次搶占都是合理的,非期待的搶占會(huì )導致系統出現無(wú)法預料的情況,Woif提供允許和禁止調度的功能調用實(shí)現禁止搶占機制。

(2)任務(wù)通信、同步、互斥機制

任務(wù)間通信機制是提供多任務(wù)間相互同步和通信,以協(xié)調獨立任務(wù)之間活動(dòng)的機制。

①共享內存,提供數據共享。Woif采用簡(jiǎn)單快速的禁止中斷手段保證共享數據被互斥訪(fǎng)問(wèn)②消息隊列實(shí)現一CPU內多任務(wù)間通信和同步。Woif提供消息隊列函數庫創(chuàng )建、刪除、發(fā)送消息,消息隊列是動(dòng)態(tài)建立的抽象對象,不綁定于任務(wù)一個(gè)任務(wù)。

3 微內核設計方案

設計嵌入式操作系統軟件測試方案時(shí),我們根據系統的基本思想,定用判定表、功能矩陣將其劃分成狀態(tài)測試、系統調用功能測試。

(1)多任務(wù)狀態(tài)測試

下面運用判定表設計狀態(tài)轉移測試用例。首先確定狀態(tài)轉移活動(dòng)(5類(lèi)活動(dòng)):

①運行態(tài)到阻塞態(tài)E→B;

②阻塞態(tài)到就緒態(tài)B→R;

③阻塞態(tài)到運行態(tài)B→E;

④就緒態(tài)到就緒態(tài)E→R。

⑤執行態(tài)到就緒態(tài)E→R。

然后列出不同活動(dòng)必須遵守的狀態(tài)轉換規則并編號。這里編號形式定義為:具體活動(dòng)編號+數字序列編號。例如:用轉換規則編號③2,表明該規則是活動(dòng)3必須遵守的第2條規則。

以下是部分轉換規則。

◇一個(gè)運行態(tài)的任務(wù)E變成阻塞態(tài)B(E→B):

①,它從一個(gè)空消息隊列中請求一個(gè)消息;或者②,它等待一個(gè)不會(huì )即將發(fā)生的事件條件;或者③,它請求一個(gè)當前不能提供的信號量標志;或者④,它請求一段目前不能提供的內存;或者⑤,它暫中止一個(gè)時(shí)間段或直到一個(gè)特殊的時(shí)刻。

◇一個(gè)阻塞態(tài)的任務(wù)B變成就緒態(tài)R(B→R):

①,B是消息等待隊列中的第一個(gè)任務(wù),它等待的消息來(lái)到消息隊列中;或者②,一個(gè)事件發(fā)送給了B,滿(mǎn)足了它一直等待的事件的條件;或者③,一個(gè)信號量標志被返回,B是等待隊列中的第一個(gè);或者④,返還的內存區允許分配給B;或者⑤,B一直在超時(shí)等待一個(gè)事件、消息、信號量或一個(gè)內存段(當超過(guò)時(shí)間間隔)。

◇一個(gè)阻塞態(tài)的任務(wù)B變成運行態(tài)(B→E):

任何一個(gè)(B→R)任務(wù)條件滿(mǎn)足,該任務(wù)運行優(yōu)先級就高于運行態(tài)任務(wù),這個(gè)運行態(tài)任務(wù)是能被搶先的。

◇一個(gè)就緒態(tài)的任務(wù)R會(huì )變成運行態(tài)任務(wù)(R→E),在當前運行態(tài)任務(wù)是:

①阻塞;或者②,可搶占。R有較高的優(yōu)先級。

◇一個(gè)運行態(tài)的任務(wù)R會(huì )變成就緒態(tài)任務(wù)(E→R),當:

①任何一個(gè)阻塞狀態(tài)的任務(wù)B滿(mǎn)足了(E→R)的發(fā)生條件(由于當前E或一個(gè)ISR系統調用);或者②,滿(mǎn)足(R→E)的2至4條件中的任何一個(gè)條件發(fā)生。

最后,確定判定條件,建立判定表。這里有3個(gè)判定條件:當前狀態(tài)是E,或當前狀態(tài)是B,或當前狀態(tài)是R。如滿(mǎn)足對應規則,則填寫(xiě)“Y”,不滿(mǎn)足對應規則,則填寫(xiě)“N”。如果在判定條件的規則下,進(jìn)行的活動(dòng)正確,則用“√”確認,錯誤用“”確認,尚未測試用“□”確認,無(wú)關(guān)用“⊙”確認。

表1為任務(wù)狀態(tài)判定表(部分)。

表1 任務(wù)狀態(tài)判定表(部分)

條 件①1①2①3①4①5②1②2②3②4②5
當前狀態(tài)EYYYYYNNNNN
當前狀態(tài)BNNNNNYYYYY
當前狀態(tài)RNNNNNNNNNN
①E→B
②B→R
③B→E
④R→E
⑤E→R

表1顯示了測試活動(dòng)1和活動(dòng)2的正確性。其中滿(mǎn)足條件2的活動(dòng)有2個(gè),即活動(dòng)2和活動(dòng)5,但由于活動(dòng)5并支持對應的規則,所以結果用“”標示。

由表1可以看出,使用判定表明晰測試覆蓋,能保持測試的完備性和一致性。

(2)多任務(wù)功能測試

首先,Wolf的微內核功能,將其劃分成3個(gè)測試功能域:

①面向應用層的高級系統服務(wù)(調用)測試域。Wolf為應用層提供豐富的系統調用函數,將其細分為操作系統服務(wù)類(lèi)、內存服務(wù)類(lèi)、文件系統服務(wù)類(lèi)、I/O服務(wù)類(lèi)及調試平臺服務(wù)5類(lèi)。

②面向內核的多任務(wù)調度測試、任務(wù)通信測試及內存測試域。

③面向低層硬件的設備驅動(dòng)測試、時(shí)鐘測試、功耗測試域。

其次,將系統調用函數使用的數據類(lèi)型分類(lèi),如表2所列。經(jīng)過(guò)數據分類(lèi),使得上百個(gè)函數測試通過(guò)20多個(gè)數據類(lèi)型的測試來(lái)實(shí)現,。提高測試效率。測試提供的統計數字為最后的測試失敗率、覆蓋率提供依據。(N1,N2,N3,N4,N5,N6分別代表測試的次數)

表2 系統調用數據類(lèi)型分類(lèi)

數據類(lèi)型函數調用的次數測試用例測試的個(gè)數測試域
①StringN1N4應用層
②BufferN2N5內核層
③IntegerN3N6應用層
    

結束語(yǔ)

本文在嵌入內核操作系統Wolf測試過(guò)程中設計出有效的測試方案和方法,取得良好的效果。Wolf微內核操作系統研制成功以來(lái),能夠支持多種便攜式信息處理設備,例如已產(chǎn)業(yè)化的閱讀不耗電電子書(shū)(eBook)。

Wolf作為電子閱讀應用軟件的開(kāi)發(fā)和數字圖書(shū)館閱讀終端產(chǎn)品開(kāi)發(fā)的有利支持系統,與北大方正Apabi電子書(shū)籍網(wǎng)絡(luò )出版平臺系統及電子出版業(yè)相結合,帶給人們一個(gè)便攜式閱讀電子書(shū)籍的新時(shí)代。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>