基于μC/OS-Ⅱ的實時分層調(diào)度算法研究
0引言
本文引用地址:http://www.biyoush.com/article/171607.htm嵌入式實時系統(tǒng)由于自身CPU計算能力較弱和內(nèi)存容量較低的原因,希望采用復雜度低、系統(tǒng)開銷小的調(diào)度算法。目前的實時系統(tǒng)通常采用單優(yōu)先級驅動的搶占式調(diào)度算法,根據(jù)任務的某一時間特性參數(shù)如任務周期或最后截止期等為各個任務分配系統(tǒng)資源[1][2]。這種搶占式調(diào)度策略具有靈活性和動態(tài)性等優(yōu)點。但在,實際應用系統(tǒng)中也有一些由不相交的周期任務子集組成,每個子集是系統(tǒng)的一個主要部分,稱之為子系統(tǒng)。例如,飛行管理系統(tǒng)包含飛行控制,電子設備和導航式三個子系統(tǒng)。這三個子系統(tǒng)的任務如果按照以前的靜態(tài)、動態(tài)算法實現(xiàn)需要系統(tǒng)開發(fā)人員設計很復雜的調(diào)度算法,實時控制也相對困難[3][4]。本文按照分層思想在實時操作系統(tǒng)層面上設計調(diào)度算法,減輕了解決此類問題系統(tǒng)開發(fā)人員的負擔,算法的主要思想是:修改內(nèi)核的任務控制塊,增加一個子模塊標識來控制分層調(diào)度,采用固
定時間輪轉算法調(diào)度各子系統(tǒng)模塊,子系統(tǒng)中的任務按照速率單調(diào)算法調(diào)度,從而實現(xiàn)兩層的調(diào)度策略。本文首先定義了分層調(diào)度系統(tǒng)的模型,并對分層調(diào)度算法的可調(diào)度性進行了理論分析;其次,以實時內(nèi)核μC/OS-Ⅱ為背景,實現(xiàn)了具有分層調(diào)度功能的調(diào)度器,最后通過實驗驗證分層調(diào)度算法的可行性和正確性。
1 分層調(diào)度系統(tǒng)模型的定義
定義1 在不考慮釋放抖動的情況下,一個任務集Τ={τ1,τ2,…, τn}中的任務τi 的屬性可以用一個五元組(Mi, ,Pi,Di, Ei)來表示。其中,Mi 表示任務屬于的模塊; 是相位;Pi 表示任務周期,對于非周期任務,取其最小時間間隔作為周期;Di 表示任務完成
的最后期限;Ei 表示任務的最大請求運行時間。
在定義任務屬性時,擴展以前任務描述的四元組到五元組[5],增加了任務所屬模塊的屬性,這一點是為了給子模塊的索引表提供一個標志,以便實現(xiàn)任務集按子模塊分層調(diào)度管理。
定義2 對于任務τi,其各實例從到達時刻至執(zhí)行完成時刻之間的時間間隔稱為該實例的響應時間,各實例響應時間的最大值稱為任務τi的最大響應時間 Ri,若 Ri≤Di,則稱任務τi可調(diào)度。
2 分層調(diào)度算法模型的實現(xiàn)
2.1分層模型的可調(diào)度性分析
假定:系統(tǒng)中具有n個獨立的,可搶占的任務,并且任務的相對時限等于各自的周期。如果系統(tǒng)的總利用率U滿足下式:
評論