推薦文檔列表

微型搶占式多任務實時內核設計

時間:2021-10-01 09:51:26 計算機論文 我要投稿

微型搶占式多任務實時內核設計

摘要:介紹引入事件驅動觀念的搶占式多任務微型實時內核——MicroStar的設計與實現(xiàn);提出基于事件的優(yōu)先級這一新概念。

    關鍵詞:事件驅動 優(yōu)先級 任務管理 消息 信號 同步

    市面上有很多優(yōu)秀的嵌入式實時操作系統(tǒng)(RTOS),但在中低端微控制器(MCU)上運行性能良好的RTOS內核并不多。在高檔機下,功能強大、運行極好的嵌入式實時操作系統(tǒng),移植到中低端機上時性能很可能大幅度下降。一個很重要的原因就是它的大部分功能對中低檔系統(tǒng)來說是不需要的,反而成為制約性能的累贅。中低檔微控制器與高檔機相比,一方面,尋址能力有限,處理速度慢,在相同的實時性能要求下,對內核的代碼效率的要求更為嚴格;另一方面,中低檔機完成的任務相對簡單,減少了對內核的功能需求,比如可以不需要內存管理。從嵌入式系統(tǒng)的共性來說,大多數(shù)情況下用戶程序和系統(tǒng)內核是緊密結合在一起的,運行時存儲器容量消耗、任務的數(shù)量、執(zhí)行時間和結果都是可以預計的,這可進一步縮小對內核的功能需求。

??事件驅動的觀點認為,任務應該是被動地響應外界發(fā)生的各種事件,而不是主動地去“查詢”,浪費處理器時間。采用事件驅動編程的方法,不僅提高了運行效率,而且降低了事件處理之間的耦合,使程序流程非常清晰,從而可大大提高開發(fā)效率。

??充分考慮中低端微控制器的硬件特點和嵌入式系統(tǒng)軟件的需求,引入“事件驅動”的觀念,筆者開發(fā)了一個微型的搶占式多任務RTOS內核——MicroStar。支持任務的動態(tài)創(chuàng)建、刪除、睡眠、掛起和恢復,提供消息(message)和信號(signal)兩種任務間的通信方案、完善的定時器服務和功能齊全的任務同步函數(shù)庫。限于篇幅,著重論述幾個與眾不同的設計思路和實現(xiàn)難點。

1 調度策略

    1.1 基于事件的優(yōu)先級

??對內核的實時性能來說,調度策略是關鍵。好的調度策略,既要體現(xiàn)各任務因所處理的事件對實時性的不同要求而帶來的優(yōu)先級差異,又要保證一定的公平性,避免出現(xiàn)低優(yōu)先級任務長時間得不到執(zhí)行的極端情形。常用的調度策略有兩種:一種是按時間片輪轉(round robin)調度,如RTX51;另一種是嚴格按優(yōu)先級的占先式調度,如μC/OS。

??按時間片輪轉調度能很好地保證公平,但優(yōu)先級的差異是通過對處理器的占用時間的多少來體現(xiàn)的。如果各個任務都不主動放棄執(zhí)行,高優(yōu)先級的任務能夠比低優(yōu)先級任務獲得更多的處理器時間;但在嵌入式系統(tǒng)中,某個事件要求實時處理,并不意味著該處理需要較長的時間,而往往是要求盡快響應。因此,采用按時間片輪轉調度,實時

[1] [2] [3] [4] [5] [6] [7]