復雜實時應用系統(tǒng)設(shè)計實現(xiàn)的關(guān)鍵技術(shù)研究.pdf_第1頁
已閱讀1頁,還剩144頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、復雜實時應用系統(tǒng)的成功設(shè)計與實現(xiàn)依賴于底層操作系統(tǒng)調(diào)度、資源管理機制的支持以及滿足關(guān)鍵實時任務資源充分可預知性的編程語言方面的支撐。對于調(diào)度問題,理論上,混合動態(tài)優(yōu)先級調(diào)度、支持用戶級的帶寬預留等算法提供了混合調(diào)度的最好方法,但是,目前所有實時操作系統(tǒng)均沒有提供和實現(xiàn)上述機制。對關(guān)鍵任務的資源充分可預知性實時要求,普通Java平臺沒有提供任何解決問題的技術(shù)手段。本文研究支持復雜實時應用系統(tǒng)設(shè)計實現(xiàn)的上述關(guān)鍵技術(shù)和實現(xiàn)方法。在操作系統(tǒng)層面

2、上針對多種類型混合任務集調(diào)度提出調(diào)度策略并在開源嵌入式實時操作系統(tǒng)中設(shè)計和實現(xiàn)混合調(diào)度算法與資源管理協(xié)議,達到復雜實時應用系統(tǒng)硬實時周期任務滿足截止期前提下,軟實時非周期任務調(diào)度性能提升的整體優(yōu)化調(diào)度目標。在編程語言層面,基于普通Java平臺,設(shè)計實現(xiàn)實時Java中間件組件并給出控制垃圾回收器GC啟動時機的方法,實現(xiàn)普通Java平臺下線程的可預測運行目標。
  本文提出基于服務器方式的混合任務集集成調(diào)度策略,給出該策略分層調(diào)度的設(shè)

3、計思想和混合集成調(diào)度框架。該策略底層以操作系統(tǒng)內(nèi)核調(diào)度算法(EDF算法最優(yōu))調(diào)度應用服務器,各應用服務器分層支持多種單一類型的實時調(diào)度算法,整體上形成支持混合任務集調(diào)度的集成調(diào)度框架。在混合調(diào)度策略設(shè)計實現(xiàn)上,針對靜態(tài)優(yōu)先級搶占調(diào)度策略的開源操作系統(tǒng)μC/OS-Ⅱ,首先,以不修改內(nèi)核的用戶級調(diào)度服務器方式實現(xiàn)了動態(tài)優(yōu)先級EDF算法,其次,提出基于截止期和關(guān)鍵性雙參數(shù)混合優(yōu)先級實現(xiàn)分層混合任務調(diào)度算法EDIF的設(shè)計思想,其中關(guān)鍵性參數(shù)作為

4、區(qū)分硬實時和軟實時任務的分層信息。文中定義了可接受調(diào)度概念,給出EDIF調(diào)度模型,理論分析了算法的可調(diào)度性條件。EDIF算法在μC/OS-Ⅱ中以擴展內(nèi)核數(shù)據(jù)結(jié)構(gòu),修改內(nèi)核調(diào)度器和相關(guān)內(nèi)核函數(shù)的方式設(shè)計實現(xiàn)。針對開源操作系統(tǒng)RTLinux硬實時任務重載時軟實時任務長期得不到響應性能急劇下降問題,本文實現(xiàn)了基于比例帶寬服務器(PDBS)的混合任務調(diào)度算法。該算法將任務按類型分別存放于不同的隊列,不同類型的任務由綁定了處理器比例帶寬的應用服務

5、器調(diào)度,各應用服務器按比例共享處理器帶寬。PDBS實現(xiàn)方法是:擴展內(nèi)核結(jié)構(gòu),將RTLinux單一任務隊列改為硬實時任務和軟實時雙任務隊列,任務隊列間按本文提出的比例帶寬服務器容量計算公式計算分配的處理器時間,內(nèi)核調(diào)度器對硬實時任務隊列和軟實時任務隊列進行比例時間片輪轉(zhuǎn)調(diào)度。文中給出調(diào)度器核心函數(shù)和定時器中斷處理函數(shù)和一些接口函數(shù)和相關(guān)處理函數(shù)的設(shè)計實現(xiàn)過程。另外,本文針對工業(yè)界廣泛應用的開源嵌入式實時操作系統(tǒng)μC/OS-Ⅱ不支持同優(yōu)先級

