国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種滿足實時性需求的測發(fā)控軟件改進(jìn)技術(shù)

2016-07-20 10:21:36安占新
航天控制 2016年6期
關(guān)鍵詞:實時性內(nèi)核線程

張 舒 安占新 趙 芊

北京航天自動控制研究所,北京100854

?

一種滿足實時性需求的測發(fā)控軟件改進(jìn)技術(shù)

張 舒 安占新 趙 芊

北京航天自動控制研究所,北京100854

針對基于Windows操作系統(tǒng)框架的測發(fā)控軟件無法滿足大多數(shù)型號實時性需求的情況,分析了現(xiàn)有框架不滿足實時性需求而導(dǎo)致任務(wù)失效的具體機(jī)理。提出了基于異步協(xié)作機(jī)制簡化和并行實時性任務(wù)串行化的框架改進(jìn)方法,并對改進(jìn)前后框架的性能進(jìn)行了仿真分析。試驗結(jié)果表明,基于改進(jìn)框架的測發(fā)控軟件處理實時性線程的周期循環(huán)間隔時間穩(wěn)定性由247ms改進(jìn)至20ms,平均超時失效概率由0.6改進(jìn)至無失效。

w框架;實時性;異步協(xié)作機(jī)制簡化;并行實時性任務(wù)串行化

測試發(fā)射控制軟件和硬件設(shè)備一起組成測發(fā)控系統(tǒng),向彈、箭發(fā)送控制和測試指令;并接收、判別、存儲及顯示彈、箭回送的測試結(jié)果,從而完成等效器檢查、彈箭系統(tǒng)綜合測試及發(fā)射控制[1]。

由于多類型彈、箭的測發(fā)控系統(tǒng)有一定通用性,為提高軟件開發(fā)效率,測發(fā)控軟件開發(fā)方常常采用建立通用軟件框架的方法,按照功能特性將軟件模塊分類整合,降低模塊耦合程度,使軟件結(jié)構(gòu)精簡、易開發(fā)和維護(hù)。目前唯一成熟的通用框架是基于Windows MFC實現(xiàn)的(以下簡稱w框架),可用于實現(xiàn)較為復(fù)雜的測試控制功能和交互界面。鑒于Windows為非實時性操作系統(tǒng),且其任務(wù)調(diào)度和管理對程序設(shè)計人員透明,不能滿足測發(fā)控系統(tǒng)一項重要性能,即實時性需求[2],本文通過系統(tǒng)地分析現(xiàn)有w框架不滿足實時性需求的任務(wù)特征和機(jī)理,提出一種基于異步協(xié)作機(jī)制化簡和并行實時性任務(wù)串行化的改進(jìn)框架,并仿真對比分析了基于改進(jìn)前后框架的測發(fā)控軟件實時性線程的周期循環(huán)間隔時間和超時失效概率。

1 實時性需求與w框架分析

1.1 測發(fā)控系統(tǒng)實時性需求與滿足情況分析

在某些型號軟件研制和系統(tǒng)試驗過程中發(fā)現(xiàn),某些測發(fā)控任務(wù)具有強(qiáng)實時性,特征如下:

1)與彈、箭的高頻率周期性交互,要求周期穩(wěn)定無波動;

2)向彈、箭發(fā)送數(shù)據(jù)或命令后,要求及時回復(fù),等待周期短;

3)多個具有以上2條特征的測發(fā)控任務(wù)并行進(jìn)行;

4)為避免由于人工操作不及時導(dǎo)致故障處理不及時,在某些功能中可由軟件直接根據(jù)自身狀態(tài)和接收到的反饋信息決策下一步需要進(jìn)行的動作或流程[3-4]。

基于上述實時性測發(fā)控任務(wù),采用現(xiàn)有非實時性的w框架進(jìn)行測發(fā)控軟件開發(fā)時,會產(chǎn)生以下現(xiàn)象:

1)對于頻率較高的周期性任務(wù),檢查任務(wù)開始執(zhí)行的間隔時間,發(fā)現(xiàn)間隔無規(guī)律變化,個別間隔時間倍數(shù)超出任務(wù)要求;

2)收到反饋數(shù)據(jù)后,測發(fā)控軟件延遲進(jìn)行處理和判別,導(dǎo)致自身邏輯認(rèn)定反饋數(shù)據(jù)接收超時;

3)多個周期性任務(wù)同時進(jìn)行時,測發(fā)控任務(wù)超時失效的概率明顯增加;

4)基于現(xiàn)有的w框架開發(fā)的測發(fā)控軟件運行時較多依賴人工參與,導(dǎo)致故障處理不及時。

1.2 現(xiàn)有w框架機(jī)理分析

