嵌入式Linux的實時性分析_第1頁
嵌入式Linux的實時性分析_第2頁
嵌入式Linux的實時性分析_第3頁
嵌入式Linux的實時性分析_第4頁
嵌入式Linux的實時性分析_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

【Word版本下載可任意編輯】嵌入式Linux的實時性分析引言

嵌入式Linux是以Linux為根底的嵌入式作業(yè)系統(tǒng),它被廣泛應用在移動電話、個人數字助理(PDA)、媒體播放器、消費性電子產品以及航空航天等領域中……

嵌入式系統(tǒng)出現于60年代晚期,它初被用于控制機電電話交換機,如今已被廣泛的應用于工業(yè)制造、過程控制、通訊、儀器、儀表、汽車、船舶、航空、航天、軍事裝備、消費類產品等眾多領域。計算機系統(tǒng)CPU,每年在范圍內的產量大概在二十億顆左右,其中超過80%應用于各類專用性很強的嵌入式系統(tǒng)。一般的說,但凡帶有微處理器的專用軟硬件系統(tǒng)都可以稱為嵌入式系統(tǒng)。

本文采用APIC時鐘修改的方法對Linux內核開展實時化改造,修改APIC中斷函數,將APIC中斷和8254中斷排序,使得硬實時中斷的優(yōu)先級大于普通8254中斷。通過多組仿真實驗,驗證了該改造方法是有效的。

1嵌入式Linux的實時性分析

Linux設計的初衷是系統(tǒng)吞吐量的平衡,其內核試圖通過一種公平分配的策略來實現各進程平均地共享系統(tǒng)資源:

(1)內核的不可搶占性:Linux的內核在單處理器上不可搶占,當一個任務進入內核態(tài)運行時,一個具有更高優(yōu)先級的進程,只有等待處于態(tài)的系統(tǒng)調用返回后方能執(zhí)行,這將導致優(yōu)先級逆轉。

(2)進程調度的不可搶占性:Linux作為一個分時系統(tǒng),采用多級反應輪轉調度算法,它保證了每一個進程都有一種調度策略,但是都放在同一個隊列中運行,這也是Linux作為實時操作系統(tǒng)的一個弱點。圖1是Linux調度機制框圖。

(3)時鐘中斷的精度不高:Linux2.4.X內核的時鐘中斷周期為10ms,時鐘粒度太過于粗糙,不能滿足實時性要求。

(4)Linux的虛擬存儲管理:Linux采用段和頁機制的虛擬存儲管理技術,進程在硬盤和內存間的換入換出必然帶來額外的開銷,造成很大的延遲。

由此可見,要將Linux應用于嵌入式系統(tǒng),必須對其開展實時化改造,以適應嵌入式領域要求。

2嵌入式Linux系統(tǒng)特點應用

就是利用Linux其自身的許多特點,把它應用到嵌入式系統(tǒng)里。

Linux做嵌入式的優(yōu)勢,首先,Linux是開放源代碼的,不存在黑箱技術,遍布的眾多Linux愛好者又是Linux開發(fā)者的強大技術支持;其次,Linux的內核小、效率高,內核的更新速度很快,linux是可以定制的,其系統(tǒng)內核只有約134KB。第三,Linux是的OS,在價格上極具競爭力。Linux還有著嵌入式操作系統(tǒng)所需要的很多特色,突出的就是Linux適應于多種CPU和多種硬件平臺,是一個跨平臺的系統(tǒng)。到目前為止,它可以支持二三十種CPU。而且性能穩(wěn)定,裁剪性很好,開發(fā)和使用都很容易。很多CPU包括家電業(yè)芯片,都開始做Linux的平臺移植工作。移植的速度遠遠超過Java的開發(fā)環(huán)境。也就是說,如果今天用Linux環(huán)境開發(fā)產品,那么將來換CPU就不會遇到困擾。同時,Linux內核的構造在網絡方面是非常完整的,Linux對網絡中常用的TCP/IP協(xié)議有完備的支持。提供了包括十兆、百兆、千兆的以太網絡,以及無線網絡,Tokerring(令牌環(huán)網)、光纖甚至衛(wèi)星的支持。所以Linux很適于做信息家電的開發(fā)。

還有使用Linux為的是來開發(fā)無線連接產品的開發(fā)者越來越多。Linux在快速增長的無線連接應用主場中有一個非常重要的優(yōu)勢,就是有足夠快的開發(fā)速度。這是因為LInux有很多工具,并且Linux為眾多程序員所熟悉。因此,我們要在嵌入式系統(tǒng)中使用Linux操作系統(tǒng)。

3基于時鐘修改的內核改造方案

在單CPU系統(tǒng)中,與時間有關的活動都是由8254時鐘芯片來驅動的,8254產生0號中斷。直接修改內核定時參數HZ的初值就可構造細粒度定時器。這種方式實現起來很簡單,但是由此帶來頻繁的定時中斷使得系統(tǒng)的開銷很大,當然隨著硬件速度的提高,這種開銷會逐步降低。