6、任務調(diào)度和優(yōu)先級繼承協(xié)議的問題,修改μC/OS-Ⅱ內(nèi)核結(jié)構(gòu),設(shè)計、實現(xiàn)了支持同優(yōu)先級任務調(diào)度的優(yōu)先級驅(qū)動/輪轉(zhuǎn)混合任務集分層調(diào)度算法并在其中實現(xiàn)了所有抑制優(yōu)先級反轉(zhuǎn)的實時設(shè)計模式。
  在普通Java平臺實時中間件設(shè)計方面,設(shè)計目標是確保關(guān)鍵實時線程的運行可預測性。針對等待訪問共享資源的Java多線程的不確定性喚醒問題,開發(fā)了一個Java實時中間件組件,當共享資源就緒時,該組件可嚴格按優(yōu)先級順序喚醒等待訪問共享資源的線程,確保線程

7、按優(yōu)先級順序的可預測運行,實現(xiàn)的方法是設(shè)計以等比映射擴展了優(yōu)先級數(shù)的可調(diào)度類,創(chuàng)建訪問共享資源線程的同時為該線程創(chuàng)建一個線程代理,其中包含了所代理線程的喚醒用優(yōu)先級信息,線程代理集合類負責管理等待訪問共享資源的多線程,線程的喚醒按優(yōu)先級高低順序在代理集合類中實現(xiàn),對低優(yōu)先級Java線程出現(xiàn)的活鎖問題,引入實時調(diào)度算法LRT動態(tài)調(diào)整線程優(yōu)先級,給出了相應的設(shè)計和實現(xiàn)方案;針對GC不定期啟動影響線程運行可預測性問題,提出周期性提升GC優(yōu)先級

8、,提前調(diào)度GC的解決方案。實現(xiàn)方法是將線程優(yōu)先級按線程任務的重要程度分為兩個等級:關(guān)鍵線程和非關(guān)鍵線程,以虛擬機內(nèi)存達不到飽和的程度為依據(jù),給出垃圾回收的周期上限TGC計算公式,在運行時間最長不超過TGC的時間內(nèi)提升GC的優(yōu)先級為非關(guān)鍵線程的最大值,從而使GC在不影響關(guān)鍵線程運行的情況下能提前回收內(nèi)存中的垃圾,達到提高通用環(huán)境下Java關(guān)鍵線程執(zhí)行可預測性和實時性能的目的。
  理論分析和實驗結(jié)果表明:在新μC/OS-Ⅱ內(nèi)核中,E

9、DIF分層調(diào)度策略、算法設(shè)計實現(xiàn)正確、有效,系統(tǒng)超載時(所有任務總處理器利用率>100%),滿足所有硬實時關(guān)鍵任務截止期,軟實時非關(guān)鍵任務并不丟棄,而是延遲調(diào)度執(zhí)行,軟實時非關(guān)鍵任務完成率大幅度提升了24%,混合任務集整體調(diào)度性能優(yōu)良;在新RTLinux內(nèi)核中,PDBS算法解決了硬實時任務重載時混合實時任務集調(diào)度中軟實時任務調(diào)度性能的有效提升問題;本文開發(fā)的實時Java組件中,優(yōu)先級等比例映射擴展了普通Java線程優(yōu)先級數(shù),可明確按擴展

10、優(yōu)先級喚醒大量等待訪問共享資源的線程,達到了Java高優(yōu)先級關(guān)鍵線程優(yōu)先訪問臨界資源、運行可預測的設(shè)計目標,通過設(shè)計實現(xiàn)優(yōu)先級動態(tài)調(diào)整算法,可以有效解決按優(yōu)先級喚醒的Java中間件活鎖問題;周期性提升GC優(yōu)先級至非關(guān)鍵線程優(yōu)先級的上限,使GC在不影響關(guān)鍵線程的情況下能提前回收內(nèi)存中的垃圾,消除了GC對關(guān)鍵線程的不可預測運行延遲。
  在特定開源操作系統(tǒng)中實現(xiàn)EDIF和PDBS算法驗證了基于服務器方式的混合任務集集成調(diào)度策略和框架的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論