• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      嵌入式Linux操作系統(tǒng)實(shí)時(shí)性的研究

      2011-11-02 02:40:12王惠玲
      關(guān)鍵詞:實(shí)時(shí)性內(nèi)核中斷

      王惠玲

      (蘭州資源環(huán)境職業(yè)技術(shù)學(xué)院,甘肅 蘭州 730021)

      嵌入式Linux操作系統(tǒng)實(shí)時(shí)性的研究

      王惠玲

      (蘭州資源環(huán)境職業(yè)技術(shù)學(xué)院,甘肅 蘭州 730021)

      通過(guò)分析嵌入式Linux在實(shí)時(shí)性方面的缺陷和不足,針對(duì)細(xì)化時(shí)鐘粒度、可搶占式內(nèi)核體系結(jié)構(gòu)、中斷軟件模擬和實(shí)時(shí)調(diào)度策略等問(wèn)題進(jìn)行研究,提出了相應(yīng)的實(shí)時(shí)性改進(jìn)方法及宏觀調(diào)度結(jié)構(gòu),拓展了實(shí)時(shí)系統(tǒng)的應(yīng)用范圍。

      嵌入式系統(tǒng);Linux;實(shí)時(shí)性;搶占;調(diào)度策略

      一、引言

      Linux以其功能強(qiáng)大、源代碼開(kāi)放、支持多種硬件平臺(tái)、模塊化設(shè)計(jì)方案及豐富的開(kāi)發(fā)工具支持等特點(diǎn)廣泛應(yīng)用在嵌入式系統(tǒng)領(lǐng)域。作為嵌入式產(chǎn)品的操作系統(tǒng)平臺(tái),Linux具有較好的實(shí)時(shí)性、系統(tǒng)可靠性、任務(wù)處理隨機(jī)性。但由于其在實(shí)時(shí)應(yīng)用領(lǐng)域的技術(shù)障礙,要應(yīng)用在嵌入式領(lǐng)域,還必須對(duì)Linux內(nèi)核作必要的改進(jìn)。本文首先分析了實(shí)時(shí)系統(tǒng)的特點(diǎn)和Linux內(nèi)核在實(shí)時(shí)應(yīng)用方面的不足,然后針對(duì)影響操作系統(tǒng)實(shí)時(shí)性能的若干方面進(jìn)行研究,提出解決方案。

      二、實(shí)時(shí)系統(tǒng)的分類(lèi)

      實(shí)時(shí)操作系統(tǒng)貴在實(shí)時(shí),要求在規(guī)定的時(shí)間內(nèi)完成某種操作。因此實(shí)時(shí)系統(tǒng)最重要的特點(diǎn)就是實(shí)時(shí)性,即系統(tǒng)的正確性不僅僅依賴(lài)于計(jì)算的邏輯結(jié)果的正確性,還取決于輸出結(jié)果時(shí)間的及時(shí)性。從這個(gè)角度看,實(shí)時(shí)系統(tǒng)是“一個(gè)能夠在指定或者確定的時(shí)間內(nèi)完成系統(tǒng)功能和對(duì)外部環(huán)境做出響應(yīng)的系統(tǒng)”。按對(duì)實(shí)時(shí)性能要求的程度,實(shí)時(shí)系統(tǒng)可分為兩類(lèi):

      1.硬實(shí)時(shí)系統(tǒng):要求可確定性強(qiáng),具有明確的實(shí)時(shí)約束,在某個(gè)限定的時(shí)刻之前不能完成任務(wù)將造成災(zāi)難性的后果。因此,在這類(lèi)系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)過(guò)程中,應(yīng)采用各種分析、模擬及形式化驗(yàn)證方法對(duì)系統(tǒng)進(jìn)行嚴(yán)格的檢驗(yàn),以保證在各種情況下應(yīng)用的時(shí)間需求和功能需求都能夠得到滿足。

      2.軟實(shí)時(shí)系統(tǒng):也對(duì)時(shí)間敏感,當(dāng)某些應(yīng)用雖然提出了時(shí)間要求,但偶爾發(fā)生不能滿足嚴(yán)格實(shí)時(shí)要求的情況也是允許的。因此,某些應(yīng)用雖然提出了時(shí)間需求,但實(shí)時(shí)任務(wù)偶爾違反這種需求對(duì)系統(tǒng)的運(yùn)行以及環(huán)境不會(huì)造成嚴(yán)重影響。

      三、Linux 在實(shí)時(shí)應(yīng)用中的技術(shù)障礙

      盡管Linux本身提供了一些支持實(shí)時(shí)性的機(jī)制,但是由于其最初的設(shè)計(jì)目標(biāo)為通用分時(shí)操作系統(tǒng),并且Linux系統(tǒng)是以高的吞吐量和公平性為追求目標(biāo),基本上沒(méi)有考慮實(shí)時(shí)應(yīng)用所要滿足的時(shí)間約束,它只是提供了一些相對(duì)簡(jiǎn)單的任務(wù)調(diào)度策略。因此,實(shí)時(shí)性問(wèn)題是將Linux應(yīng)用于嵌入式系統(tǒng)開(kāi)發(fā)的一大障礙,無(wú)法在硬實(shí)時(shí)系統(tǒng)中得到應(yīng)用,作為一個(gè)實(shí)時(shí)操作系統(tǒng),Linux仍然存在如下缺陷:

      1.Linux的內(nèi)核是不可搶占的。Linux分為用戶態(tài)和核心態(tài)兩種模式,當(dāng)進(jìn)程運(yùn)行在用戶態(tài)時(shí),可被優(yōu)先級(jí)更高的進(jìn)程搶占,但當(dāng)它進(jìn)入核心態(tài)時(shí),其他用戶態(tài)進(jìn)程優(yōu)先級(jí)再高也不能搶占它,這將導(dǎo)致優(yōu)先級(jí)逆轉(zhuǎn),實(shí)時(shí)任務(wù)執(zhí)行時(shí)間的不確定性,顯然不能滿足硬實(shí)時(shí)應(yīng)用的要求。

      2.Linux系統(tǒng)時(shí)鐘精度太過(guò)粗糙。時(shí)鐘管理是操作系統(tǒng)的脈搏,任務(wù)的執(zhí)行和中止在很多情況下都是由時(shí)鐘直接或間接喚起的,它是進(jìn)程調(diào)度的重要依據(jù)。Linux的周期模式定時(shí)器頻率僅為100Hz,使得其時(shí)間粒度過(guò)大,加大了任務(wù)響應(yīng)延遲,遠(yuǎn)不能滿足實(shí)時(shí)應(yīng)用的要求。

      3.Linux采用對(duì)臨界區(qū)操作時(shí)屏蔽中斷的方式,在中斷處理中是不允許進(jìn)行任務(wù)調(diào)度的,從而抑制了系統(tǒng)及時(shí)響應(yīng)外部操作的能力。

      4.缺乏有效的實(shí)時(shí)任務(wù)調(diào)度機(jī)制和調(diào)度算法。

      5.Linux雖然給實(shí)時(shí)進(jìn)程提供了較高的優(yōu)先級(jí),但是沒(méi)有加入時(shí)間限制。例如:完成的最后期限、應(yīng)在多長(zhǎng)時(shí)間內(nèi)完成、執(zhí)行周期等等。同時(shí),其他大量的非實(shí)時(shí)進(jìn)程也可能對(duì)實(shí)時(shí)進(jìn)程造成阻塞,無(wú)法確保實(shí)時(shí)進(jìn)程的響應(yīng)時(shí)間。

      四、改進(jìn)內(nèi)核實(shí)時(shí)性的分析與研究

      針對(duì)Linux在實(shí)時(shí)應(yīng)用中的技術(shù)障礙,將Linux改造成為支持實(shí)時(shí)任務(wù)的嵌入式操作系統(tǒng),主要從細(xì)化時(shí)鐘粒度、可搶占式內(nèi)核體系結(jié)構(gòu)、中斷軟件模擬和實(shí)時(shí)任務(wù)的調(diào)度策略這四個(gè)方面對(duì)嵌入式Linux內(nèi)核進(jìn)行研究,并給出了相應(yīng)的提高實(shí)時(shí)性的方法。

      1.細(xì)化時(shí)鐘粒度

      精確的計(jì)時(shí)是實(shí)時(shí)調(diào)度器正確操作所必須的,調(diào)度器通常要求在一個(gè)特定的時(shí)刻進(jìn)行任務(wù)切換,計(jì)時(shí)的錯(cuò)誤將導(dǎo)致背離計(jì)劃的調(diào)度,引起任務(wù)釋放抖動(dòng)。標(biāo)準(zhǔn)Linux系統(tǒng)時(shí)鐘精度太過(guò)粗糙,時(shí)鐘中斷周期為10ms,不能滿足特定嵌入式應(yīng)用領(lǐng)域中對(duì)于響應(yīng)時(shí)間精度的要求。因此,在實(shí)時(shí)Linux應(yīng)用中,需要細(xì)化其時(shí)鐘粒度,具體有兩種方式可以解決時(shí)鐘粒度問(wèn)題:

      (1)通過(guò)直接修改內(nèi)核定時(shí)參數(shù)Hz的初值來(lái)細(xì)化時(shí)鐘粒度,如將標(biāo)準(zhǔn)Linux中內(nèi)核定時(shí)參數(shù)Hz改為10000,則時(shí)鐘粒度可以達(dá)到100μs,這種方式雖然會(huì)增加一些系統(tǒng)開(kāi)銷(xiāo),但在強(qiáng)周期性環(huán)境下,對(duì)定時(shí)器的設(shè)置只需初始化一次,在一定程度上保證了處理效率。

      (2)通過(guò)對(duì)可編程中斷定時(shí)器8254或先進(jìn)的可編程中斷控制器進(jìn)行編程來(lái)改進(jìn)Linux時(shí)鐘機(jī)制,以提高其時(shí)鐘的分辨率,使毫秒級(jí)的粗粒度定時(shí)器變成微秒級(jí)的細(xì)粒度定時(shí)器。

      2.增強(qiáng)Linux可搶占性內(nèi)核機(jī)制

      標(biāo)準(zhǔn)Linux內(nèi)核是不可搶占的,導(dǎo)致較大的延遲,增強(qiáng)內(nèi)核的可搶占性能,可提高系統(tǒng)內(nèi)核對(duì)實(shí)時(shí)任務(wù)的響應(yīng)能力。為了解決Linux實(shí)現(xiàn)硬實(shí)時(shí)的最大障礙,使Linux內(nèi)核成為完全可被搶占實(shí)時(shí)內(nèi)核,典型的實(shí)現(xiàn)方案是雙核結(jié)構(gòu)。使用實(shí)時(shí)核來(lái)運(yùn)行實(shí)時(shí)任務(wù),Linux內(nèi)核來(lái)運(yùn)行非實(shí)時(shí)任務(wù)。如圖1所示。

      圖1 雙內(nèi)核結(jié)構(gòu)

      對(duì)于Linux內(nèi)核的修改主要集中在三方面:

      (1)在Linux內(nèi)核中影響實(shí)時(shí)性的地方增加控制點(diǎn),使內(nèi)核在控制點(diǎn)可以被搶占,減少內(nèi)核搶占延遲。

      (2)將執(zhí)行時(shí)間較長(zhǎng)的系統(tǒng)劃分為幾個(gè)甚至是十幾個(gè)較小的塊分別執(zhí)行,使實(shí)時(shí)任務(wù)隨時(shí)中斷非實(shí)時(shí)任務(wù)。

      (3)根據(jù)實(shí)際需要,增加部分功能。

      3.中斷軟件模擬

      響應(yīng)時(shí)間的分析及解決方法:任務(wù)的響應(yīng)時(shí)間被定義為一個(gè)事件的發(fā)生和任務(wù)響應(yīng)這一事件開(kāi)始執(zhí)行之間的間隔時(shí)間,通常有以下幾個(gè)因素影響任務(wù)的響應(yīng)時(shí)間。

      (1)中斷分配時(shí)間IDT(interruptdispatchtime):當(dāng)一個(gè)中斷產(chǎn)生時(shí),在調(diào)用中斷處理程序占用CPU以前,操作系統(tǒng)用來(lái)保存所有的寄存器中的內(nèi)容和系統(tǒng)中其他的關(guān)于這一任務(wù)狀態(tài)的時(shí)間。

      (2)中斷服務(wù)時(shí)間IST(interruptservicetime):中斷服務(wù)程序用來(lái)從硬件設(shè)備讀取信息或從操作系統(tǒng)收集信息所用的時(shí)間。

      (3)內(nèi)核搶占時(shí)間KPT(kernelpreemptiontime):在操作系統(tǒng)意欲搶占當(dāng)前進(jìn)程與搶占實(shí)際上發(fā)生之間的時(shí)間間隔。

      (4)調(diào)度延遲SD(scheduledelay):調(diào)度程序用來(lái)調(diào)度另一個(gè)線程投入運(yùn)行的時(shí)間。

      (5)進(jìn)程切換時(shí)間CST(contestswitchingtime):當(dāng)前線程用來(lái)保存寄存器和系統(tǒng)狀態(tài)的時(shí)間與將要運(yùn)行的線程恢復(fù)寄存器中的內(nèi)容和系統(tǒng)狀態(tài)的時(shí)間總和。

      (6)系統(tǒng)調(diào)用返回時(shí)間RST(returnfromsystemcall):處于內(nèi)核態(tài)的線程在它返回用戶態(tài)之前檢查一些狀態(tài)所用的時(shí)間。

      其中,SD、CST和RST總是固定不變的,如果Linux內(nèi)核設(shè)計(jì)得當(dāng)?shù)脑?,IDT、IST和KPT可以有效的減少。在實(shí)時(shí)應(yīng)用的環(huán)境中,若干個(gè)中斷同時(shí)發(fā)生的情況是完全可能存在的。這時(shí)任務(wù)的響應(yīng)時(shí)間最多將包含N(IDT+IST),N為中斷數(shù)。

      中斷軟件模擬被用來(lái)解決多個(gè)中斷同時(shí)發(fā)生的情形。當(dāng)一個(gè)硬件中斷發(fā)生時(shí),系統(tǒng)只是簡(jiǎn)單的在時(shí)間表中報(bào)告這一時(shí)間的發(fā)生,然后立即將CPU的控制權(quán)返回給操作系統(tǒng),完全略過(guò)查中斷向量表并執(zhí)行相應(yīng)的中斷服務(wù)程序。系統(tǒng)在Linux內(nèi)核之前截獲了所有硬中斷信號(hào),并根據(jù)當(dāng)前實(shí)時(shí)任務(wù)的需要,由軟中斷模擬機(jī)制處理或掛起該中斷。

      采用這個(gè)方法,可以減少當(dāng)多個(gè)中斷同時(shí)發(fā)生時(shí)任務(wù)的響應(yīng)時(shí)間,最長(zhǎng)的延遲時(shí)間為N*IST’。

      4.改善Linux內(nèi)核實(shí)時(shí)任務(wù)的調(diào)度策略

      常用的實(shí)時(shí)調(diào)度算法有:

      (1)基于優(yōu)先級(jí)的調(diào)度算法?;趦?yōu)先級(jí)的調(diào)度算法調(diào)度器以優(yōu)先級(jí)作為尋求下一個(gè)任務(wù)執(zhí)行的依據(jù)。可分為兩種類(lèi)型:

      ① 靜態(tài)優(yōu)先級(jí)調(diào)度算法:該算法給系統(tǒng)中所有進(jìn)程都靜態(tài)的分配一個(gè)優(yōu)先級(jí)。靜態(tài)優(yōu)先級(jí)的分配可以根據(jù)應(yīng)用的屬性來(lái)進(jìn)行。

      ② 動(dòng)態(tài)優(yōu)先級(jí)調(diào)度算法:該算法根據(jù)任務(wù)的資源需求來(lái)動(dòng)態(tài)的分配任務(wù)的優(yōu)先級(jí)。EDF算法是一種典型的動(dòng)態(tài)優(yōu)先級(jí)調(diào)度算法,該算法根據(jù)就緒隊(duì)列中各個(gè)任務(wù)的截止期限來(lái)分配優(yōu)先級(jí),具有最近截止期限的任務(wù)的優(yōu)先級(jí)最高。

      (2)基于時(shí)間驅(qū)動(dòng)的調(diào)度算法。該算法本質(zhì)上是一種設(shè)計(jì)時(shí)就確定下來(lái)的離線的靜態(tài)調(diào)度方法。在系統(tǒng)的設(shè)計(jì)階段,在明確系統(tǒng)中所有處理的情況下,對(duì)于各個(gè)任務(wù)的開(kāi)始、切換以及結(jié)束時(shí)間等事先組出明確的安排和設(shè)計(jì)。

      (3)基于比例共享的調(diào)度算法。這是一種越來(lái)越受到關(guān)注的實(shí)時(shí)調(diào)度模式,基于GPS的算法。其基本思想就是按照一定的權(quán)重(CPU使用的比例)對(duì)一組需要調(diào)度的任務(wù)進(jìn)行調(diào)度,使其執(zhí)行時(shí)間與權(quán)重完全成正比??梢酝ㄟ^(guò)兩種方法實(shí)現(xiàn):

      ① 調(diào)節(jié)各個(gè)就緒進(jìn)程出現(xiàn)在當(dāng)前調(diào)度隊(duì)列隊(duì)首的頻率,并調(diào)度隊(duì)首的進(jìn)程執(zhí)行。

      ② 逐次調(diào)度就緒隊(duì)列中的各個(gè)進(jìn)程投入運(yùn)行,但根據(jù)分配的權(quán)重調(diào)節(jié)分配給每個(gè)進(jìn)程的運(yùn)行時(shí)間片。

      針對(duì)每一種調(diào)度策略都有自己的優(yōu)越性和不足。通過(guò)設(shè)計(jì)和構(gòu)造多屬性和多調(diào)度器的選擇機(jī)制,使三種實(shí)時(shí)調(diào)度策略的應(yīng)用都得到支持,相對(duì)于只對(duì)單種調(diào)度策略提供支持的方案,拓展了系統(tǒng)的可使用范圍,提出了一種宏觀調(diào)度結(jié)構(gòu)。如圖2。

      圖2 宏觀調(diào)度結(jié)構(gòu)

      其中給每一個(gè)實(shí)時(shí)任務(wù)定義了4個(gè)調(diào)度屬性:priority(優(yōu)先級(jí):限制該任務(wù)比相關(guān)聯(lián)的其他任務(wù)的優(yōu)先權(quán))、start time(起始時(shí)間:任務(wù)開(kāi)始執(zhí)行時(shí)間)、finish time(截止時(shí)間:任務(wù)停止時(shí)間)和budget(預(yù)設(shè)值:任務(wù)允許執(zhí)行時(shí)間),不同屬性的數(shù)據(jù)對(duì)應(yīng)不同的調(diào)度策略。宏觀調(diào)度結(jié)構(gòu)分為兩個(gè)模塊:屬性分配模塊和調(diào)度器選擇模塊。屬性分配模塊給每一個(gè)實(shí)時(shí)任務(wù)分配多個(gè)屬性值,并通過(guò)其中的一兩個(gè)屬性值決定哪個(gè)屬性優(yōu)先,這樣調(diào)度器選擇模塊就可以根據(jù)屬性的優(yōu)先級(jí)別選擇不同的調(diào)度器。

      五、結(jié)束語(yǔ)

      嵌入式技術(shù)具有廣闊的應(yīng)用前景,滲透于社會(huì)生活的諸多領(lǐng)域,把Linux應(yīng)用于嵌入式系統(tǒng),將其自身固有的優(yōu)越性融入嵌入式技術(shù),是嵌入式技術(shù)發(fā)展的一個(gè)重要方向。然而,由于Linux在實(shí)時(shí)應(yīng)用領(lǐng)域的技術(shù)障礙,要將其應(yīng)用在嵌入式領(lǐng)域還必須修改Linux 內(nèi)核中的各個(gè)模塊以達(dá)到滿足嵌入式實(shí)時(shí)應(yīng)用的需求。Linux實(shí)時(shí)性能的逐步完善、應(yīng)用的需要也會(huì)進(jìn)一步督促我們應(yīng)該及時(shí)跟蹤國(guó)內(nèi)外Linux發(fā)展動(dòng)態(tài),同時(shí)積累此領(lǐng)域的開(kāi)發(fā)經(jīng)驗(yàn),走出自己的路。

      [1] 駱耀祖.Linux操作系統(tǒng)分析教程[M].清華大學(xué)出版社,2004.

      [2] 董曉峰,顧新.關(guān)于Linux內(nèi)核可搶占性的研究[J].計(jì)算機(jī)工程,2005.

      [3] 趙慧斌,李小群,孫玉芳.改善Linux核心可搶占性方法的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)學(xué)報(bào),2004,2.

      [4] 李凡,盧杜階,邱鵬.在嵌入式應(yīng)用中增強(qiáng)Linux實(shí)時(shí)性的方法研究[J].華中科技大學(xué)學(xué)報(bào),2005,2.

      [5] Robert love.Linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)[M].機(jī)械工業(yè)出版社,2003.

      TP30

      A

      1008-7427(2011)05-0157-02

      2011-03-26

      作者系蘭州資源環(huán)境職業(yè)技術(shù)學(xué)院信息管理系講師。

      猜你喜歡
      實(shí)時(shí)性內(nèi)核中斷
      萬(wàn)物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
      強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
      基于規(guī)則實(shí)時(shí)性的端云動(dòng)態(tài)分配方法研究
      基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
      Linux內(nèi)核mmap保護(hù)機(jī)制研究
      基于虛擬局域網(wǎng)的智能變電站通信網(wǎng)絡(luò)實(shí)時(shí)性仿真
      跟蹤導(dǎo)練(二)(5)
      千里移防,衛(wèi)勤保障不中斷
      解放軍健康(2017年5期)2017-08-01 06:27:44
      航空電子AFDX與AVB傳輸實(shí)時(shí)性抗干擾對(duì)比
      一種車(chē)載Profibus總線系統(tǒng)的實(shí)時(shí)性分析
      塔城市| 张家川| 金秀| 红安县| 吉隆县| 万山特区| 阳泉市| 莱州市| 南部县| 南和县| 诏安县| 东台市| 潮州市| 子长县| 高碑店市| 苍南县| 北流市| 乌什县| 金堂县| 武陟县| 阜康市| 石河子市| 高碑店市| 麻江县| 米脂县| 达日县| 库尔勒市| 新宾| 湖南省| 乌什县| 涿鹿县| 阜城县| 宣武区| 和平县| 民和| 房产| 遵化市| 辽阳市| 高台县| 高邮市| 玛多县|