當(dāng)前w框架的功能模塊包括: UI界面模塊;負(fù)責(zé)流程控制和功能調(diào)用的MainTask模塊;負(fù)責(zé)描述測發(fā)控邏輯的StepWidgt模塊;負(fù)責(zé)與外部設(shè)備進(jìn)行指令和數(shù)據(jù)交互的InterfaceWidget模塊,各模塊之間的聯(lián)系如圖1所示。

圖1 w框架架構(gòu)

由于Windows為非實時性操作系統(tǒng),若沒有特殊的設(shè)定,其線程調(diào)度對程序設(shè)計者是透明的;且Windows操作系統(tǒng)本身具備的UI(如鼠標(biāo)、鍵盤操作及屏幕刷新)等非實時性系統(tǒng)功能也隨時可能搶占內(nèi)核資源。因此,w框架架構(gòu)特征導(dǎo)致1.1節(jié)中不滿足實時性現(xiàn)象的主要原因如下:

1)程序中存在多個并行任務(wù),多個任務(wù)線程會同時搶占同一計算機(jī)資源,造成阻塞,導(dǎo)致實時性任務(wù)執(zhí)行間隔出現(xiàn)較大波動(多個實時性測發(fā)控任務(wù)同時并行存在時,這種情況更明顯);

2)軟件接口的數(shù)據(jù)接收InterfaceWidget 模塊和測發(fā)控系統(tǒng)的數(shù)據(jù)處理模塊間交互方式為異步協(xié)作模式,存在一定的依賴關(guān)系,如圖2(a)所示。當(dāng)收到外系統(tǒng)的數(shù)據(jù)后,通過消息傳遞進(jìn)行回調(diào),接收到的數(shù)據(jù)先傳給MainTask,再由MainTask調(diào)用相應(yīng)的數(shù)據(jù)處理模塊。該工作方式時間開銷較大,導(dǎo)致實時性任務(wù)自身定時器判定數(shù)據(jù)接收超時;

3)w框架中具有的大量測試流程選擇和異常處理分支,需要呈現(xiàn)在界面上等待人工決策。

2 w框架改進(jìn)技術(shù)

2.1 異步協(xié)作機(jī)制簡化

針對第1節(jié)所述,InterfaceWidget模塊和StepWidgt模塊進(jìn)行異步通信帶來額外時間開銷,造成因?qū)崟r性任務(wù)實際完成時間長于預(yù)期而不滿足實時性要求的問題,可通過精簡數(shù)據(jù)傳遞的參與者來避免消息傳遞和異步通信,簡化前后軟件框架如圖 2所示。簡化后的框架要求StepWidgt模塊在需要處理測試數(shù)據(jù)時知曉與它協(xié)作的特定的InterfaceWidget模塊,并設(shè)計專用內(nèi)部接口協(xié)議,可將該軟件內(nèi)部接口定義為一片公共內(nèi)存區(qū)域,使數(shù)據(jù)處理功能與數(shù)據(jù)接收功能緊耦合。

由圖2可知,簡化后的w框架中,MainTask不再參與消息傳遞,而是直接通過數(shù)據(jù)處理線程和接口線程協(xié)作實現(xiàn)數(shù)據(jù)交互。同時,數(shù)據(jù)處理線程在等待測試數(shù)據(jù)時,無需再創(chuàng)建一個由信號量終止的超時計時器,而是在每次嘗試讀取測試數(shù)據(jù)失敗后由自身的時標(biāo)判斷是否超時,未超時則再次嘗試讀取數(shù)據(jù),循環(huán)往復(fù)直至讀取數(shù)據(jù)成功或判斷已超時。

圖2 基于簡化異步協(xié)作和通信機(jī)制的w框架

2.2 并行實時性任務(wù)串行化

第1節(jié)中并行任務(wù)搶占資源會導(dǎo)致實時性任務(wù)的執(zhí)行間隔時間波動,造成超時失效的問題,如圖3并行化部分所示。目前的w框架中添加新任務(wù)線程時,直接調(diào)用AfxBeginThread系統(tǒng)函數(shù)創(chuàng)建線程,僅對多個并行線程訪問的公共數(shù)據(jù)區(qū)進(jìn)行保護(hù),而不同線程間的調(diào)度工作則交付Windows系統(tǒng)自行處理。

針對該問題,首先可在程序初始化時,調(diào)用AfxBeginThread創(chuàng)建一個用于處理實時性測試任務(wù)的專用線程。該線程將所有并行且相互獨立的實時性任務(wù)串行排列,在測發(fā)控程序生命周期中無限循環(huán),循環(huán)周期為所有實時性任務(wù)理論周期的最小公約數(shù)。同時在各實時性任務(wù)前加入適當(dāng)?shù)募s束條件,使各項實時性任務(wù)在合適的時機(jī)按照自身的周期運行。并行實時性任務(wù)串行化如圖 3中串行化部分所示。

