<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 記錄儀實時多任務(wù)調(diào)度策略的研究

          記錄儀實時多任務(wù)調(diào)度策略的研究

          作者: 時間:2013-10-24 來源:網(wǎng)絡(luò) 收藏


          中斷服務(wù)程序由中斷消息(標(biāo)志)處理程序和中斷任務(wù)處理程序兩部分組成,前者僅僅完成消息(標(biāo)志)處理就退出中斷,而中斷真正要完成的操作,是在任務(wù)調(diào)度模塊的協(xié)調(diào)下,由中斷任務(wù)處理程序來完成。如按下顯示,則按鍵中斷消息處理程序只產(chǎn)生一個按鍵消息(標(biāo)志)就退出中斷,而調(diào)度模塊依據(jù)按鍵消息,調(diào)用按鍵中斷任務(wù)處理程序獲取鍵值,并產(chǎn)生顯示消息。調(diào)度模塊依據(jù)顯示消息,調(diào)用顯示任務(wù)程序。

          3 實時

          多任務(wù)的系統(tǒng),通常采用內(nèi)核來管理各個任務(wù),也就是通過內(nèi)核為每個任務(wù)分配CPU時間,并負(fù)責(zé)任務(wù)之間的通信。根據(jù)任務(wù)的調(diào)度機制,可以分為非占先式內(nèi)核和占先式內(nèi)核。前者要求每個任務(wù)能夠主動釋放CPU等資源,后者則支持對當(dāng)前任務(wù)的CPU使用權(quán)的剝奪,從而使更高優(yōu)先級就緒任務(wù)得到CPU控制權(quán)進而執(zhí)行。

          嵌入式系統(tǒng)采用何種調(diào)度策略,通常要考慮三個因素:系統(tǒng)的處理能力,任務(wù)的數(shù)目,系統(tǒng)對響應(yīng)時間和執(zhí)行效率的要求。搶占式調(diào)度能改善高優(yōu)先級任務(wù)的實時性,但系統(tǒng)開銷較大;非搶占式調(diào)度恰好與搶占式相反。針對記錄儀,提出搶占式和非搶占式的復(fù)合。記錄儀的正常工作周期為1s,調(diào)度模塊的工作周期亦為1s,并將1s分為三個時段:0s-0.5s,0.5-0.8s,0.8s-1s,實時時鐘在0s, 0.5s, 0.8s各產(chǎn)生一次中斷,將Time-flag分別設(shè)置為0,5,8,并將Attemper-flag置為0。任務(wù)調(diào)度程序框圖如圖2所示。
          記錄儀實時多任務(wù)調(diào)度策略的研究
          在記錄儀一個工作周期(1s)內(nèi),復(fù)合調(diào)度策略,允許高優(yōu)先級任務(wù)三次搶占低優(yōu)先級和后臺任務(wù),而低優(yōu)先級任務(wù)具有兩次搶占后臺任務(wù)的權(quán)力。因此,高優(yōu)先級任務(wù)的響應(yīng)時間t≤0.5s,低優(yōu)先級任務(wù)的響應(yīng)時間t≤0.7s。由于搶占的次數(shù)有限,所以任務(wù)切換開銷不大,有利于提高系統(tǒng)效率。

          搶占式和非搶占式的復(fù)合已成功應(yīng)用于某記錄儀,達到了預(yù)期的目標(biāo)。

          首先,軟件設(shè)計模塊化,不同的功能模塊編制成相應(yīng)的任務(wù),由調(diào)度模塊按優(yōu)先級別調(diào)用。而且兼顧了高優(yōu)先級任務(wù)的實時性和系統(tǒng)運行的高效性。這樣,大大降低了系統(tǒng)的故障率。低優(yōu)先級任務(wù)發(fā)生阻塞時,高優(yōu)先級任務(wù)的執(zhí)行不受其影響。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();