Linux是的自由電腦操作系統(tǒng)內核。它是一個用C語言和匯編語言寫成,符合POSIX標準的類Unix操作系統(tǒng)。Linux早是由芬蘭黑客林納斯。托瓦茲(LinusB.Torvalds)為嘗試在英特爾x86架構上提供自由的類Unix操作系統(tǒng)而開發(fā)的。該計劃開始于1991年,林納斯·托瓦茲當時在Usenet新聞組comp.os.minix登載帖子,這份著名的帖子標示著Linux計劃的正式開始。

簡單地修改赫茲參數HZ開展實時化的方法顯然并不可取。Linux2.6內核的時鐘粒度是1ms,但仍然與嵌入式領域的實時化要求差距較遠,因此需要更高精度的時鐘。本文利用先進的APIC時鐘實現一個高精度時鐘系統(tǒng),提供了高精度的中斷響應,從而以較少的改動獲得較高的實時性。

APIC是裝置的擴大組合用來驅動Interrupt控制器。在目前的建置中,系統(tǒng)的每一個部份都是經由APICBus連接的。"本機APIC"為系統(tǒng)的一部份,負責傳遞Interrupt至指定的處理器;舉例來說,當一臺機器上有三個處理器則它必須相對的要有三個本機APIC。自1994年的PentiumP54c開始Intel已經將本機APIC建置在它們的處理器中。實際建置了Intel處理器的電腦就已經包含了APIC系統(tǒng)的部份。

系統(tǒng)中另一個重要的部份為I/OAPIC。系統(tǒng)中多可擁有8個I/OAPIC。它們會收集來自I/O裝置的Interrupt訊號且在當那些裝置需要interrupt時傳送訊息至本機APIC。每個I/OAPIC有一個專有的interrupt輸入(或IRQ)號碼。Intel過去與目前的I/OAPIC通常有24個輸入--其它的可能有多逹64個。而且有些機器擁有數個I/OAPIC,每一個分別有自己的輸入號碼,加起來一臺機器上會有上百個IRQ可供裝置Interrupt使用。

APIC本身提供了中斷處理函數apic_timer_interrupt,該函數包括Irq_enter(),Run_realtimer_queue()和irq_exit(),其中函數irq_exit通常負責判斷當前是否有8254產生的軟中斷存在,如果存在,就會觸發(fā)8254軟中斷,這樣會造成APIC硬中斷處理延遲。本文的思路就是修改irq_exit,在其中將各軟中斷線程和硬中斷線程開展排序,使APIC硬中斷的優(yōu)先級高于軟中斷,此時硬中斷線程得到優(yōu)先處理,從而提高內核的實時性能。Irp_exit函數的代碼如下:

上面調用invoke_softirq()函數執(zhí)行軟中斷使本文修改的重點,修改中斷向量表,對向量表中所有軟中斷和實時中斷開展排序,提前硬中斷的時間片,這樣使當前處于pending狀態(tài)的軟中斷被屏蔽和懸掛,直到硬中斷處理完成為止。將invoke_softirq()函數修改為:

每個處理器時間片上能夠處理的中斷只有一個,通過更新當前任務時間片,使硬中斷在時間獲得CPU的響應,此時軟中斷將被屏蔽,這就保證了硬中斷能夠得到實時的響應。

由于Linux采用8254完成時序分配,8254需要保存以保證系統(tǒng)的穩(wěn)定性。這樣的話,8254定時器和APIC必須共存,對于硬實時應用,可采用APIC時鐘開展計時。在8254中斷過程中,如果產生APIC中斷,采用通過本文的方琺必須對優(yōu)先對APIC時鐘開展響應,會出現8254中斷被搶占,此時上下文切換等操作可能導致不可預料的錯誤。解決問題的方法可采取在APIC相應中斷期間,關閉軟中斷,只有當APIC中斷執(zhí)行完畢后,8254軟中斷才能夠被響應。

4實時性能測試與分析

實驗條件1:CPU:PⅢ300MHz,內存為128MB,硬盤為5400轉的15GB臺式機硬盤,操作系統(tǒng)為Fedora2.6.18內核。環(huán)境一(vd-d1)采用原版內核,環(huán)境二(vd-d2)采用改良型內核。測試方法為通過測試內核的上、下文切換、內存延遲及模擬外部中斷來評價改造前后的性能。統(tǒng)計測試結果,如圖2、圖3所示。

從實驗結果可知,在上、下文切換中I/0讀/寫和文件打開和關閉,改良型內核的實時性能都有明顯提高,模擬TCP通道子項,改良型內核性能提高了約6倍,但在對中斷響應要求不是很高的nullcall測試中,隨著處理器負荷的進一步加重,原始內核的內存延遲急劇增加。在差情況下,系統(tǒng)響應速度較慢,延遲時間到達5μs。而改良型內核在處理器負荷變化時,系統(tǒng)的響應速度變化不明顯,而且中斷響應速度始終穩(wěn)定在2μs以下,性能穩(wěn)定。

實驗條件2:采用改良型內核,環(huán)境一(vd-d2)CPU:PIII300MHz,環(huán)境二(vd-d3)CPU降頻為200MHz(接近ARM9)。統(tǒng)計測試結果,獲得它們的文件系統(tǒng)延遲結果見圖4。圖4反映了同樣采用改良型

溫馨提示

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

最新文檔

評論

0/150

提交評論