其次,為減少或消除第1節(jié)中實時性任務(wù)資源被UI等非實時性任務(wù)搶占的情況,可為實時性線程指定單獨的內(nèi)核資源(目前運行測發(fā)控軟件的計算機(jī)至少具備2個內(nèi)核,故內(nèi)核資源較為充足),且在每個周期的空閑時間內(nèi),通過不斷計算當(dāng)前周期經(jīng)過的時間來避免實時性線程主動放棄內(nèi)核資源,從而保證下一次循環(huán)周期可按時開始。若實時性線程單獨占領(lǐng)1個內(nèi)核資源時,則還需滿足下述條件:

其中,ti為單個實時性任務(wù)花費的時間,Ti為單個實時性任務(wù)的周期,T0為所有實時性任務(wù)周期的最小公約數(shù)。

再次,設(shè)置實時性線程相對優(yōu)先級和優(yōu)先級微調(diào)等級為最高,即REALTIME_PRIORITY_CLASS和THREAD_PRIORITY_TIME_CRITICAL,從而實現(xiàn)其他非實時性任務(wù)線程與實時性任務(wù)線程的內(nèi)核資源合理分配。

圖3 多測試任務(wù)串行化規(guī)劃原理釋義

最后,在StepWidgt模塊中加入超時容錯機(jī)制以防止任務(wù)超時失效。即當(dāng)軟件測試流程的某一步異常終止時,軟件可根據(jù)自身錯誤狀態(tài)來判斷,若當(dāng)前的異常是由超時導(dǎo)致,則自動退回至該測試步驟的開始階段重新執(zhí)行。同時為避免由于系統(tǒng)故障而造成死循環(huán)的情況,當(dāng)連續(xù)出現(xiàn)3次超時導(dǎo)致的異常后,軟件報錯,轉(zhuǎn)由人工進(jìn)行錯誤處理。該措施能夠減少人工參與程度,增強(qiáng)軟件的應(yīng)激反應(yīng)能力。

3 仿真驗證

首先驗證改進(jìn)后w框架中實時性任務(wù)間隔時間是否滿足要求。仿真環(huán)境為:測發(fā)控軟件同時產(chǎn)生2個實時性任務(wù)線程Task_A和Task_B,周期分別為50ms和100ms,2個實時性線程各自并行運行1000和500個周期(理論用時50s)。此外,程序整個生命周期中伴隨UI任務(wù)等非實時性線程。在程序50ms周期的實時性任務(wù)TaskA進(jìn)入處獲得系統(tǒng)時間,并打印2次循環(huán)的實際間隔時間?;谠瓀框架和改進(jìn)后的w框架的測發(fā)控軟件的實際周期循環(huán)間隔時間的仿真結(jié)果分別如圖4(a)和4(b)所示。

圖4 設(shè)置線程優(yōu)先級前后效果對比圖

由圖4可知,基于原w框架的測發(fā)控軟件運行過程中,實時性線程實際的循環(huán)間隔時間經(jīng)常出現(xiàn)較大的時間波動,最大可至287ms;而基于改進(jìn)后w框架的測發(fā)控軟件的實時性線程周期循環(huán)的間隔時間穩(wěn)定在50ms±10ms,該結(jié)果表明:

1)w框架的改進(jìn)方法解決了多個任務(wù)并行搶占公共資源的問題;

2)改進(jìn)后的w框架實時性任務(wù)資源不再被其它非實時性任務(wù)搶占;

3)化簡后的數(shù)據(jù)處理功能耗費的時間滿足實時性要求。

統(tǒng)計基于改進(jìn)前后w框架的測發(fā)控軟件對傳遞對準(zhǔn)、上傳文件等實時性任務(wù)的失效概率,以每10次為單位,共5遍,統(tǒng)計結(jié)果見表 1。在試驗中,基于原w框架的測發(fā)控軟件出現(xiàn)超時失效較頻繁且無規(guī)律,由于超時失效而報錯的情況隨機(jī)出現(xiàn)2~8次。而基于改進(jìn)后w框架的測發(fā)控軟件在試驗中不再出現(xiàn)因超時失效而報錯的情況。

表1 測發(fā)控軟件超時報錯次數(shù)統(tǒng)計

4 結(jié)論

系統(tǒng)地分析了現(xiàn)w框架不滿足實時性需求導(dǎo)致任務(wù)失效的特征和機(jī)理,針對數(shù)據(jù)處理響應(yīng)時間較長的問題提出異步協(xié)作機(jī)制簡化方法。針對并行任務(wù)搶占內(nèi)核資源的問題提出并行實時性任務(wù)串行化方案。最后仿真對比分析了基于改進(jìn)前后框架的測發(fā)控軟件實時性線程的周期循環(huán)間隔時間和超時失效概率。結(jié)果表明,改進(jìn)后的w框架實時性線程周期循環(huán)間隔時間穩(wěn)定性由247ms改進(jìn)至20ms,平均超時失效概率由0.6改進(jìn)至無失效。

