嵌入式Linux操作系統(tǒng)實時性的研究_第1頁
嵌入式Linux操作系統(tǒng)實時性的研究_第2頁
嵌入式Linux操作系統(tǒng)實時性的研究_第3頁
嵌入式Linux操作系統(tǒng)實時性的研究_第4頁
嵌入式Linux操作系統(tǒng)實時性的研究_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、嵌入式Linux操作系統(tǒng)實時性的研究論文摘要:通過分析嵌入式Linux在實時性方面的缺陷和缺乏,針對細(xì)化時鐘粒度、可搶占式內(nèi)核體系結(jié)構(gòu)、中斷軟件模擬和實時調(diào)度策略等問題進行研究,提出了相應(yīng)的實時性改良方法及宏觀調(diào)度結(jié)構(gòu),拓展了實時系統(tǒng)的應(yīng)用范圍。論文關(guān)鍵詞:嵌入式系統(tǒng),實時性,搶占,調(diào)度策略一、引言Linux以其功能強大、源代碼開放、支持多種硬件平臺、模塊化設(shè)計方案及豐富的開發(fā)工具支持等特點廣泛應(yīng)用在嵌入式系統(tǒng)領(lǐng)域。作為嵌入式產(chǎn)品的操作系統(tǒng)平臺,Linux具有較好的實時性、系統(tǒng)可靠性、任務(wù)處理隨機性。但由于其在實時應(yīng)用領(lǐng)域的技術(shù)障礙,要應(yīng)用在嵌入式領(lǐng)域,還必須對Linux內(nèi)核作必要的改良。本文

2、首先分析了實時系統(tǒng)的特點和Linux內(nèi)核在實時應(yīng)用方面的缺乏,然后針對影響操作系統(tǒng)實時性能的假設(shè)干方面進行研究,提出解決方案。二、實時系統(tǒng)的分類實時操作系統(tǒng)貴在實時,要求在規(guī)定的時間內(nèi)完成某種操作。因此實時系統(tǒng)最重要的特點就是實時性,即系統(tǒng)的正確性不僅僅依賴于計算的邏輯結(jié)果的正確性,還取決于輸出結(jié)果時間的及時性。從這個角度看,實時系統(tǒng)是一個能夠在指定或者確定的時間內(nèi)完成系統(tǒng)功能和對外部環(huán)境做出響應(yīng)的系統(tǒng);。按對實時性能要求的程度,實時系統(tǒng)可分為兩類:1硬實時系統(tǒng):要求可確定性強,具有明確的實時約束,在某個限定的時刻之前不能完成任務(wù)將造成災(zāi)難性的后果。因此,在這類系統(tǒng)的設(shè)計和實現(xiàn)過程中,應(yīng)采用各

3、種分析、模擬及形式化驗證方法對系統(tǒng)進行嚴(yán)格的檢驗,以保證在各種情況下應(yīng)用的時間需求和功能需求都能夠得到滿足。2軟實時系統(tǒng):也對時間敏感,當(dāng)某些應(yīng)用雖然提出了時間要求,但偶爾發(fā)生不能滿足嚴(yán)格實時要求的情況也是允許的。因此,某些應(yīng)用雖然提出了時間需求,但實時任務(wù)偶爾違反這種需求對系統(tǒng)的運行以及環(huán)境不會造成嚴(yán)重影響。三、Linux在實時應(yīng)用中的技術(shù)障礙盡管Linux本身提供了一些支持實時性的機制,但是由于其最初的設(shè)計目標(biāo)為通用分時操作系統(tǒng),并且Linux系統(tǒng)是以高的吞吐量和公平性為追求目標(biāo),根本上沒有考慮實時應(yīng)用所要滿足的時間約束,它只是提供了一些相對簡單的任務(wù)調(diào)度策略。因此,實時性問題是將Linu

