新四季網

基於SmartOSEKOS的非周期性任務調度方法

2023-04-24 10:02:01 1

專利名稱:基於SmartOSEK OS的非周期性任務調度方法
技術領域:
本發明涉及一種非周期性任務調度方法,特別是涉及基於SmartOSEK OS的非周期 性任務調度方法。
背景技術:
實時作業系統的主要目標在於保證硬實時任務,一般是周期性任務的實時性,並 儘量降低非周期性任務的平均響應時間。單處理器系統中存在多個任務在同一時間段內 申請處理器資源,如何正確處理這些任務的執行時間以及執行順序是解決實時性問題的關 鍵。因為非周期任務的到達不定時以及執行時間不確定的特點,優先級較高的非周期性任 務在一定程度上會阻止周期性任務的正常運行。因此高實時性能的作業系統都會提供處理 非周期性任務的調度算法。SmartOSEK OS是由浙江大學嵌入式工程中心根據國家汽車電子軟體發展的需 求而自主研發的符合0SEK/VDX標準的嵌入式實時作業系統。0SEK/VDX是國際汽車工業 為提高汽車電子軟體的重用性,降低軟體開發成本而提出的汽車開放結構的工業標準。 SmartOSEK OS是多任務的單處理器系統,在同一時間內可以同時存在周期性任務、非周期 性任務,所有任務的優先級是用戶根據任務的重要性配置的。一般來說任務的觸發時間是 隨機的,保證周期任務的實時要求和非周期性任務的低響應時間是SmartOSEK OS的責任。調度非周期性任務的最簡單方法就是將非周期任務作為後臺任務處理,但是這種 方法使得非周期性任務的響應時間很長。為降低任務的平均響應時間,流行的做法就是建 立一個周期性服務,以下簡稱為server,專門為非周期性任務的調度服務,在該服務能申請 到的處理器時間內有規律的調用非周期性任務執行。一個sever主要用兩個屬性來描述 優先級以及能量(capacity或者budget),其中優先級作為與其他周期性任務競爭處理器 的參數,capacity是server能夠申請到的處理器時間。當server的capacity不為空時,非 周期任務可以運行在server的優先級競爭處理器。如果獲得處理器成功,在執行任務的同 時也消耗server的capacity,直到任務執行結束,或者capacity消耗殆盡。如果capacity 消耗盡,該非周期任務需要等待capacity的補給。Sporadic Server算法是眾多server算 法中比較優秀的一種帶寬保留算法。

發明內容
本發明的目的是提供一種在基於優先級調度的多任務單處理器系統中,利用 Sporadic Server來調度非周期性任務,從而保證任務的可調度性、實時性,並使調度性能 的實時性、穩定安全性得到提高的非周期性任務調度方法。為解決上述技術問題,本發明採取以下技術方案一種基於SmartOSEK OS的 非周期性任務調度方法,其特徵在於在基於優先級調度的多任務單處理器系統中,利 用Sporadic Server來調度非周期性任務,其與基於優先級的調度 算法一起形成了當前 SmartOSEK OS中的調度系統。
本發明的調度方法在基於優先級調度的多任務單處理器系統中,利用Sporadic Server來調度非周期性任務,從而保證任務的可調度性、實時性,並使調度性能的實時性、 穩定安全性得到提高。