[1] 張學(xué)英,易航,汪洋,韓亮.運載火箭測發(fā)控系統(tǒng)通用化設(shè)計[J].導(dǎo)彈與航天運載技術(shù),2012, (4): 15-19.(Zhang Xueying, Yi Hang, Wang Yang, Han Liang.General Design of Control System for Launch Vehicle[J].Missiles and Space Vehicles, 2012, (4): 15-19.)

[2] 侯俊杰.深入淺出MFC(第二版)[M].武漢:華中科技大學(xué)出版社,2001.

[3] 李必信.面向?qū)ο筌浖詈系亩攘亢万炞C[J].東南大學(xué)學(xué)報,2006, 36(3): 446-451.(Li Bixin, Measurement and Verification of Object Oriented Software Coupling[J]. Journal of Southeast University, 2006, 36(3):446-451.)

[4] 徐峰.抽象工廠設(shè)計模式在數(shù)據(jù)訪問中的應(yīng)用[J].電腦知識與技術(shù),2009, 5(18):4669-4670.(Xu Feng. Application of Abstract Factory Design Pattern in Data Access[J].Computer Knowledge and Technology, 2009, 5(18):4669-4670.)

[5] 劉振吉,底健.基于Windows平臺的測控系統(tǒng)的實時性優(yōu)化方法[J].信息與電子工程,2008, 6(5):383-386.(Li Zhenji, Di Jian.Real Time Optimization Method of Measurement and Control System Based on Windows Platform[J].Information and Electronic Engineering, 2008, 6(5):383-386.)

[6] 鐘洋.基于Windows NT的弱實時多任務(wù)的實現(xiàn)[D].武漢:武漢科技大學(xué),2002.(Zhong Yang. Implementation of a Weak Real Time Multi-Task Based on NT Windows[D]. Wuhan:Journal of Wuhan University of Science and Technology, 2002.)

An Improved Method of TLC System Software for the Real-Time Requirement

Zhang Shu,An Zhanxin,Zhao Qian

Beijing Aerospace Automatic Control Institute, Beijing 100854, China

Duetothetestlaunchandcontrolsystem(TLCsystem)softwarebasedonWindowsoperatingsystemframework,whichcannotfulfilltherealtimerequirementofmostoflaunchmission,thespecificmechanismofmissionsfailureisanalyzedasthepresentframeworkishardlytofulfillrealtimedemands.Amethodforrefiningtheframeworkisproposed,whichisbasedontheimprovedmethodwithasynchronouscooperativesimplificationandparalleltasksserializationinrealtime,andthesimulationisimplementedfortheperformanceanalysisofbothproposedframeworkimprovedandoriginalframework.TheresultsshowthatthestabilityofcycleintervaltimeofrealtimethreadsprocessedbyTLCsystemsoftwarebasedontheimprovedframeworkispromotedby20msachievedfrom247msandtheaveragefailureprobabilityisimprovedfrom0.6tonull.

wframework;Realtime;Asynchronouscooperativesimplification;Paralleltasksserializationinrealtime

2016-05-17

張 舒(1989-),男,北京人,碩士,助理工程師,主要研究方向為軟件工程;安占新(1978-),男,河北衡水人,碩士,高級工程師,主要研究方向為軟件工程;趙 芊(1991-),男,北京人,碩士研究生,主要研究方向為軟件工程。

TP319

A

1006-3242(2016)06-0068-04

猜你喜歡
實時性內(nèi)核線程
萬物皆可IP的時代,我們當(dāng)夯實的IP內(nèi)核是什么?
強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
基于規(guī)則實時性的端云動態(tài)分配方法研究
基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計
Linux內(nèi)核mmap保護(hù)機(jī)制研究
基于虛擬局域網(wǎng)的智能變電站通信網(wǎng)絡(luò)實時性仿真
航空電子AFDX與AVB傳輸實時性抗干擾對比
淺談linux多線程協(xié)作
一種車載Profibus總線系統(tǒng)的實時性分析
Linux線程實現(xiàn)技術(shù)研究
益阳市| 新化县| 阿克苏市| 吉水县| 安溪县| 旬邑县| 抚顺市| 文昌市| 卓资县| 咸丰县| 承德县| 新巴尔虎左旗| 尼勒克县| 普陀区| 淮阳县| 弥渡县| 北海市| 益阳市| 新干县| 分宜县| 西乌珠穆沁旗| 诸城市| 东宁县| 达孜县| 慈利县| 林州市| 山西省| 平武县| 漳平市| 察隅县| 漳浦县| 安龙县| 友谊县| 万山特区| 白山市| 潮安县| 探索| 任丘市| 昆明市| 天门市| 临海市|