4、x應(yīng)用于嵌入式系統(tǒng)開發(fā)的一大障礙,無法在硬實時系統(tǒng)中得到應(yīng)用,作為一個實時操作系統(tǒng),Linux仍然存在如下缺陷:1Linux的內(nèi)核是不可搶占的。Linux分為用戶態(tài)和核心態(tài)兩種模式,當(dāng)進程運行在用戶態(tài)時,可被優(yōu)先級更高的進程搶占,但當(dāng)它進入核心態(tài)時,其他用戶態(tài)進程優(yōu)先級再高也不能搶占它,這將導(dǎo)致優(yōu)先級逆轉(zhuǎn),實時任務(wù)執(zhí)行時間的不確定性,顯然不能滿足硬實時應(yīng)用的要求。2Linux系統(tǒng)時鐘精度太過粗糙。時鐘管理是操作系統(tǒng)的脈搏,任務(wù)的執(zhí)行和中止在很多情況下都是由時鐘直接或間接喚起的,它是進程調(diào)度的重要依據(jù)。Linux的周期模式定時器頻率僅為100Hz,使得其時間粒度過大,加大了任務(wù)響應(yīng)延遲,遠(yuǎn)不能滿

5、足實時應(yīng)用的要求。3Linux采用對臨界區(qū)操作時屏蔽中斷的方式,在中斷處理中是不允許進行任務(wù)調(diào)度的,從而抑制了系統(tǒng)及時響應(yīng)外部操作的能力。4缺乏有效的實時任務(wù)調(diào)度機制和調(diào)度算法。5Linux雖然給實時進程提供了較高的優(yōu)先級,但是沒有參加時間限制。例如:完成的最后期限、應(yīng)在多長時間內(nèi)完成、執(zhí)行周期等等。同時,其他大量的非實時進程也可能對實時進程造成阻塞,無法確保實時進程的響應(yīng)時間。四、改良內(nèi)核實時性的分析與研究針對Linux在實時應(yīng)用中的技術(shù)障礙,將Linux改造成為支持實時任務(wù)的嵌入式操作系統(tǒng),主要從細(xì)化時鐘粒度、可搶占式內(nèi)核體系結(jié)構(gòu)、中斷軟件模擬和實時任務(wù)的調(diào)度策略這四個方面對嵌入式Linu

6、x內(nèi)核進行研究,并給出了相應(yīng)的提高實時性的方法。1細(xì)化時鐘粒度精確的計時是實時調(diào)度器正確操作所必須的,調(diào)度器通常要求在一個特定的時刻進行任務(wù)切換,計時的錯誤將導(dǎo)致背離方案的調(diào)度,引起任務(wù)釋放抖動。標(biāo)準(zhǔn)Linux系統(tǒng)時鐘精度太過粗糙,時鐘中斷周期為10ms,不能滿足特定嵌入式應(yīng)用領(lǐng)域中對于響應(yīng)時間精度的要求。因此,在實時Linux應(yīng)用中,需要細(xì)化其時鐘粒度,具體有兩種方式可以解決時鐘粒度問題:1通過直接修改內(nèi)核定時參數(shù)Hz的初值來細(xì)化時鐘粒度,如將標(biāo)準(zhǔn)Linux中內(nèi)核定時參數(shù)Hz改為10000,那么時鐘粒度可以到達(dá)100s,這種方式雖然會增加一些系統(tǒng)開銷,但在強周期性環(huán)境下,對定時器的設(shè)置只需初

7、始化一次,在一定程度上保證了處理效率。2通過對可編程中斷定時器8254或先進的可編程中斷控制器進行編程來改良Linux時鐘機制,以提高其時鐘的分辨率,使毫秒級的粗粒度定時器變成微秒級的細(xì)粒度定時器。2增強Linux可搶占性內(nèi)核機制標(biāo)準(zhǔn)Linux內(nèi)核是不可搶占的,導(dǎo)致較大的延遲,增強內(nèi)核的可搶占性能,可提高系統(tǒng)內(nèi)核對實時任務(wù)的響應(yīng)能力。為了解決Linux實現(xiàn)硬實時的最大障礙,使Linux內(nèi)核成為完全可被搶占實時內(nèi)核,典型的實現(xiàn)方案是雙核結(jié)構(gòu)。使用實時核來運行實時任務(wù),Linux內(nèi)核來運行非實時任務(wù)。如圖1所示。圖1雙內(nèi)核結(jié)構(gòu)對于Linux內(nèi)核的修改主要集中在三方面:1在Linux內(nèi)核中影響實時性

