版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
精品文檔-下載后可編輯CBS算法的RTAI內(nèi)核調(diào)度器設(shè)計(上)-設(shè)計應(yīng)用摘要近年來基于雙內(nèi)核架構(gòu)增強(qiáng)Linux操作系統(tǒng)實時性的RTAI[1](RealTimeApplicATIonInterface)在工業(yè)控制等硬實時領(lǐng)域已經(jīng)得到了越來越多的應(yīng)用。本文提出的調(diào)度器通過采用基于服務(wù)策略的CBS算法對RATI內(nèi)核下的EDF調(diào)度器進(jìn)行擴(kuò)展,可以保證分配一定的CPU資源供Linux上的軟實時應(yīng)用,即使在有硬實時任務(wù)并發(fā)時也能得到處理器資源。實驗結(jié)果證明了基于CBS算法擴(kuò)展RTAI內(nèi)核調(diào)度器的正確性。
關(guān)鍵詞RTAILinuxCBS算法內(nèi)核調(diào)度器
引言
嵌入式系統(tǒng)大多工作在有實時性要求的環(huán)境中,有些嵌入式設(shè)備可能需要軟件在ms級時間單位內(nèi)做出響應(yīng),而有些實時任務(wù)則要無任何延時地以幾ms的周期執(zhí)行,這就迫切需要一個功能強(qiáng)大、配置方便的實時操作系統(tǒng)來支持。一些商業(yè)的嵌入式實時操作系統(tǒng)(如WindowsCE、VxWorks等)價格都比較昂貴,這就促使人們轉(zhuǎn)向了改造通用嵌入式操作系統(tǒng),使其滿足實時性。這種改造要求源代碼必須開放,而Linux是嵌入式應(yīng)用中的通用嵌入式操作系統(tǒng),源代碼開放,滿足改造研究上的需求。
對Linux實時化改造的方案很多,主要有兩種:一種直接修改內(nèi)核,另一種是采用雙內(nèi)核機(jī)制。種方法只能用于軟實時應(yīng)用,只有雙內(nèi)核架構(gòu)的方案可以保障硬實時應(yīng)用的截止期不被錯過。但是,雙內(nèi)核架構(gòu)在軟、硬實時任務(wù)混合的應(yīng)用環(huán)境中還存在一些問題。由于硬實時任務(wù)工作在RTAI實時內(nèi)核空間中,而軟實時任務(wù)工作在Linux內(nèi)核空間中,Linux作為優(yōu)先級的任務(wù)被頂層實時內(nèi)核調(diào)度執(zhí)行,在一段時間內(nèi)可以分配給軟實時任務(wù)的處理器時間依賴于RTAI硬實時應(yīng)用對處理器帶寬的要求,而且在不同的時間段內(nèi)可用的處理器時間一般會有很大的不同。這就難以保障運(yùn)行在Linux中的軟時應(yīng)用達(dá)到預(yù)先設(shè)定的服務(wù)質(zhì)量水平。
1基于服務(wù)策略算法的實時調(diào)度器
針對雙內(nèi)核架構(gòu)下增強(qiáng)Linux實時性時存在的問題,本文提出一種實時調(diào)度器,采用基于服務(wù)策略的CBS算法對RTAI內(nèi)核下的EDF調(diào)度器進(jìn)行擴(kuò)展,保證在有硬實時任務(wù)的同時滿足Linux內(nèi)核空間下軟實時任務(wù)的周轉(zhuǎn)時間。
1.1實時調(diào)度器基于的CBS算法定義
為了縮短混合實時任務(wù)調(diào)度中軟實時任務(wù)的響應(yīng)時間,以及減少軟實時任務(wù)錯失截止期,人們提出了多種軟實時任務(wù)的調(diào)度算法。典型的有基于服務(wù)策略的算法,又稱“帶寬預(yù)留算法”。該算法在保證硬實時周期任務(wù)滿足截止期的前提下,預(yù)留出適當(dāng)?shù)奶幚砥鲙捵鳛榉?wù)器來處理軟實時任務(wù),常用的算法有CBS、TBS算法等。服務(wù)策略的含義是:服務(wù)器把到達(dá)的任務(wù)放入一個非優(yōu)先規(guī)則的隊列中,該隊列的個任務(wù)根據(jù)分配的截止期插入EDF調(diào)度隊列中,如果隊列的個任務(wù)被插入到調(diào)度隊列等待調(diào)度,則稱“服務(wù)器是合格的”,否則稱“服務(wù)器是不合格的”;如果隊列的個任務(wù)正在執(zhí)行,則稱“服務(wù)器為活動的”。下面給出了采用CBS算法時軟實時任務(wù)在不影響硬實時任務(wù)截止期的情況下是否可以調(diào)度的判別準(zhǔn)則。
假定某一實時任務(wù)Ti的處理器帶寬記為(Ci,Pi),表示任務(wù)Ti在周期Pi內(nèi)多占用Ci的處理器時間。定義實時任務(wù)Ti的處理器利用率為:
滿足上式時任務(wù)集是可調(diào)度的。其中Umax是EDF算法調(diào)度時CPU處理器利用率的值。
CBS算法步驟詳細(xì)定義如下:
①一個CBS服務(wù)器用預(yù)留執(zhí)行能力cs和有序?qū)Γ≦s,Ts)來表示。其中,Qs表示服務(wù)器的執(zhí)行能力補(bǔ)充值,Ts表示服務(wù)器周期。服務(wù)器帶寬Us=Qs/Ts。服務(wù)器截止期的初始值ds,0=0,而任意時刻,服務(wù)器的修正截止期ds,k和服務(wù)器相關(guān)聯(lián)。②被服務(wù)器服務(wù)的任務(wù)(隊列的個任務(wù))被分配一個動態(tài)截止期di,j,該截止期等于當(dāng)前服務(wù)器截止期ds,k。③不管一個任務(wù)什么時候執(zhí)行,服務(wù)器的預(yù)留執(zhí)行能力cs都以相同的數(shù)量遞減。④當(dāng)預(yù)留執(zhí)行能力cs遞減到零時,馬上被重置為執(zhí)行能力補(bǔ)充值Qs,同時產(chǎn)生新的服務(wù)器截止期ds,k+1=ds,k+Ts。⑤在時刻t,如果存在一個服務(wù)的任務(wù)Ji,j(ri,j≤t≤fi,j),那么稱“CBS處于活動狀態(tài)”,否則稱為“空閑狀態(tài)”。⑥當(dāng)一個作業(yè)Ji,j到達(dá)時,如果此時服務(wù)器處于活動狀態(tài),那么任務(wù)的服務(wù)請求進(jìn)入掛起任務(wù)隊列,此隊列需是非搶先原則的隊列(如先進(jìn)先出隊列)。⑦當(dāng)一個任務(wù)Ji,j到達(dá),且服務(wù)器處于空閑狀態(tài)時,如果cs≥(ds,k-ri,j)Us,那么服務(wù)器產(chǎn)生一個新的服務(wù)器截止期ds,k+1=ri,j+Ts,并且把預(yù)留執(zhí)行能力cs重置為執(zhí)行能力補(bǔ)充值Qs,否則服務(wù)器使用當(dāng)前的服務(wù)器截止期ds,k和當(dāng)前的預(yù)留執(zhí)行能力cs來對任務(wù)進(jìn)行服務(wù)。⑧當(dāng)一個任務(wù)完成時,服務(wù)器利用當(dāng)前的預(yù)留執(zhí)行能力和截止期繼續(xù)為掛起任務(wù)隊列中的任務(wù)服務(wù)。如果掛起任務(wù)隊列中沒有任務(wù),那么服務(wù)器變成空閑狀態(tài)。⑨在任何時刻,服務(wù)器分配給任務(wù)的截止期為生成的服務(wù)器截止期。
1.2EDF調(diào)度器的CBS算法擴(kuò)展設(shè)計
先引入一種“虛擬任務(wù)”的概念。所謂“虛擬任務(wù)”,就是指由RTAI底層實時小內(nèi)核按EDF算法直接調(diào)度執(zhí)行的一種特殊的硬實時任務(wù),對應(yīng)于Linux用戶空間的某一軟實時應(yīng)用。其任務(wù)截止期由RTAI內(nèi)核下的CBS服務(wù)器計算得出。
本文將RATI內(nèi)核下的EDF調(diào)度器進(jìn)行了以下擴(kuò)展:
①在EDF調(diào)度層,仍然采用原RTAI內(nèi)核下調(diào)度器采用的EDF調(diào)度算法,對硬實時周期任務(wù)和虛擬任務(wù)集合進(jìn)行調(diào)度;而CBS服務(wù)器則按一定的比例占用處理機(jī)時間,同時通過服務(wù)器接口與一個實時應(yīng)用相對應(yīng),為其提供資源服務(wù)。②在服務(wù)器層有CBS服務(wù)器核和CBS服務(wù)器接口。
CBS服務(wù)器核的主要功能是根據(jù)傳入的相關(guān)調(diào)度信息維護(hù)底層實時小內(nèi)核中的可用CBS服務(wù)器隊列,在任務(wù)開始、掛起、終止等調(diào)度時執(zhí)行相應(yīng)的事件處理函數(shù)來調(diào)整CBS服務(wù)器的屬性參數(shù),實現(xiàn)CBS算法。
EDF調(diào)度器擴(kuò)展如圖1所示。
在服務(wù)器接口中,由于硬實時任務(wù)工作在RTAI實時內(nèi)核下,而軟實時任務(wù)一般工作在Linux內(nèi)核下,因此服務(wù)器維護(hù)的虛擬任務(wù)為了與實際的實時任務(wù)建立對應(yīng),就需要一個接口來實現(xiàn)它們的映射關(guān)系。本文通過這個接口層來為Linux內(nèi)核中的實時任務(wù)和RTAI內(nèi)核下的虛擬任務(wù)提供映射實現(xiàn)。
①不同類型的新應(yīng)用程序到達(dá)時,通過服務(wù)器接口層中的系統(tǒng)調(diào)用對其進(jìn)行判別控制檢查,主要通過式(2)來進(jìn)行。如果通過檢查,則說明調(diào)度新到達(dá)的應(yīng)用程序不會影響硬實時任務(wù)的截止期。②通過判別檢查之后,CBS服務(wù)器為其創(chuàng)建一個與新應(yīng)用程序?qū)?yīng)的虛擬任務(wù),并根據(jù)新應(yīng)用程序傳入的調(diào)度參數(shù)和自己的調(diào)度策略,計算得到虛擬任務(wù)的任務(wù)截止期。如果此時服務(wù)器是活動的,將此新虛擬任務(wù)掛入服務(wù)器維護(hù)的先進(jìn)先出隊列。取出服務(wù)器的先進(jìn)先出隊列隊首虛擬任務(wù),并根據(jù)任務(wù)截止期大小進(jìn)入RTAI實時內(nèi)核的EDF就緒隊列;同時,新應(yīng)用程序也加入到Linux內(nèi)核下相應(yīng)的調(diào)度對
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司電腦服務(wù)合同范例
- 合伙承包廚房合同范例
- 2024年奶牛養(yǎng)殖與收購合同
- 2024年企業(yè)社會責(zé)任合規(guī)審查合同
- 2024醫(yī)院放射科設(shè)備采購合同
- 2024年養(yǎng)牛場貸款融資合同
- 04年塔吊施工安全防護(hù)合同
- 04年智能穿戴設(shè)備OEM委托加工合同
- 汽車維修服務(wù)合同
- 城市公園設(shè)施招投標(biāo)報名表
- 【傳統(tǒng)文化對提升小學(xué)德育效果的探究結(jié)題報告4600字】
- 我們小點兒聲省公開課一等獎新名師課比賽一等獎?wù)n件
- JT-T 617.2-2018 危險貨物道路運(yùn)輸規(guī)則 第2部分:分類 含2024年第1號修改單
- 2024年合肥興泰金融控股(集團(tuán))有限公司招聘筆試沖刺題(帶答案解析)
- 大學(xué)生職業(yè)生涯展示
- 《金屬非金屬地下礦山監(jiān)測監(jiān)控系統(tǒng)建設(shè)規(guī)范》
- 《中國慢性阻塞性肺疾病基層診療與管理指南(2024年)》解讀
- 安全操作規(guī)程、作業(yè)指導(dǎo)書
- MOOC 軟件安全之惡意代碼機(jī)理與防護(hù)-武漢大學(xué) 中國大學(xué)慕課答案
- 檔案工作協(xié)調(diào)機(jī)制
- 肝硬化門靜脈高壓食管胃靜脈曲張出血的防治指南( 2022)
評論
0/150
提交評論