專利名稱:一種嵌入式操作系統(tǒng)的任務調(diào)度裝置及方法
技術領域:
本發(fā)明涉及嵌入式操作系統(tǒng)領域,確切地說,涉及一種入式操 作系統(tǒng)的任務調(diào)度裝置及方法。
背景技術:
隨著多媒體、高速網(wǎng)絡等技術的快速發(fā)展,越來越多的嵌入式系 統(tǒng)要求具有聯(lián)網(wǎng)、圖形等復雜功能,以提高其圖形化管理、網(wǎng)絡化協(xié)
同操作等特性;而這些發(fā)展對于嵌入式系統(tǒng)底層的操作系統(tǒng)提出了越 來越高的要求,因嵌入式操:作系統(tǒng)(Embedded Operating System, EOS)負責嵌入系統(tǒng)的全部軟、硬件資源的分配、調(diào)度、控制、協(xié)調(diào) 并發(fā)等活動;E0S是相對于一4殳操作系統(tǒng)而言的,它具備一般操作系 統(tǒng)最基本的功能,如任務調(diào)度、同步機制、中斷處理、文件處理等。
一方面,目前嵌入式系統(tǒng)大多通過有線或無線方式與外界相連, 網(wǎng)絡的連接性允許用戶可以遠程監(jiān)視和控制系統(tǒng),并在系統(tǒng)運行期間 下載新的程序與內(nèi)容,這大大提高了系統(tǒng)的易用性和功能擴展性。然 而,這也使系統(tǒng)容易受到不可靠軟件的影響,在基于優(yōu)先級調(diào)度的多 任務嵌入式操作系統(tǒng)中,如果系統(tǒng)存在安全漏洞,惡意軟件可能會將 自己配制成高優(yōu)先級任務獨占或超時使用處理器資源,阻止其它重要 任務的運行,從而導致整個系統(tǒng)的崩潰。另外,由于軟件設計不當, 某些高優(yōu)先級進程也可能會出現(xiàn)這種問題,造成該情況的直接原因是 目前嵌入式操作系統(tǒng)采用單級調(diào)度結(jié)構(gòu)。
目前,大多數(shù)嵌入式操作系統(tǒng)都屬于多任務操作系統(tǒng),且使用優(yōu) 先級單級調(diào)度算法調(diào)度任務,如圖l所示,所有任務直接由系統(tǒng)調(diào)度 器調(diào)度,共享處理器的計算能力,假設由于設計錯誤或安全漏洞導致 某任務長期獨占或超時使用處理器,將會阻止或延遲其他任務的執(zhí)行, 進而可能導致整個系統(tǒng)崩潰。比如最高優(yōu)先級任務1獨占處理器時, 只要它不釋放處理器,其余n-1個低優(yōu)先級任務將永遠的不到執(zhí)行機
6會。
另一方面,隨著嵌入式系統(tǒng)應用向著高性能、網(wǎng)絡化、智能化方 向的不斷深入發(fā)展,開放式混合實時需求也變得越來越突出。很多嵌 入式系統(tǒng)不僅要求多類型的硬實時、軟實時和非實時任務并存,還要 求任務能夠動態(tài)加入和退出,以及任務的執(zhí)行時間具有時變特征。比 如多媒體系統(tǒng)要求穩(wěn)定周期的幀處理和顯示,而幀信息的處理計算時
間又隨著影片的不同而動態(tài)地變化;網(wǎng)絡服務系統(tǒng)需要針對不同類別 的用戶、不同服務請求的特性提供不同實時Qos保證的服務,且服務 請求負載呈現(xiàn)動態(tài)不確定性變化等。然而,傳統(tǒng)的基于單級調(diào)度策略 架構(gòu)的實時操作系統(tǒng)無法滿足這些多類型任務并發(fā)、系統(tǒng)負載動態(tài)變 化等開放混合實時系統(tǒng)任務調(diào)度的需求。
針對目前嵌入式實時操作系統(tǒng)所面臨的挑戰(zhàn),國內(nèi)外研究人員已 經(jīng)開始研究新的、安全的、高效的開放式混合任務調(diào)度機制。專利號 為US2006206887的美國發(fā)明專利"Adaptive partitioning for operating system"揭示了一種基于優(yōu)先級的自適應分區(qū)調(diào)度裝置, 該裝置可以生成多個自適應分區(qū),其中這些自適應分區(qū)的每個都與一 個或多個軟件線程相關,并且,每一個分區(qū)都具有相應的處理器預算。 在系統(tǒng)運行期間,如果高優(yōu)先級任務耗盡了所屬分區(qū)的處理器預算, 則停止執(zhí)行,釋放處理器等待下一個系統(tǒng)調(diào)度周期。通過這種自適應 分區(qū)調(diào)度策略,系統(tǒng)為各級優(yōu)先級的任務提供公平共享的執(zhí)行時間保 證,防止了高優(yōu)先級任務獨占處理器,使低優(yōu)先級任務也有機會運行。 然而,該專利調(diào)度方法和調(diào)度對象單一,只能對同種類型的靜態(tài)優(yōu)先 級任務進行全局調(diào)度,而且在系統(tǒng)運行期間不能動態(tài)加入和退出任 務,無法滿足開放式混合實時系統(tǒng)中多類型任務并發(fā),系統(tǒng)動態(tài)變化 的需求。
專利號為US2006206881的美國專利"Process scheduler employing adaptive partitioning of critical process threads" 和專利號為CN200610064818的中國專利"釆用進程線程的自適應分 區(qū)的進程調(diào)度程序"則在US2006206887的基礎上通過設置臨界時間 預算來保證一些關鍵臨界任務的執(zhí)行,但它們依然沒有能夠解決專利
7US2006206887存在的問題。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術問題是,提供一種嵌入式操作系統(tǒng)的任務 調(diào)度裝置及方法,本發(fā)明克服了當前嵌入式操作系統(tǒng)中調(diào)度機制存在 的只能對同種類型的靜態(tài)優(yōu)先級任務進行全局調(diào)度的缺陷,并且解決 了系統(tǒng)運行期間不能動態(tài)加入和退出任務的問題。
一種嵌入式操作系統(tǒng)的任務調(diào)度裝置,包括處理器、系統(tǒng)調(diào)度器 和系統(tǒng)可調(diào)度任務集合模塊,還包括自適應分區(qū)模塊,
所述自適應分區(qū)模塊包括自適應分區(qū)、分區(qū)調(diào)度器以及任務隊 列,每個自適應分區(qū)均具有一個分區(qū)調(diào)度器和一個任務隊列,所述任 務隊列用來存儲加入的任務;所述分區(qū)調(diào)度器用于計算其所屬自適應 分區(qū)所需的最小處理器計算能力和分區(qū)調(diào)度周期,并將計算結(jié)果發(fā)送 給所述系統(tǒng)調(diào)度器;所述分區(qū)調(diào)度器還用于按照分區(qū)調(diào)度策略調(diào)度相 應任務隊列中的任務;
所述系統(tǒng)調(diào)度器用于根據(jù)所述系統(tǒng)可調(diào)度任務集合模塊中任務 的類型初始化所述自適應分區(qū)模塊的自適應分區(qū);計算所述各自適應 分區(qū)所需的最小處理器計算能力占處理器計算能力的比例,并設置系 統(tǒng)調(diào)度周期;根據(jù)所述比例計算各自適應分區(qū)在一個系統(tǒng)調(diào)度周期內(nèi) 能夠分配到的處理器時間,并將所述時間標記給各自適應分區(qū);以及 按照系統(tǒng)調(diào)度策略調(diào)度各自適應分區(qū);
所述系統(tǒng)可調(diào)度任務集合模塊用來存儲已加入的任務或者申請 退出的任務。
所述系統(tǒng)調(diào)度模塊還用于為每個自適應分區(qū)生成唯一的標識符; 以及監(jiān)測所述系統(tǒng)可調(diào)度任務集合模塊中是否有任務加入或者申請 退出,且在監(jiān)測到有任務加入時,根據(jù)所述任務的類型查找所述自適 應分區(qū)模塊中是否有與之相匹配的已初始化的自適應分區(qū),若是,則 將所述任務加入到相應自適應分區(qū)的任務隊列中;否則,為所述任務 初始化一個新的自適應分區(qū),將所述任務加入到所述新的自適應分區(qū) 的任務隊列中;在監(jiān)測到有任務申請退出時,刪除所述任務,并檢查各自適應分區(qū)的任務隊列是否為空,若是,則刪除相應的自適應分區(qū)。 所述裝置還包括任務接收控制模塊,用于根據(jù)系統(tǒng)中剩余處理器 計算能力控制任務的加入,并將加入的任務添加到所述系統(tǒng)可調(diào)度任
務集合模塊中;以及在系統(tǒng)運行期間,有任務申請退出時將所述申請
退出的任務添加到所述系統(tǒng)可調(diào)度集合模塊中。
一種嵌入式操作系統(tǒng)的任務調(diào)度方法,包括如下步驟 步驟一系統(tǒng)調(diào)度器根據(jù)系統(tǒng)可調(diào)度任務集合中的任務類型初始 化自適應分區(qū);
步驟二所述自適應分區(qū)的分區(qū)調(diào)度器計算其所屬自適應分區(qū)所 需的最小處理器計算能力和分區(qū)調(diào)度周期,并將計算結(jié)果發(fā)送給所述 系統(tǒng)調(diào)度器;
步驟三所述系統(tǒng)調(diào)度器根據(jù)接收到的各自適應分區(qū)所需的最小 處理器計算能力計算各自適應分區(qū)所需的最小處理器計算能力占處 理器計算能力的比例,并根據(jù)接收到的各自適應分區(qū)的分區(qū)調(diào)度周期 設置系統(tǒng)調(diào)度周期;然后根據(jù)所述比例計算各自適應分區(qū)在一個系統(tǒng) 調(diào)度周期內(nèi)能夠分配到的處理器時間,并將所述時間標記給各自適應 分區(qū);
步驟四所述系統(tǒng)調(diào)度器在系統(tǒng)調(diào)度周期內(nèi)根據(jù)系統(tǒng)調(diào)度策略調(diào) 度各自適應分區(qū),并為各自適應分區(qū)分配處理器時間,當前調(diào)度的自 適應分區(qū)的分區(qū)調(diào)度器根據(jù)分區(qū)調(diào)度策略在其所分配到的處理器時 間內(nèi)調(diào)度任務隊列中的任務。
所述步驟一還包括為所述各自適應分區(qū)生成唯一標識符。
在系統(tǒng)運行期間,所述系統(tǒng)調(diào)度器監(jiān)測所述系統(tǒng)可調(diào)度任務集合 中是否有任務加入或者申請退出,若監(jiān)測到有任務加入或者申請退 出,則在當前系統(tǒng)調(diào)度周期結(jié)束后執(zhí)行如下步驟
步驟a:判斷系統(tǒng)可調(diào)度任務集合中當前任務是新加入的任務還 是申請退出的任務,若是新加入的任務,則執(zhí)行步驟b;若是申請退 出的任務,則執(zhí)行步驟c;
步驟b:根據(jù)所述任務的類型查找自適應分區(qū)模塊中是否有與之 相匹配的已初始化的自適應分區(qū),若是,則將所述任務加入到相應自
9適應分區(qū)的任務隊列中,轉(zhuǎn)入步驟二執(zhí)行;否則,為所述任務初始化
一個新的自適應分區(qū),并為所述新的自適應分區(qū)生成唯一標識符,將 所述任務加入到所述新的自適應分區(qū)的任務隊列中,轉(zhuǎn)入步驟二執(zhí)
行;
步驟c:刪除所述任務,并檢查各自適應分區(qū)的任務隊列是否為 空,若是,則刪除相應的自適應分區(qū),轉(zhuǎn)入步驟二執(zhí)行;否則,直接 轉(zhuǎn)入步驟二執(zhí)行。
若系統(tǒng)運行期間有任務申請加入,則任務接收控制模塊執(zhí)行如下 操作
步驟(1):計算申請加入的任務所需的最小處理器計算能力及系 統(tǒng)剩余的處理器計算能力;
步驟(2 ):比較所述系統(tǒng)剩余的處理器計算能力是否大于所述申 請加入的任務所需的最小處理器計算能力,若是,則執(zhí)行步驟(3); 否則,拒絕所述任務加入;
步驟(3 ):將所述任務加入到系統(tǒng)可調(diào)度集合中。
若系統(tǒng)運行期間有任務申請退出,則任務接收控制模塊將所述任 務加入到所述系統(tǒng)可調(diào)度任務集合中。
所述步驟四中,所述系統(tǒng)調(diào)度器是通過各自適應分區(qū)的標識符來 調(diào)度各自適應分區(qū)的。
所述步驟二中,所述自適應分區(qū)的分區(qū)調(diào)度器是根據(jù)其所屬的自 適應分區(qū)所轄任務的類型及運行參數(shù)計算其所屬自適應分區(qū)所需的 最小處理器計算能力及分區(qū)調(diào)度周期的。
本發(fā)明基于自適應分區(qū)技術,按比例分配處理器計算資源,不僅 防止了不可靠程序搶占重要任務的處理器時間,還阻止了惡意代碼獨 占處理器資源,有效^提高了系統(tǒng)的可靠性。同時,本發(fā)明通過采用新 任務準入控制、二級任務調(diào)度、自適應調(diào)節(jié)處理器能力機制,使系統(tǒng) 能夠有效地調(diào)度各類實時約束的任務集;在不影響先前任務運行的前 提下,有控制地添加新任務;根據(jù)系統(tǒng)負載變化,自適應調(diào)整處理器 資源配置,滿足了當前開放式實時系統(tǒng)高可靠性、實時與非實時任務 并發(fā)、計算環(huán)境不確定性等需求,具有擴展性好,系統(tǒng)可靠運行,應
10用范圍廣等特點。
圖1是現(xiàn)有單級調(diào)度任務方法示意圖; 圖2是本發(fā)明所述裝置結(jié)構(gòu)示意圖3是本發(fā)明所述裝置在Linux梯:作系統(tǒng)上實現(xiàn)的結(jié)構(gòu)示意圖4為本發(fā)明所述方法流程圖5為本發(fā)明所述方法的任務調(diào)度序列示意圖6為本發(fā)明所述方法在運行時有新任務申請加入時的流程圖。
具體實施例方式
以下結(jié)合附圖和優(yōu)選實施例對本發(fā)明做進一步詳細說明。
本發(fā)明基于自適應分區(qū)技術,按比例分配處理器計算資源,目前 已在Linux操作系統(tǒng)內(nèi)核得以實現(xiàn)。對于微內(nèi)核操作系統(tǒng),本發(fā)明所 述裝置也可以在內(nèi)核外實現(xiàn)。所以需要指出的是,本發(fā)明不局限于任 何具體的硬件平臺架構(gòu)和操作系統(tǒng)類型,具有較廣泛的通用性。
圖2是本發(fā)明所述裝置結(jié)構(gòu)示意圖,應用于嵌入式系統(tǒng),包括處 理器、系統(tǒng)調(diào)度器、系統(tǒng)可調(diào)度任務集合模塊、自適應分區(qū)模塊以及 任務接收控制模塊;
所述系統(tǒng)調(diào)度器是整個裝置的核心,用于根據(jù)所述系統(tǒng)可調(diào)度任 務集合模塊中任務的類型初始化所述自適應分區(qū)模塊的自適應分區(qū), 并為每個自適應分區(qū)生成唯一的標識符;根據(jù)接收到的各自適應分區(qū) 所需的最小處理器計算能力計算各自適應分區(qū)所需的最小處理器計 算能力占處理器計算能力的比例,并根據(jù)接收到的各自適應分區(qū)的分 區(qū)調(diào)度周期設置系統(tǒng)調(diào)度周期;根據(jù)所述各自適應分區(qū)所需的最小處 理器計算能力占處理器計算能力的比例計算各自適應分區(qū)在一個系 統(tǒng)調(diào)度周期內(nèi)能夠分配到的處理器時間,并將所述時間標記給各自適 應分區(qū);以及按照系統(tǒng)調(diào)度策略調(diào)度(如輪詢算法)各自適應分區(qū); 還用于監(jiān)測所述系統(tǒng)可調(diào)度任務集合模塊中是否有任務加入或者申 請退出,且在監(jiān)測到有任務加入時,才艮據(jù)所述任務的類型查找所述自適應分區(qū)模塊中是否有與之相匹配的已初始化的自適應分區(qū),若是,
則將所述任務加入到相應自適應分區(qū)的任務隊列中;否則,為所述任
務初始化一個新的自適應分區(qū),將所述任務加入到所述新的自適應分
區(qū)的任務隊列中;在監(jiān)測到有任務申請退出時,刪除所述任務,并檢 查各自適應分區(qū)的任務隊列是否為空,若是,則刪除相應的自適應分 區(qū)。
所述系統(tǒng)可調(diào)度任務集合模塊用來存儲已加入的任務或者申請 退出的任務。
所述自適應分區(qū)模塊為邏輯上的時間間隔區(qū),包括自適應分區(qū)、 分區(qū)調(diào)度器以及任務隊列,每個自適應分區(qū)均具有一個分區(qū)調(diào)度器和 一個任務隊列,所述任務隊列用來存儲加入的任務;所述分區(qū)調(diào)度器 用于計算其所屬自適應分區(qū)所需的最小處理器計算能力和分區(qū)調(diào)度 周期,并將計算結(jié)果發(fā)送給所述系統(tǒng)調(diào)度器;所述分區(qū)調(diào)度器還用于 按照分區(qū)調(diào)度策略調(diào)度相應任務隊列中的任務。
所述任務接收控制模塊,用于根據(jù)系統(tǒng)中剩余處理器計算能力控 制新任務的加入,并將加入的任務添加到所述系統(tǒng)可調(diào)度任務集合才莫 塊中,以保證新任務的加入不會破壞先前任務的可調(diào)度性;以及在系 統(tǒng)運行期間,有任務申請退出時將所述申請退出的任務添加到所述系 統(tǒng)可調(diào)度集合模塊中。
圖3是本發(fā)明所述裝置在Linux操作系統(tǒng)上實現(xiàn)的結(jié)構(gòu)示意圖; Linux操作系統(tǒng)分為內(nèi)核態(tài)與用戶態(tài),內(nèi)核任務運行在內(nèi)核態(tài),而應 用程序運行在用戶態(tài)。本實施例在Linux操作系統(tǒng)內(nèi)核中實現(xiàn),所以 運行在內(nèi)核態(tài),如圖所示,本實施例中共設置了四個自適應分區(qū),分 別處理不同類型的任務。其中,自適應分區(qū)1負責處理非實時性任務, 自適應分區(qū)2負責處理優(yōu)先級沖頂速率單調(diào)的實時任務,自適應分區(qū) 3負責處理面向最小空閑時間優(yōu)先的實時任務,自適應分區(qū)4則負責 處理基于時鐘驅(qū)動循環(huán)類型的實時任務。
本實施例中,系統(tǒng)調(diào)度器采用最早截止期限優(yōu)先調(diào)度策略來調(diào)度 各自適應分區(qū);同時,系統(tǒng)調(diào)度器可感知任務的動態(tài)加入和退出,根 據(jù)情況新建自適應分區(qū)或調(diào)整分區(qū)所占的處理器計算能力。圖4為本發(fā)明所述方法流程圖,下面通過結(jié)合圖3具體描述本發(fā)
明所述方法的步驟
步驟401:系統(tǒng)調(diào)度器根據(jù)系統(tǒng)可調(diào)度任務集合中的任務類型初 始化自適應分區(qū),并為每個自適應分區(qū)生成唯一標識符;
每一個自適應分區(qū)代表一種調(diào)度策略,相同調(diào)度類型的任務被分 配到相同的自適應分區(qū)的任務隊列中,每一個自適應分區(qū)都要被唯一 標識,從而可以讓系統(tǒng)調(diào)度器進一步訪問。
圖3所示實施例中,共有四個自適應分區(qū),分別是:AS1 (分時 調(diào)度);AS2 (優(yōu)先級沖頂速率單調(diào)調(diào)度);AS3 (最小空閑時間優(yōu)先調(diào) 度)和AS4 (基于時鐘驅(qū)動循環(huán)調(diào)度),每一個分區(qū)中都有分區(qū)調(diào)度 器和任務隊列。
步驟402:各自適應分區(qū)的分區(qū)調(diào)度器根據(jù)其所屬的自適應分區(qū) 所轄任務的類型和運行參數(shù)計算其所屬的自適應分區(qū)所需的最小處 理器計算能力及分區(qū)調(diào)度周期;
圖3所示實施例中,確定四個自適應分區(qū)所需的最小處理器計算 能力和調(diào)度周期分別為AS1 ( 0. 15,260 ) ;AS2 ( 0. 05, 330 ); AS3 (0. 2, 100); AS4 ( 0. 1, 120)。
步驟403:所述系統(tǒng)調(diào)度器對接收到的各自適應分區(qū)所需的最小 處理器計算能力進行歸一化計算,即令處理器的計算能力為1. 0,計 算各自適應分區(qū)所需的最小處理器計算能力占處理器計算能力的比 例,并根據(jù)接收到的各自適應分區(qū)的分區(qū)調(diào)度周期設置系統(tǒng)調(diào)度周
期;
圖3所示實施例中,各自適應分區(qū)所需的最小處理器能力占處理 器計算能力的比例為(0.3, 0.1, 0.4, 0.2);確定系統(tǒng)調(diào)度周期為 100ms。
步驟404:系統(tǒng)調(diào)度器按照各自適應分區(qū)所需的最小處理器能力 占處理器計算能力的比例計算各自適應分區(qū)在一個系統(tǒng)周期內(nèi)能夠 分配到的處理器時間預算,并將所述時間預算標記給各自適應分區(qū);
圖3所示實施例中,各自適應分區(qū)在一個系統(tǒng)周期內(nèi)能夠分配到 的處理器時間預算分別為(30, 10, 40, 20 )。步驟405:系統(tǒng)調(diào)度器根據(jù)系統(tǒng)調(diào)度策略調(diào)度各自適應分區(qū),并 按照各自適應分區(qū)標記的處理器時間為其分配處理器時間;
圖3所示實施例中,由于系統(tǒng)調(diào)度器采用的是最早截止期限優(yōu)先 調(diào)度策略,每個自適應分區(qū)所分配到的處理器時間也就是其截止期 限,所以,按照(30, 10, 40, 20)的時間分配,系統(tǒng)調(diào)度器按照 AS2-AS4-AS1-AS3的順序調(diào)度各自適應分區(qū)。
步驟406:各自適應分區(qū)的分區(qū)調(diào)度器根據(jù)分區(qū)調(diào)度策略在其所 分配到的處理器時間內(nèi)調(diào)度所屬自適應分區(qū)的任務隊列中的任務。
如圖5所示,是二級調(diào)度的時間序列示意圖,才艮據(jù)最早截止期限 優(yōu)先調(diào)度策略,系統(tǒng)調(diào)度器以AS2-AS4-AS1-AS3的順序調(diào)度各自適應 分區(qū),并分配相應的處理器時間,每個自適應分區(qū)在分配的處理器時 間內(nèi)按自身調(diào)度策略調(diào)度其任務隊列中的任務,其中,t表示任務, AS3自適應分區(qū)的分區(qū)調(diào)度器調(diào)度所屬任務隊列的任務的次序為 tl-t2-t3。
上述步驟405中,系統(tǒng)調(diào)度器通過如下方法調(diào)度各自適應分區(qū) 在自適應分區(qū)調(diào)度開始后,用當前自適應分區(qū)剩余的處理器時間減去 本次調(diào)度時間內(nèi)上一個系統(tǒng)時鐘中斷與當前系統(tǒng)時鐘中斷的時間差, 比較得到的結(jié)果是否為零,若是,則當前自適應分區(qū)的時間到,轉(zhuǎn)入 下一個自適應分區(qū);否則,繼續(xù)調(diào)度當前自適應分區(qū)。
在系統(tǒng)運行期間,若有新任務申請加入,則任務接收控制模塊會 根據(jù)系統(tǒng)剩余的處理器計算能力有控制地接收,以確保新任務的加入 不會破壞先前任務集的運行,如圖6所述,是有新任務申請加入時的 流程圖,具體操作內(nèi)容包括
步驟601:計算申請加入的任務所需的最小處理器計算能力及系 統(tǒng)剩余的處理器計算能力;
步驟602:比較所述系統(tǒng)剩余的處理器計算能力是否大于所述申 請加入任務所需的最小處理器計算能力,若是,則執(zhí)行步驟604;否 則,執(zhí)行步驟603;
步驟6G3:拒絕所述任務加入;
步驟604:允許加入,并將所述任務加入到系統(tǒng)可調(diào)度任務集合
14中。
在系統(tǒng)運行期間,若系統(tǒng)運行期間有任務申請退出,則任務接收 控制模塊將所述任務加入到所述系統(tǒng)可調(diào)度任務集合中。
在系統(tǒng)運行期間,所述系統(tǒng)調(diào)度器監(jiān)測所述系統(tǒng)可調(diào)度任務集合 中是否有任務加入或者申請退出,若監(jiān)測到有任務加入或者申請退
出,則在當前系統(tǒng)調(diào)度周期結(jié)束后執(zhí)行如下步驟
步驟(1):判斷系統(tǒng)可調(diào)度任務集合中當前任務是新加入的任務 還是申請退出的任務,若是新加入的任務,則執(zhí)行步驟(2);若是申 請退出的任務,則執(zhí)行步驟(3 );
步驟(2):根據(jù)所述任務的類型查找自適應分區(qū)模塊中是否有與 之相匹配的已初始化的自適應分區(qū),若是,則將所述任務加入到相應 自適應分區(qū)的任務隊列中,轉(zhuǎn)入步驟402執(zhí)行;否則,為所述任務初 始化一個新的自適應分區(qū),并為所述新的自適應分區(qū)生成唯一標識 符,將所述任務加入到所述新的自適應分區(qū)的任務隊列中,轉(zhuǎn)入步驟 402執(zhí)行;
步驟(3):刪除所述任務,并檢查各自適應分區(qū)的任務隊列是否 為空,若是,則刪除相應的自適應分區(qū),轉(zhuǎn)入步驟402執(zhí)行;否則, 直接轉(zhuǎn)入步驟402執(zhí)行。
本發(fā)明可以在保證嵌入式實時操作系統(tǒng)可靠安全運行的前提下, 支持多種類型任務共存,并可利用剩余計算資源進行系統(tǒng)擴充,可有 效延長嵌入式實時系統(tǒng)的運行生命周期。
權利要求
1、一種嵌入式操作系統(tǒng)的任務調(diào)度裝置,包括處理器、系統(tǒng)調(diào)度器和系統(tǒng)可調(diào)度任務集合模塊,其特征在于,還包括自適應分區(qū)模塊,所述自適應分區(qū)模塊包括自適應分區(qū)、分區(qū)調(diào)度器以及任務隊列,每個自適應分區(qū)均具有一個分區(qū)調(diào)度器和一個任務隊列,所述任務隊列用來存儲加入的任務;所述分區(qū)調(diào)度器用于計算其所屬自適應分區(qū)所需的最小處理器計算能力和分區(qū)調(diào)度周期,并將計算結(jié)果發(fā)送給所述系統(tǒng)調(diào)度器;所述分區(qū)調(diào)度器還用于按照分區(qū)調(diào)度策略調(diào)度相應任務隊列中的任務;所述系統(tǒng)調(diào)度器用于根據(jù)所述系統(tǒng)可調(diào)度任務集合模塊中任務的類型初始化所述自適應分區(qū)模塊的自適應分區(qū);計算所述各自適應分區(qū)所需的最小處理器計算能力占處理器計算能力的比例,并設置系統(tǒng)調(diào)度周期;根據(jù)所述比例計算各自適應分區(qū)在一個系統(tǒng)調(diào)度周期內(nèi)能夠分配到的處理器時間,并將所述時間標記給各自適應分區(qū);以及按照系統(tǒng)調(diào)度策略調(diào)度各自適應分區(qū);所述系統(tǒng)可調(diào)度任務集合模塊用來存儲已加入的任務或者申請退出的任務。
2、 如權利要求1所述的嵌入式操作系統(tǒng)的任務調(diào)度裝置,其特 征在于,所述系統(tǒng)調(diào)度模塊還用于為每個自適應分區(qū)生成唯一的標識 符;以及監(jiān)測所述系統(tǒng)可調(diào)度任務集合模塊中是否有任務加入或者申 請退出,且在監(jiān)測到有任務加入時,才艮據(jù)所述任務的類型查找所述自 適應分區(qū)模塊中是否有與^目匹配的已初始化的自適應分區(qū),若是, 則將所述任務加入到相應自適應分區(qū)的任務隊列中;否則,為所述任 務初始化一個新的自適應分區(qū),將所述任務加入到所述新的自適應分 區(qū)的任務隊列中;在監(jiān)測到有任務申請退出時,刪除所述任務,并檢 查各自適應分區(qū)的任務隊列是否為空,若是,則刪除相應的自適應分 區(qū)。
3、 如權利要求1所述的嵌入式操作系統(tǒng)的任務調(diào)度裝置,其特征在于,所述裝置還包括任務接收控制模塊,用于根據(jù)系統(tǒng)中剩余處 理器計算能力控制任務的加入,并將加入的任務添加到所述系統(tǒng)可調(diào)度任務集合模塊中;以及在系統(tǒng)運行期間,有任務申請退出時將所述申請退出的任務添加到所述系統(tǒng)可調(diào)度集合模塊中。
4、 一種嵌入式操作系統(tǒng)的任務調(diào)度方法,其特征在于,包括如 下步驟步驟一系統(tǒng)調(diào)度器根據(jù)系統(tǒng)可調(diào)度任務集合中的任務類型初始 化自適應分區(qū);步驟二所述自適應分區(qū)的分區(qū)調(diào)度器計算其所屬自適應分區(qū)所 需的最小處理器計算能力和分區(qū)調(diào)度周期,并將計算結(jié)果發(fā)送給所述 系統(tǒng)調(diào)度器;步驟三所述系統(tǒng)調(diào)度器根據(jù)接收到的各自適應分區(qū)所需的最小 處理器計算能力計算各自適應分區(qū)所需的最小處理器計算能力占處 理器計算能力的比例,并根據(jù)接收到的各自適應分區(qū)的分區(qū)調(diào)度周期 設置系統(tǒng)調(diào)度周期;然后根據(jù)所述比例計算各自適應分區(qū)在一個系統(tǒng) 調(diào)度周期內(nèi)能夠分配到的處理器時間,并將所述時間標記給各自適應 分區(qū);步驟四所述系統(tǒng)調(diào)度器在系統(tǒng)調(diào)度周期內(nèi)根據(jù)系統(tǒng)調(diào)度策略調(diào) 度各自適應分區(qū),并為各自適應分區(qū)分配處理器時間,當前調(diào)度的自 適應分區(qū)的分區(qū)調(diào)度器根據(jù)分區(qū)調(diào)度策略在其所分配到的處理器時 間內(nèi)調(diào)度任務隊列中的任務。
5、 如權利要求4所述的嵌入式操作系統(tǒng)的任務調(diào)度方法,其特 征在于,其特征在于,所述步驟一還包括為所述各自適應分區(qū)生成 唯一標識符。
6、 如權利要求4所述的嵌入式操作系統(tǒng)的任務調(diào)度方法,其特 征在于,在系統(tǒng)運行期間,所述系統(tǒng)調(diào)度器監(jiān)測所述系統(tǒng)可調(diào)度任務 集合中是否有任務加入或者申請退出,若監(jiān)測到有任務加入或者申請 退出,則在當前系統(tǒng)調(diào)度周期結(jié)束后執(zhí)行如下步驟步驟a:判斷系統(tǒng)可調(diào)度任務集合中當前任務是新加入的任務還 是申請退出的任務,若是新加入的任務,則執(zhí)行步驟b;若是申請退 出的任務,則執(zhí)行步驟c;步驟b:根據(jù)所述任務的類型查找自適應分區(qū)模塊中是否有與之 相匹配的已初始化的自適應分區(qū),若是,則將所述任務加入到相應自 適應分區(qū)的任務隊列中,轉(zhuǎn)入步驟二執(zhí)行;否則,為所述任務初始化 一個新的自適應分區(qū),并為所述新的自適應分區(qū)生成唯一標識符,將 所述任務加入到所述新的自適應分區(qū)的任務隊列中,轉(zhuǎn)入步驟二執(zhí) 行;步驟c:刪除所述任務,并檢查各自適應分區(qū)的任務隊列是否為 空,若是,則刪除相應的自適應分區(qū),轉(zhuǎn)入步驟二執(zhí)行;否則,直接 轉(zhuǎn)入步驟二執(zhí)行。
7、 如權利要求4所述的嵌入式操作系統(tǒng)的任務調(diào)度方法,其特 征在于,若系統(tǒng)運行期間有任務申請加入,則任務接收控制模塊執(zhí)行 如下操作步驟(1 ):計算申請加入的任務所需的最小處理器計算能力及系 統(tǒng)剩余的處理器計算能力;步驟(2 ):比較所述系統(tǒng)剩余的處理器計算能力是否大于所述申 請加入的任務所需的最小處理器計算能力,若是,則執(zhí)行步驟(3); 否則,拒絕所述任務加入;步驟(3 ):將所述任務加入到系統(tǒng)可調(diào)度集合中。
8、 如權利要求4所述的嵌入式操作系統(tǒng)的任務調(diào)度方法,其特 征在于,若系統(tǒng)運行期間有任務申請退出,則任務接收控制模塊將所 述任務加入到所述系統(tǒng)可調(diào)度任務集合中。
9、 如權利要求5所述的嵌入式操作系統(tǒng)的任務調(diào)度方法,其特 征在于,所述步驟四中,所述系統(tǒng)調(diào)度器是通過各自適應分區(qū)的標識 符來調(diào)度各自適應分區(qū)的。
10、如權利要求4所述的嵌入式操作系統(tǒng)的任務調(diào)度方法,其特征在于,所述步驟二中,所述自適應分區(qū)的分區(qū)調(diào)度器是根據(jù)其所屬 的自適應分區(qū)所轄任務的類型及運行參數(shù)計算其所屬自適應分區(qū)所 需的最小處理器計算能力及分區(qū)調(diào)度周期的。
全文摘要
本發(fā)明涉及一種嵌入式操作系統(tǒng)的任務調(diào)度裝置及方法,所述裝置包括處理器、系統(tǒng)調(diào)度器、系統(tǒng)可調(diào)度任務集合模塊以及自適應分區(qū)模塊;所述方法首先初始化自適應分區(qū);然后根據(jù)各自適應分區(qū)所需的最小處理器計算能力占處理器計算能力的比例得到各自適應分區(qū)在一個系統(tǒng)調(diào)度周期內(nèi)能夠分配到的處理器時間;最后在系統(tǒng)調(diào)度周期內(nèi)調(diào)度各自適應分區(qū)時,再為各自適應分區(qū)分配處理器時間,當前調(diào)度的自適應分區(qū)的分區(qū)調(diào)度器根據(jù)分區(qū)調(diào)度策略在其所分配到的處理器時間內(nèi)調(diào)度任務隊列中的任務。本發(fā)明克服了當前嵌入式操作系統(tǒng)中調(diào)度機制存在的只能對同種類型的靜態(tài)優(yōu)先級任務進行全局調(diào)度的缺陷。
文檔編號G06F9/48GK101452404SQ20081021828
公開日2009年6月10日 申請日期2008年12月9日 優(yōu)先權日2008年12月9日
發(fā)明者翌 李, 王繼剛, 鐘衛(wèi)東 申請人:中興通訊股份有限公司