
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、嵌入式linux實時化技術(shù)支持powerpc、等多種處理器,逐漸被用于多種關(guān)鍵性場合。其中實時多媒體處理、工業(yè)控制、等特定應用對linux提出了強實時性需求1。linux提供了一些實時擴展,但需要舉行實時性改造。本文針對嵌入式linux實時化技術(shù)中的一些關(guān)鍵問題舉行了研究,如linux內(nèi)核時延,實時化主流技術(shù)計劃及其評價等。linux內(nèi)核時延主流linux雖然部分滿足posix 1003.1b實時擴展標準,但還不徹低是一個實時操作系統(tǒng),主要表現(xiàn)為:* 任務調(diào)度與內(nèi)核搶占2.6版本內(nèi)核添加了許多搶占點,使進程執(zhí)行在內(nèi)核代碼時也可被搶占。為支持內(nèi)核代碼可搶占,在2.6版內(nèi)核中通過采納禁用中斷的自旋
2、鎖來庇護臨界區(qū)。但此時假如有低優(yōu)先級進程在臨界區(qū)中執(zhí)行,高優(yōu)先級進程即使不拜訪低優(yōu)先級所庇護的臨界區(qū),也必需等待低優(yōu)先級進程退出臨界區(qū)。* 中斷延遲在主流linux內(nèi)核設(shè)計中,中斷可以搶占最高優(yōu)先級的任務,使高優(yōu)先級任務被堵塞的最長時光不確定。而且,因為內(nèi)核為庇護臨界區(qū)需要關(guān)閉中斷,越發(fā)增長了高優(yōu)先級任務堵塞時光。* 時鐘精度linux通過硬件時鐘編程來產(chǎn)生毫秒級周期性時鐘中斷舉行內(nèi)核時光管理,無法滿足實時系統(tǒng)較高精度的調(diào)度要求。內(nèi)核定時器精度同樣也受限于時鐘中斷,無法滿足實時系統(tǒng)的高精度定時需求。* 其他延遲此外,linux內(nèi)核其他子系統(tǒng)也存在多種延遲。比如為了增加內(nèi)核性能和削減內(nèi)存消耗,l
3、inux僅在需要時裝載程序地址空間相應的內(nèi)存頁。當被存取內(nèi)容(如代碼)不在ram中則內(nèi)存管理單元(mmu)將產(chǎn)生頁表錯誤(page-fault)觸發(fā)頁面裝載,造成實時進程響應時光不確定。linux實時化技術(shù)進展主流linux內(nèi)核1.x、2.2.x和2.4.x版本的linux內(nèi)核無搶占支持,直到2.6版本的linux內(nèi)核才支持可搶占內(nèi)核,支持臨界區(qū)外的內(nèi)核搶占和可搶占的大內(nèi)核鎖。在此基礎(chǔ)上,linux采納了下列兩類實時化技術(shù)。* 雙內(nèi)核方式linux內(nèi)核實時化雙內(nèi)核方式以rtlinux、rtai和xenomai等為典型代表。其中rt-linux實現(xiàn)了一個微內(nèi)核實時操作系統(tǒng)支持底層任務管理、中斷服
4、務例程、底層任務通信隊列等。一般linux作為實時操作系統(tǒng)的最低優(yōu)先級任務,linux下的任務通過fifo命名管道和實時任務舉行通信,1所示。圖1 雙內(nèi)核架構(gòu)的linux實時化技術(shù)當linux要關(guān)閉中斷時,實時微內(nèi)核會截取并記錄這個哀求,通過軟件來模擬中斷控制器,而沒有真正關(guān)閉硬件中斷,避開了因為關(guān)中斷所造成的響應延遲。rt-linux將系統(tǒng)實時時鐘設(shè)置為單次觸發(fā)模式,提供微秒級的時鐘精度。rtai類似rtlinux的實現(xiàn)方式,不同之處在于它修改了體系結(jié)構(gòu)相關(guān)代碼,形成一個實時硬件抽象層(rthal),使其實時任務能在任何時刻中斷一般linux任務,兩者之間通過非堵塞隊列舉行通訊。rtai將挺
5、直修改linux內(nèi)核的代碼減至最少,具有更好的可移植性。xenomai以rtai為基礎(chǔ),也稱rtai /fusion。采納了adeos微內(nèi)核替代rtai的硬件抽象層11。其特色還在于仿照了傳統(tǒng)rtos的api接口,推進傳統(tǒng)rtos應用在gnu/linux下的移植。類似還有基于fiasco微內(nèi)核的l4linux等開源項目12。* 內(nèi)核補丁方式雙內(nèi)核實時計劃下,實時任務需要根據(jù)微內(nèi)核實時操作系統(tǒng)提供的另外一套api舉行設(shè)計。而內(nèi)核補丁方式則不轉(zhuǎn)變linux的api,原有應用程序可在實時化后的操作系統(tǒng)上運行,典型的有早期討論性的kurt-linux和red-linux,商業(yè)版本的montavista
6、 2、timesys 和wind river linux,以及現(xiàn)階段ingo monlnar等人開發(fā)的實時搶占補丁內(nèi)核等3。kurt-linux是第一個基于一般linux的實時操作系統(tǒng)。通過正常態(tài)、實時態(tài)和混合態(tài)舉行實時和非實時任務的劃分。red-linux通過任務多種屬性和調(diào)度程序,可以實現(xiàn)多種調(diào)度算法。采納軟件模擬中斷管理,并在內(nèi)核插入了許多搶占點,提高了系統(tǒng)調(diào)度精度。montavista linux在低延遲補丁以及可搶占內(nèi)核補丁基礎(chǔ)上4,通過開發(fā)內(nèi)核o(1)實時調(diào)度程序并對可搶占內(nèi)核舉行了改進和測試,linux 2.4內(nèi)核時代montavista linux 作為商業(yè)成熟產(chǎn)品在實時性上有
7、較強的優(yōu)勢。timesys linux通過內(nèi)核模塊的方式也提供了高精度時鐘、優(yōu)先級繼承mutex等支持。2.6版本的主流內(nèi)核汲取了以上技術(shù),支持config_preempt_none,config_preempt_voluntary和config_preempt等多種配置選項。分離適合于計算型任務系統(tǒng),桌面用戶系統(tǒng)和毫秒級延遲嵌入式系統(tǒng)。2005年,針對2.6內(nèi)核montavista推出了實時linux方案,推動了linux內(nèi)核實時化進程。隨后ingo molnar發(fā)布了新的實時搶占補丁,并逐漸成為linux內(nèi)核實時主流技術(shù),也為包括montavista linux,wind river li
8、nux采納和補充,本文后續(xù)內(nèi)容這要涉及實時搶占補丁。linux實時化技術(shù)及評價2.6版本linux內(nèi)核實時性能有一定增加,雙內(nèi)核方式的linux實時化技術(shù)也在不斷進展中。本來由fsmlab維護的rtlinux,其版權(quán)在2007年2月被wind river購買,先對在開源社區(qū)就不很活躍,rtai支持x386等體系結(jié)構(gòu),但因為其代碼較難維護、bug較難調(diào)試等緣由,許多開發(fā)者加入了xenomai項目。xenomai支持最新2.6版 linux,相比之下代碼相對穩(wěn)定和可維護,開發(fā)模式較活躍。內(nèi)核補丁方式的linux實時化技術(shù)在2.6版內(nèi)核基礎(chǔ)上做了大量改進,使得內(nèi)核中除了中斷關(guān)閉和irq線程分派、調(diào)度
9、和上下文切換之外的絕大部分代碼都可以被搶占,不行搶占的自旋鎖庇護臨界區(qū)從一千多個削減到幾十個,使得內(nèi)核實時性得到極大的提高,獲得社區(qū)廣泛支持并逐漸成為linux實時化主流技術(shù)。linux內(nèi)核實時化改進實時搶占內(nèi)核補丁針對linux各種延遲舉行了實時化改進5,主要包括了幾個方面的技術(shù)。* 實時搶占內(nèi)核為了實現(xiàn)內(nèi)核徹低可搶占,實時內(nèi)核臨界區(qū)用高性能優(yōu)先級繼承mutex替換本來自旋鎖(spin-lock)來舉行庇護,使得在臨界區(qū)內(nèi)的執(zhí)行也可被搶占。惟獨當線程想拜訪一個其他線程正在拜訪的臨界區(qū)時,才被調(diào)度至睡眠,直到所庇護的臨界區(qū)被釋放時被喚醒。在實時搶占內(nèi)核中通過優(yōu)先級繼承機制(pi)在線程被一個低
10、優(yōu)先級線程所持有的資源堵塞時,低優(yōu)先級線程通過繼承被堵塞線程優(yōu)先級,盡快執(zhí)行并釋放所持資源而不被其他線程所搶占。* 新型鎖機制帶來內(nèi)核性能提升實時搶占補丁替換了大內(nèi)核鎖(bkl),將bkl從spinlock改成是mutex,持有bkl的線程也可以被搶占,削減了內(nèi)核調(diào)度延遲。此外,實時搶占補丁通過mutex替代semaphore,避開了不須要的時光負載。實時搶占補丁實現(xiàn)了可搶占的rcu(read copy update)鎖和串行化讀寫鎖,保證了執(zhí)行可預測性,提高了性能。* 中斷線程化實時搶占補丁通過內(nèi)核線程來實現(xiàn)一些硬件中斷和軟件中斷的服務程序。體系結(jié)構(gòu)相關(guān)處理代碼設(shè)置irq狀態(tài)、檢查線程化的中
11、斷是否使能,并喚醒相關(guān)線程。在中斷線程被調(diào)度執(zhí)行后,舉行中斷服務處理。在實時搶占內(nèi)核中,用戶線程優(yōu)先級可以高于設(shè)備中斷服務線程。實時任務無需等待設(shè)備驅(qū)動處理程序執(zhí)行,減小了實時搶占延遲。* 時鐘系統(tǒng)改進實時搶占內(nèi)核的時鐘系統(tǒng)重新舉行了設(shè)計,實現(xiàn)了高精度定時器6。時鐘精度不再依靠jiffies,使posix定時器和nanosleep精度由詳細硬件所能提供的精度打算,使得gettimeofday能夠提供實時系統(tǒng)所需的精確時光值。* 其他改進linux在用戶層支持性能良好的futex,實現(xiàn)原理類似于內(nèi)核優(yōu)先級繼承mutex,僅在產(chǎn)生競態(tài)時進入內(nèi)核,提高了應用程序性能。此外,實時搶占補丁內(nèi)核還提供mu
12、tex死鎖檢測、延遲跟蹤與測量、中斷關(guān)閉跟蹤與延遲測量、搶占延遲測量等內(nèi)核調(diào)試與診斷、內(nèi)核性能測量與調(diào)優(yōu)等工具、實時trace支持(ftrace)等支持。現(xiàn)階段實時化技術(shù)在各體系結(jié)構(gòu)上逐漸得到了支持,如表1所示。表1 linux實時搶占補丁技術(shù)支持狀況實時搶占內(nèi)核延遲現(xiàn)階段,實時搶占補丁技術(shù)仍處于完美過程中,其表現(xiàn)在以下幾點不足。* 中斷延遲即使不發(fā)生中斷線程搶占,實時搶占內(nèi)核相對本來中斷服務機制額外增強一對上下文切換時光,用于喚醒中斷服務線程執(zhí)行和進入睡眠狀態(tài)。此外,內(nèi)核中還存在少量用raw_spinlock鎖禁用中斷來庇護的臨界區(qū),需要計算這些鎖造成的中斷延遲。* 任務搶占延遲內(nèi)核搶占延遲
13、主要是因為在內(nèi)核中用法各種鎖機制用于控制任務和中斷對臨界區(qū)的拜訪所造成的,特殊是實時搶占內(nèi)核中為了避開優(yōu)先級逆轉(zhuǎn)增強的鎖機制帶來了額外時光負載。* 內(nèi)核模塊其他延遲在實時搶占補丁中,內(nèi)存管理模塊還需削減頁表錯誤引起的延遲,降低mlockall內(nèi)存鎖存造成的性能降級影響。實時搶占內(nèi)核中高精度定時器的用法導致了額外定時器管理時光負載。此外,內(nèi)核中一些驅(qū)動程序需要針對實時應用舉行優(yōu)化來提高實時響應。軟浮點處理和軟浮點內(nèi)核需要和實時搶占補丁兼容,能耗管理子系統(tǒng)還需要具備實時系統(tǒng)感知能力。實時搶占內(nèi)核性能測試本文在intel pentium m 1.7 ghz處理器上舉行了測試。測試環(huán)境包括:linux內(nèi)核2.6.25.8最小配置;patch-2.6.25.8-rt7實時補??;libc 2.5+和busybox-1.10.0構(gòu)建initrdfs方式的根文件系統(tǒng)。* 中斷延遲采納實時搶占補丁支持的內(nèi)核中斷延遲測量工具測量中斷關(guān)閉(irq off)時光。在100%負載狀況下,十萬采樣點中,最大值在31 us左右,絕大多數(shù)在1 us左右,2所示。圖2 實時搶占內(nèi)核中斷關(guān)閉延遲分布* 任務搶占延遲內(nèi)核搶占關(guān)閉時光采納實時搶占補丁所支持的內(nèi)核搶占關(guān)閉測量工具測量。實時搶占內(nèi)核和一般linux內(nèi)核狀況比較如表2所示。表2 內(nèi)核任務搶占關(guān)閉時光分布實時應用中周期性任務需要能在確定的時光內(nèi)得到執(zhí)行。實
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZZB Q071-2024 酶底物法微生物智能培養(yǎng)計數(shù)一體機
- T-ZJHIA 16-2024 特殊醫(yī)學用途配方食品臨床營養(yǎng)治療營養(yǎng)篩查數(shù)據(jù)集
- 二零二五年度離婚協(xié)議中夫妻共同財產(chǎn)清算補充協(xié)議
- 二零二五年度直播帶貨主播合作權(quán)益保障合同
- 2025年度智能制造合作伙伴協(xié)議書
- 二零二五年度木制家具生產(chǎn)廠木工用工協(xié)議書
- 二零二五年度車輛掛靠運輸合同車輛運輸合同安全保障協(xié)議
- 二零二五年度個人租賃帶太陽能熱水系統(tǒng)住宅合同
- 二零二五年度餐飲行業(yè)知識產(chǎn)權(quán)保護協(xié)議
- 二零二五年度兼職攝影師聘用合同模板
- 家校共育之道
- DeepSeek入門寶典培訓課件
- 西安2025年陜西西安音樂學院專職輔導員招聘2人筆試歷年參考題庫附帶答案詳解
- 《作文中間技巧》課件
- 廣東省2025年中考物理仿真模擬卷(深圳)附答案
- 2025屆八省聯(lián)考 新高考適應性聯(lián)考英語試題(原卷版)
- 新蘇教版一年級下冊數(shù)學第1單元第3課時《8、7加幾》作業(yè)
- 2024年山東電力高等??茖W校高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 2024年電力交易員(高級工)職業(yè)鑒定理論考試題庫(單選題、多選題、判斷題)
- 《平面廣告賞析》課件
- 【公開課】同一直線上二力的合成+課件+2024-2025學年+人教版(2024)初中物理八年級下冊+
評論
0/150
提交評論