<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è) > 嵌入式系統 > 設計應用 > 基于Petri網(wǎng)的嵌入式軟件組件的實(shí)時(shí)性研究

基于Petri網(wǎng)的嵌入式軟件組件的實(shí)時(shí)性研究

作者: 時(shí)間:2011-04-21 來(lái)源:網(wǎng)絡(luò ) 收藏

隨著(zhù)科技的發(fā)展,大多數的電子系統和產(chǎn)品含有特定的硬件器件和功能模塊,顯然這些系統是多種類(lèi)、嵌入式的。嵌入式的軟/硬件設計是一項復雜工作,為了滿(mǎn)足系統的可靠性、運行效果、內存受限等要求,除了需要實(shí)現功能需求外,非功能性的約束(Non-functional constraints)也是非常重要的。非功能性約束包括實(shí)時(shí)性、程序性能、穩定性、可靠性、安全性、內存限制、存儲空間限制等[1-2]。對于非功能性約束的考慮方法可以分為兩大類(lèi):面向過(guò)程(process-oriented)的方法和面向產(chǎn)品的方法(product-oriented)。面向過(guò)程的方法,指使用非功能性約束信息指導軟件的開(kāi)發(fā)過(guò)程。面向產(chǎn)品的方法,指在組件內部描述非功能性約束信息,并檢查組件構成的產(chǎn)品的非功能性約束信息判斷軟件是否滿(mǎn)足要求的非功能性約束。本文中使用面向產(chǎn)品的方法對嵌入式組件SECOM(Simple Embedded Component Object Model)的非功能性約束進(jìn)行分析,在組件內部采用Petri網(wǎng)方法描述非功能性約束信息。

1 時(shí)間Petri網(wǎng)

Petri網(wǎng)是一種可用圖形表示的組合,具有直觀(guān)、易懂和易用的優(yōu)點(diǎn),可用于模擬帶有并發(fā)性、異步性、分布式、非確定性、并行性等特性的系統。而用時(shí)間Petri網(wǎng)[3-4](簡(jiǎn)稱(chēng)時(shí)間網(wǎng)TPN)建立系統的動(dòng)態(tài),可進(jìn)一步將系統中事件從發(fā)生到結束所需的時(shí)間描述出來(lái)。

時(shí)間網(wǎng)TPN中表示事件的持續時(shí)間的方法有兩種:一種是將各事件的持續時(shí)間標在庫所的旁邊,表示庫所中產(chǎn)生的托肯要經(jīng)過(guò)一定的時(shí)間后才能參與網(wǎng)中的運行;另一種方法是將時(shí)間標注在變遷的旁邊,表示當該變遷具有發(fā)生條件時(shí)要延遲一段時(shí)間后才能發(fā)生,或該變遷發(fā)生后,立即從相應的輸入庫所中移走相應的托肯,但要延遲一段時(shí)間后才在相應的輸出庫所中產(chǎn)生相應的托肯[5-6]。在下面的時(shí)間P/T網(wǎng)定義中采用的是后一種方法。

定義1:當某一變遷的發(fā)生條件滿(mǎn)足時(shí),若該變遷要延遲一段時(shí)間后才從相應的輸入庫所中移走相應的托肯并得到發(fā)生后果,或該變遷發(fā)生后,立即從相應的輸入庫所中移走相應的托肯,但要延遲一段時(shí)間后才得到發(fā)生后果,則稱(chēng)這樣的變遷為時(shí)間變遷。

定義2:當某一變遷的發(fā)生條件滿(mǎn)足時(shí),若該變遷立即從相應的輸入庫所中移走相應的托肯,且立即得到發(fā)生后果,則稱(chēng)這樣的變遷為立即變遷。

在時(shí)間P/T網(wǎng)的圖形表示中約定,用矩形框表示時(shí)間變遷,用黑線(xiàn)表示立即變遷。下面是時(shí)間P/T網(wǎng)模型的形式化定義。

根據延遲時(shí)間是一個(gè)固定值還是一個(gè)區間值,TPN還可分為固定延遲時(shí)間P/T網(wǎng)和不固定延遲時(shí)間P/T網(wǎng)。在固定延遲時(shí)間P/T網(wǎng)中,對于任意的變遷t∈T1,都有一個(gè)非負的實(shí)數r與之相對應,使得變遷t的延遲時(shí)間為r。在不固定延遲時(shí)間P/T網(wǎng)中,對于任意的變遷t∈T1,都有一個(gè)對偶[Bcet,Wcet]與之相對應(Bcet≥0,Wcet≥0),使得若在a時(shí),t的發(fā)生條件成立,則t可在時(shí)間區間[a+Bcet,a+Wcet]內執行,即t有效時(shí),其相應的輸入庫所中的托肯將至少保留Bcet s,直至(a+Wcet) s時(shí)才移出,或t有效時(shí),其相應的輸入庫所中的托肯立即移出,但將至少保持Bcet s,直至(a+Wcet) s時(shí)才產(chǎn)生后繼標識,本文中將采用第一種方式。

本文引用地址:http://dyxdggzs.com/article/257883.htm

2 SECOM組件模型

基于高度可裁剪性、資源受限的特點(diǎn)和對當前現狀的分析[6],本文給出一種新的、基于源代碼復用的、精簡(jiǎn)的嵌入式組件模型SECOM。該組件模型包含以下元素:

(1)瘦組件:SECOM組件是設計、開(kāi)發(fā)、重用的單元,是程序的基本組成塊,是在完成基本功能前提下的極小化,所以稱(chēng)之為“瘦組件”。組件與接口相互獨立,是接口功能的具體實(shí)現者。組件之間通過(guò)接口通信,互相協(xié)作完成軟件功能。組件的定義是可遞歸的。