8、的地方增加控制點,使內(nèi)核在控制點可以被搶占,減少內(nèi)核搶占延遲。3根據(jù)實際需要,增加局部功能。3中斷軟件模擬響應(yīng)時間的分析及解決方法:任務(wù)的響應(yīng)時間被定義為一個事件的發(fā)生和任務(wù)響應(yīng)這一事件開始執(zhí)行之間的間隔時間,通常有以下幾個因素影響任務(wù)的響應(yīng)時間。1中斷分配時間IDTinterruptdispatchtime:當(dāng)一個中斷產(chǎn)生時,在調(diào)用中斷處理程序占用CPU以前,操作系統(tǒng)用來保存所有的存放器中的內(nèi)容和系統(tǒng)中其他的關(guān)于這一任務(wù)狀態(tài)的時間。2中斷效勞時間ISTinterruptservicetime:中斷效勞程序用來從硬件設(shè)備讀取信息或從操作系統(tǒng)收集信息所用的時間。3內(nèi)核搶占時間KPTkernelp

9、reemptiontime:在操作系統(tǒng)意欲搶占當(dāng)前進程與搶占實際上發(fā)生之間的時間間隔。4調(diào)度延遲SDscheduledelay:調(diào)度程序用來調(diào)度另一個線程投入運行的時間。5進程切換時間CSTcontestswitchingtime:當(dāng)前線程用來保存存放器和系統(tǒng)狀態(tài)的時間與將要運行的線程恢復(fù)存放器中的內(nèi)容和系統(tǒng)狀態(tài)的時間總和。6系統(tǒng)調(diào)用返回時間RSTreturnfromsystemcall:處于內(nèi)核態(tài)的線程在它返回用戶態(tài)之前檢查一些狀態(tài)所用的時間。其中,SD、CST和RST總是固定不變的,如果Linux內(nèi)核設(shè)計得當(dāng)?shù)脑挘琁DT、IST和KPT可以有效的減少。在實時應(yīng)用的環(huán)境中,假設(shè)干個中斷同時發(fā)

10、生的情況是完全可能存在的。這時任務(wù)的響應(yīng)時間最多將包含NIDT+IST,N為中斷數(shù)。中斷軟件模擬被用來解決多個中斷同時發(fā)生的情形。當(dāng)一個硬件中斷發(fā)生時,系統(tǒng)只是簡單的在時間表中報告這一時間的發(fā)生,然后立即將CPU的控制權(quán)返回給操作系統(tǒng),完全略過查中斷向量表并執(zhí)行相應(yīng)的中斷效勞程序。系統(tǒng)在Linux內(nèi)核之前截獲了所有硬中斷信號,并根據(jù)當(dāng)前實時任務(wù)的需要,由軟中斷模擬機制處理或掛起該中斷。采用這個方法,可以減少當(dāng)多個中斷同時發(fā)生時任務(wù)的響應(yīng)時間,最長的延遲時間為N*IST。4改善Linux內(nèi)核實時任務(wù)的調(diào)度策略常用的實時調(diào)度算法有:1基于優(yōu)先級的調(diào)度算法?;趦?yōu)先級的調(diào)度算法調(diào)度器以優(yōu)先級作為尋求