圖 1 是 Sporadic Server 在 SmartOSEK OS 中執行流 程。
具體實施例方式下面結合附圖對本發明的技術方案進行詳細說明。為保證任務的可調度性和實時性(周期性任務在周期結束前執行完畢以及非周 期性任務的低響應時間),本發明將Sporadic server算法引進SmartOSEK OS中負責調度 非周期任務。在基於優先級調度的多任務單處理器系統中,利用Sporadic Server來調度非 周期性任務,且只有非周期任務會分配給一個server調度,具體地說,Sporadic Server是 一種算法,這裡的server是指為實現SporadicServer而在OS內建立的一個周期性任務, 即server是為了實現Sporadic server算法,在os中的運行實體。針對SmartOSEK中的 實現,server就是一個周期性任務。Pfij^E Sporadic server ^^iSiST SmartOSEK OSSporadic Server 算法引進OS中處理非周期性任務的調度後,其與基於優先級的調度算法一起形成了當前 SmartOSEK OS中的調度系統;SmartOSEK OS中的全局調度器仍使用基於優先級的調度 算法來調度周期性任務以及所有的server,所述全局調度器是讓最高優先級的任務或者 capacity不為空且存在就緒任務的server來搶佔處理器,所謂就緒狀態的server是指 能量不為空且存在就緒的非周期任務的server ;局部調度器則使用Sporadic server來 調度非周期任務,將所有非周期任務按照FIFO的原則放至對應的server就緒隊列中。而 SmartOSEK OS只關心server的存在,不關心系統中當前到底有幾個非周期性任務。Sever的主要屬性有兩個,即優先級以及能量(capacity或者budget),並且可 由用戶根據任務集來配置,其中優先級作為與其他周期性任務競爭處理器的參數,而能量 (capacity)是server能夠申請到的處理器時間。Sporadic Server算法中,在下一次補給時刻之前,server會一直保留著 capacity ;當server的capacity不為空時,非周期任務可以運行在server的優先級 因而能夠與其他任務競爭處理器,得到處理器執行任務的同時需要消耗server的能量 (capacity)直到任務執行結束,或者直到能量(capacity)消耗殆盡。如果能量(capacity) 消耗盡,則該非周期任務需要等待能量(capacity)的補給。在SmartOSEK OS中,sporadic server作為一個特殊的周期性任務,除了周期以 及優先級外,還具有與其他周期性任務不同的屬性特徵,如下所示(1)non-periodic tasks,queue 每一個 server 根據 FIFO 算法調度歸屬於該 server的非周期性任務。(2) execution capacity 該變量用來描述server的capacity大小,控制非周期 性任務運行的時間。(3)replenishment period 用於server周期性補給的時間約束。
(4)replenishment queue 用於存儲該server的多個補給時刻以及補給量的數組。(5) alarm 補給操作執行時刻計時器。(6) remaining budget 當前server的剩餘capacity,即可以佔有處理器的時間。(7)budget start 標記 capacity 開始消耗的時刻。Sporadic Server參數(周期以及capacity)的配置是基於配置的任務集的,合理 的server參數可以很好地調整周期性任務與非周期性任務執行順序。Sporadic server的capacity算法(補給與消耗算法)有很多種,SmartOSEK OS 中使用的capacity算法如下所示(1)在系統啟動時,將capacity初始化為滿。(2)只有當非周期性任務在運行時,capacity才會消耗。(3)只有server的capacity被非周期性任務消耗後才可以補給(4)當server或者比server更高優先級任務運行時,開始計算補給時刻,而且補 給時刻為當前時刻加上server的周期。(5)當capacity從上次補給過後被消耗了,並且當前server沒有任務需要執行 時,要計算當前server需要的補給數量。當非周期性任務就緒並且當前server的capacity不為空、server的優先級是當 前系統中最高優先級時,sporadic server負責調度執行非周期性任務;當capacity為空 時,要立刻掛起server對應的非周期性任務,執行其他就緒的周期任務。SmartOSEK OS支持多個server共存,能夠處理不同重要度的非周期任務。優 先級較低的非周期性或者執行時間很長的任務可以分配給優先級稍低的server調度,該 server的能量(capacity)可以較長;優先級較高或者執行時間很短的任務可以分配給優 先級較高的server調度,該server的能量(capacity)可以適當變小。通過上述設置可以 儘量使得非周期任務的平均響應時間降低,而且可以儘量降低對周期性任務的影響,從而 使得周期性任務仍然能夠在最後期限前完成。圖1描述了 Sporadic Server這個特殊周期任務在SmartOSEK OS中執行流程。根 據本發明中的sporadic server的算法以及server的數據結構描述,參考圖1的操作流程 描述,在SmartOSEK OS中實現sporadic server,並將該模塊作為OS的可裁剪模塊。如圖1所示(1)在配置階段,每個非周期性任務需要配置唯一對應的Server。(2)當非周期性任務到達系統後,OS根據FIFO原則將其放置在對應的server的 非周期任務就緒列表中。(3)如果server的capacity不為零而且就緒表不為空,則該server處於就緒狀 態,即該server對於OS來說就是一個就緒的周期任務,可以參與調度。(4)如果server是系統中優先級最高的就緒任務,則處於該server就緒任務列表 的隊首非周期任務可以佔用處理器執行任務。(5)非周期任務執行的同時也要消耗capacity,任務每執行一個時間單位則 capacity也需要減少一個時間單位。(6)如果server的capacity耗盡,或者任務執行結束都要將server處於非就緒狀態。等待capacity的補給或者就緒的非周期任務。本發明測試的硬體環境為使用HCS12開發板一塊運行SmartOSEK OS內核代碼; 使用調試器將基於SmartOSEK OS的編寫的應用程式燒寫至HCS12開發板。本發明測試的 軟體環境為使用CodeWarrior IDE用來編譯並連接調試器將應用程式下載到開發板上運 行。通過在Freescale HCS12 上測試引入了 sporadic server 後的 SmartOSEK 0S,可 以得到sporadic server能夠明顯提高SmartOSEKOS任務集合的可調度性、實時性,非周 期性任務的平均響應時間降低,周期性任務在截止期限前完成的比例提高。
權利要求
一種基於SmartOSEK OS的非周期性任務調度方法,其特徵在於在基於優先級調度的多任務單處理器系統中,利用SporadicServer來調度非周期性任務,其與基於優先級的調度算法一起形成了當前SmartOSEK OS中的調度系統。
2.如權利要求1所述調度方法,其特徵在於SmartOSEKOS中的全局調度器用於調 度最高優先級的任務搶佔處理器,所述最高優先級的任務是周期任務或處於就緒狀態的 server。
3.如權利要求1或2所述調度方法,其特徵在於SmartOSEKOS中的局部調度器使 用Sporadic server來調度非周期任務,將所有非周期任務按照FIFO的原則放至對應的 server的就緒隊列中。
4.如權利要求3所述調度方法,其特徵在於SporadicServer算法作為一種帶寬保留 算法,在下一次能量補給時刻之前,server會一直保留著能量。
5.如權利要求4所述調度方法,其特徵在於-Sporadicserver的補給與消耗算法如下(1)在系統啟動時,將每個server的能量初始化為滿;(2)只有當非周期性任務在運行時,對應的server能量才會消耗;(3)只有非周期性任務對應的server的能量被非周期性任務消耗後才能夠補給;(4)當server或者比server更高優先級任務運行時,開始計算該server的補給時刻, 而且所述補給時刻為當前時刻加上server的周期;(5)當server的能量從上次補給時刻過後被消耗了,並且當前server沒有任務需要執 行時,計算當前server需要補給的能量補給數量。
6.如權利要求5所述調度方法,其特徵在於當非周期性任務就緒並且對應的server 的能量不為空、且server的優先級是當前系統中最高優先級時,sporadic server負責調 度執行非周期性任務;隨著server的能量消耗為空時,OS就要立刻掛起server對應的非 周期性任務,執行其他就緒的周期任務或者server。
7.如權利要求6所述調度方法,其特徵在於0S支持多個server,優先級較低或者執 行時間很長的非周期性任務分配給優先級稍低的server調度,該server的能量較長;優先級較高或者執行時間很短的非周期性任務分配給優先級較高的server調度,該 server的能量適當較小。
8.如權利要求7所述調度方法,其特徵在於SporadicServer在SmartOSEK OS中執 行流程為(1)在配置階段,為每個非周期性任務配置唯一對應的Server;(2)當非周期性任務到達SmartOSEKOS後,SmartOSEK OS根據FIFO原則將其放置在 對應的server的非周期任務就緒列表中;(3)如果server的能量不為零而且就緒表不為空,則該server處於就緒狀態、能夠參 與調度;(4)如果server是系統中優先級最高的就緒任務,則處於該server就緒任務列表的隊 首非周期任務能夠佔用處理器執行任務;(5)非周期任務執行的同時也要消耗capacity,任務每執行一個時間單位則capacity 也需要減少一個時間單位;(6)如果server的能量耗盡,或者任務執行結束都要將server處於非就緒狀態。
全文摘要
本發明涉及一種基於SmartOSEK OS的非周期性任務調度方法,其特徵在於在基於優先級調度的多任務單處理器系統中,利用Sporadic Server來調度非周期性任務,其與基於優先級的調度算法一起形成了當前SmartOSEK OS中的調度系統。本發明的調度方法在基於優先級調度的多任務單處理器系統中,利用Sporadic Server來調度非周期性任務,從而保證任務的可調度性、實時性,並使調度性能的實時性、穩定安全性得到提高。
文檔編號G06F9/48GK101833477SQ201010186849
公開日2010年9月15日 申請日期2010年5月28日 優先權日2010年5月28日
發明者吳朝暉, 周麗, 周霖, 張成碩, 李紅, 王鑄 申請人:浙江大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