(2)簡(jiǎn)接口:接口用來(lái)定義功能函數,是一組相關(guān)函數的集合,分離了瘦組件的定義與實(shí)現,徹底消除了接口調用者和實(shí)現者之間的耦合關(guān)系,增強了信息封裝性。接口具有唯一性、不變性、繼承性和多態(tài)性。同一接口在不同組件內有不同的實(shí)現方式。接口分為兩類(lèi):①服務(wù)接口(Provide Interface),接口所在組件已經(jīng)實(shí)現了此接口類(lèi)型的功能,可以向組件外部提供服務(wù);②請求接口(Require Interface),接口所在組件內沒(méi)有實(shí)現此接口的功能,組件需要向外部請求此接口的實(shí)現。

(3)靈敏橋接器:橋接器完成接口之間的連接。根據現有條件的不同,采取不同的連接模式。連接模式有:直接連接(connecting),選擇連接(selecting)和代碼塊粘連(gluing)。接口之間的消息交換是通過(guò)一個(gè)橋接器連接兩個(gè)或更多的接口實(shí)例來(lái)實(shí)現[7-9]。組件模型類(lèi)圖如圖1所示。

3 建模實(shí)時(shí)分析

通常都是強實(shí)時(shí)性的,為了對實(shí)時(shí)性更有效地建模和分析,首先建立一個(gè)如圖2所示的TPN計時(shí)器timer,其中T1是一個(gè)時(shí)間變遷,延遲時(shí)間是一個(gè)固定值r,且r=Wcet。經(jīng)過(guò)時(shí)間r s后,P01中的托肯才會(huì )移出,P02中則會(huì )出現托肯;否則,當小于時(shí)間r,并且有其他條件滿(mǎn)足時(shí),finish變遷會(huì )發(fā)生。

下面對SECOM組件模型進(jìn)行實(shí)時(shí)建模分析。圖3中圓圈表示組件狀態(tài),timer是前面利用TPN建立的計時(shí)器。其中M0={1,0,0,0,…}是初始標識;P={P1,P2,…,P3,P4,P5}是一個(gè)有限庫所集;P1:接收其他組件訪(fǎng)問(wèn)該組件的一個(gè)請求require;P2:該組件處于連接和開(kāi)始工作狀態(tài);P3:該組件處于工作結束狀態(tài);P4:請求得到響應后返回成功信息;P5:請求得不到響應,返回錯誤信息。

T={t1,t2,t3,t4}是一個(gè)有限變遷集,t1:請求P1經(jīng)過(guò)變遷t1連接要訪(fǎng)問(wèn)的組件,同時(shí)激發(fā)計時(shí)器timer開(kāi)始計時(shí);t2:這是一個(gè)時(shí)間變遷,延遲時(shí)間是一個(gè)區間值[Bcet,Wcet],至少經(jīng)過(guò)時(shí)間Bcet s,P2中的托肯才會(huì )移出,則P3中經(jīng)過(guò)至少Bcet s時(shí)間才會(huì )出現托肯;t3:當t2的變遷時(shí)間小于等于Wcet時(shí)間時(shí),庫所P3和計時(shí)器中的庫所P01都擁有托肯,則變遷t3的發(fā)生條件滿(mǎn)足,即t3變遷發(fā)生,返回結果;t4:當t2的變遷時(shí)間大于Wcet時(shí)間時(shí),計時(shí)器中的P02中擁有托肯,則變遷t4會(huì )發(fā)生,返回失敗消息。

以上是對一個(gè)基本組件的實(shí)時(shí)建模。從P1狀態(tài)經(jīng)過(guò)P2和P3到達P4狀態(tài),表明了該組件從收到請求、建立連接開(kāi)始工作到結束工作,返回成功信息。而從P1狀態(tài)不經(jīng)過(guò)P2和P3到達P5狀態(tài),則說(shuō)明請求未能得到滿(mǎn)足,返回錯誤信息。在SECOM模型中,t2變遷發(fā)生的時(shí)間處于[Bcet,Wcet]區間,從而說(shuō)明該組件模型滿(mǎn)足實(shí)時(shí)性的要求。

當訪(fǎng)問(wèn)一個(gè)不太復雜的復合組件時(shí),有些訪(fǎng)問(wèn)子組件步驟之間會(huì )出現順序問(wèn)題,即會(huì )出現同步問(wèn)題,因而需采取措施防止沖突發(fā)生。所采取的措施為:在兩個(gè)請求之間加入一個(gè)控制庫所P00,由它來(lái)控制訪(fǎng)問(wèn)的次序。從P11到t21的虛邊體現了require1比require2有優(yōu)先權:非空的P11阻止了t21的點(diǎn)火,其Petri網(wǎng)模型如圖4所示。

對復合組件的分析,比較簡(jiǎn)單的方法就是將每一個(gè)子組件作為一個(gè)子網(wǎng)連接起來(lái),循環(huán)執行。當訪(fǎng)問(wèn)一個(gè)非常復雜的復合組件、甚至整個(gè)系統時(shí),調度任務(wù)繁瑣,可以考慮引進(jìn)一個(gè)單獨的調度決策,由它完成對所有子組件的調度。

本文根據嵌入式系統的特點(diǎn)及其應用需求,設計了一種新的、簡(jiǎn)單的嵌入式組件模型SECOM,給出了模型的基本組成元素。同時(shí),引入了時(shí)間Petri網(wǎng),并使用時(shí)間Petri網(wǎng)TPN,建立了一個(gè)TPN計時(shí)器timer,利用其對該組件模型SECOM非功能性約束中的實(shí)時(shí)性進(jìn)行建模與分析,從而形式化地驗證了該組件具有很好的實(shí)時(shí)性。



關(guān)鍵詞: 軟件組件 模型 嵌入式系統

評論


相關(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>