無(wú)紙記錄儀實(shí)時(shí)多任務(wù)調(diào)度策略的研究
借鑒面向?qū)ο蟪绦蛟O(shè)計(jì)的思想,在記錄儀程序中引入消息概念,將任務(wù)的執(zhí)行條件轉(zhuǎn)換為消息,由消息對(duì)相應(yīng)的任務(wù)進(jìn)行激活,并由任務(wù)調(diào)度模塊實(shí)現(xiàn)調(diào)度。消息定義為:當(dāng)某個(gè)事件(如中斷或某任務(wù)完成)發(fā)生時(shí),事件處理程序設(shè)置相應(yīng)的標(biāo)志,不同的標(biāo)志代表不同的消息。事件處理程序可以是中斷服務(wù)程序,也可以是執(zhí)行后需設(shè)置的標(biāo)志的任務(wù),因此,記錄儀中任務(wù)的調(diào)度是基于消息機(jī)制來(lái)驅(qū)動(dòng)的。消息在多任務(wù)程序中的作用相當(dāng)于橋梁,使任務(wù)間既相互獨(dú)立又有機(jī)關(guān)聯(lián),任務(wù)之間不能直接調(diào)用,需借助消息,由任務(wù)調(diào)度模塊實(shí)施。
中斷服務(wù)程序由中斷消息(標(biāo)志)處理程序和中斷任務(wù)處理程序兩部分組成,前者僅僅完成消息(標(biāo)志)處理就退出中斷,而中斷真正要完成的操作,是在任務(wù)調(diào)度模塊的協(xié)調(diào)下,由中斷任務(wù)處理程序來(lái)完成。如按下顯示,則按鍵中斷消息處理程序只產(chǎn)生一個(gè)按鍵消息(標(biāo)志)就退出中斷,而調(diào)度模塊依據(jù)按鍵消息,調(diào)用按鍵中斷任務(wù)處理程序獲取鍵值,并產(chǎn)生顯示消息。調(diào)度模塊依據(jù)顯示消息,調(diào)用顯示任務(wù)程序。
3 實(shí)時(shí)多任務(wù)調(diào)度策略
多任務(wù)的系統(tǒng),通常采用內(nèi)核來(lái)管理各個(gè)任務(wù),也就是通過(guò)內(nèi)核為每個(gè)任務(wù)分配CPU時(shí)間,并負(fù)責(zé)任務(wù)之間的通信。根據(jù)任務(wù)的調(diào)度機(jī)制,可以分為非占先式內(nèi)核和占先式內(nèi)核。前者要求每個(gè)任務(wù)能夠主動(dòng)釋放CPU等資源,后者則支持對(duì)當(dāng)前任務(wù)的CPU使用權(quán)的剝奪,從而使更高優(yōu)先級(jí)就緒任務(wù)得到CPU控制權(quán)進(jìn)而執(zhí)行。
嵌入式系統(tǒng)采用何種調(diào)度策略,通常要考慮三個(gè)因素:系統(tǒng)的處理能力,任務(wù)的數(shù)目,系統(tǒng)對(duì)響應(yīng)時(shí)間和執(zhí)行效率的要求。搶占式調(diào)度能改善高優(yōu)先級(jí)任務(wù)的實(shí)時(shí)性,但系統(tǒng)開銷較大;非搶占式調(diào)度恰好與搶占式相反。針對(duì)記錄儀,提出搶占式和非搶占式的復(fù)合多任務(wù)調(diào)度策略。記錄儀的正常工作周期為1s,調(diào)度模塊的工作周期亦為1s,并將1s分為三個(gè)時(shí)段:0s-0.5s,0.5-0.8s,0.8s-1s,實(shí)時(shí)時(shí)鐘在0s, 0.5s, 0.8s各產(chǎn)生一次中斷,將Time-flag分別設(shè)置為0,5,8,并將Attemper-flag置為0。任務(wù)調(diào)度程序框圖如圖2所示。
在記錄儀一個(gè)工作周期(1s)內(nèi),復(fù)合調(diào)度策略,允許高優(yōu)先級(jí)任務(wù)三次搶占低優(yōu)先級(jí)和后臺(tái)任務(wù),而低優(yōu)先級(jí)任務(wù)具有兩次搶占后臺(tái)任務(wù)的權(quán)力。因此,高優(yōu)先級(jí)任務(wù)的響應(yīng)時(shí)間t≤0.5s,低優(yōu)先級(jí)任務(wù)的響應(yīng)時(shí)間t≤0.7s。由于搶占的次數(shù)有限,所以任務(wù)切換開銷不大,有利于提高系統(tǒng)效率。
搶占式和非搶占式的復(fù)合多任務(wù)調(diào)度策略已成功應(yīng)用于某記錄儀,達(dá)到了預(yù)期的目標(biāo)。
首先,軟件設(shè)計(jì)模塊化,不同的功能模塊編制成相應(yīng)的任務(wù),由調(diào)度模塊按優(yōu)先級(jí)別調(diào)用。而且兼顧了高優(yōu)先級(jí)任務(wù)的實(shí)時(shí)性和系統(tǒng)運(yùn)行的高效性。這樣,大大降低了系統(tǒng)的故障率。低優(yōu)先級(jí)任務(wù)發(fā)生阻塞時(shí),高優(yōu)先級(jí)任務(wù)的執(zhí)行不受其影響。
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評(píng)論