11、下一個任務(wù)執(zhí)行的依據(jù)??煞譃閮煞N類型:靜態(tài)優(yōu)先級調(diào)度算法:該算法給系統(tǒng)中所有進程都靜態(tài)的分配一個優(yōu)先級。靜態(tài)優(yōu)先級的分配可以根據(jù)應(yīng)用的屬性來進行。動態(tài)優(yōu)先級調(diào)度算法:該算法根據(jù)任務(wù)的資源需求來動態(tài)的分配任務(wù)的優(yōu)先級。EDF算法是一種典型的動態(tài)優(yōu)先級調(diào)度算法,該算法根據(jù)就緒隊列中各個任務(wù)的截止期限來分配優(yōu)先級,具有最近截止期限的任務(wù)的優(yōu)先級最高。2基于時間驅(qū)動的調(diào)度算法。該算法本質(zhì)上是一種設(shè)計時就確定下來的離線的靜態(tài)調(diào)度方法。在系統(tǒng)的設(shè)計階段,在明確系統(tǒng)中所有處理的情況下,對于各個任務(wù)的開始、切換以及結(jié)束時間等事先組出明確的安排和設(shè)計。3基于比例共享的調(diào)度算法。這是一種越來越受到關(guān)注的實時調(diào)度模

12、式,基于GPS的算法。其根本思想就是按照一定的權(quán)重CPU使用的比例對一組需要調(diào)度的任務(wù)進行調(diào)度,使其執(zhí)行時間與權(quán)重完全成正比??梢酝ㄟ^兩種方法實現(xiàn):調(diào)節(jié)各個就緒進程出現(xiàn)在當(dāng)前調(diào)度隊列隊首的頻率,并調(diào)度隊首的進程執(zhí)行。逐次調(diào)度就緒隊列中的各個進程投入運行,但根據(jù)分配的權(quán)重調(diào)節(jié)分配給每個進程的運行時間片。針對每一種調(diào)度策略都有自己的優(yōu)越性和缺乏。通過設(shè)計和構(gòu)造多屬性和多調(diào)度器的選擇機制,使三種實時調(diào)度策略的應(yīng)用都得到支持,相對于只對單種調(diào)度策略提供支持的方案,拓展了系統(tǒng)的可使用范圍,提出了一種宏觀調(diào)度結(jié)構(gòu)。如圖2。圖2宏觀調(diào)度結(jié)構(gòu)其中給每一個實時任務(wù)定義了4個調(diào)度屬性:priority優(yōu)先級:限制

13、該任務(wù)比相關(guān)聯(lián)的其他任務(wù)的優(yōu)先權(quán)、starttime起始時間:任務(wù)開始執(zhí)行時間、finishtime截止時間:任務(wù)停止時間和budget預(yù)設(shè)值:任務(wù)允許執(zhí)行時間,不同屬性的數(shù)據(jù)對應(yīng)不同的調(diào)度策略。宏觀調(diào)度結(jié)構(gòu)分為兩個模塊:屬性分配模塊和調(diào)度器選擇模塊。屬性分配模塊給每一個實時任務(wù)分配多個屬性值,并通過其中的一兩個屬性值決定哪個屬性優(yōu)先,這樣調(diào)度器選擇模塊就可以根據(jù)屬性的優(yōu)先級別選擇不同的調(diào)度器。五、結(jié)束語嵌入式技術(shù)具有廣闊的應(yīng)用前景,滲透于社會生活的諸多領(lǐng)域,把Linux應(yīng)用于嵌入式系統(tǒng),將其自身固有的優(yōu)越性融入嵌入式技術(shù),是嵌入式技術(shù)開展的一個重要方向。然而,由于Linux在實時應(yīng)用領(lǐng)域的技術(shù)障礙,要將其應(yīng)用在嵌入式領(lǐng)域還必須修改Linux內(nèi)核中的各個模塊以到達(dá)滿足嵌入式實時應(yīng)用的需求。Linux實時性能的逐步完善、應(yīng)用的需要也會進一步催促我們應(yīng)該及時跟蹤國內(nèi)外Linux開展動態(tài),同時積累此領(lǐng)域的開發(fā)經(jīng)驗,走出自己的路。參考文獻(xiàn)1 駱耀祖. L

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論