在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式Linux下的實(shí)時(shí)性增強(qiáng)方案

            嵌入式Linux下的實(shí)時(shí)性增強(qiáng)方案

            作者: 時(shí)間:2011-01-13 來源:網(wǎng)絡(luò) 收藏

            由于Linux內(nèi)核底層的臨界資源是不可搶占的,使用mutex替換spinlock的過程中,這部分可以保留,仍由不可搶占的 spinlock保護(hù),如:保護(hù)硬件寄存器的鎖、調(diào)度器的運(yùn)行隊(duì)列鎖等。不可搶占的spinlock被重新命名為raw_spinlock_t。 spin_lock被宏定義為:

            #define spin_lock(lock) PICK_OP(raw_spinlock_t,spin,_lock,lock)

            函數(shù)PICK_OP支持兩種鎖共存機(jī)制,PICK_OP在編譯階段將鎖操作轉(zhuǎn)化為mutex或者spinlock:

            #define PICK_OP(type, optype, op, lock)

            do {

            if (TYPE_EQUAL((lock), type))

            _raw_##optype##op((type *)(lock));

            else if (TYPE_EQUAL(lock, spinlock_t))

            //調(diào)用gcc的內(nèi)嵌函數(shù)__builtin_types_compatible_p()

            _spin##op((spinlock_t *)(lock));

            else __bad_spinlock_type();

            } while (0)

            #define TYPE_EQUAL(lock, type)

            __builtin_types_compatible_p(typeof(lock), type *)

            gcc的內(nèi)嵌函數(shù)__builtin_types_compatible_p用于判斷一個(gè)變量的類型是否為某指定的類型,如果類型為 spinlock_t,將運(yùn)行函數(shù)_spin_lock;類型為raw_spinlock_t,將運(yùn)行函數(shù)_raw_spin_lock。

            實(shí)時(shí)rt_mutex在具體應(yīng)用中,一個(gè)高優(yōu)先級(jí)任務(wù)搶占該鎖的同時(shí),把先前的鎖擁有者添加到互斥鎖等待隊(duì)列中,并在當(dāng)前擁有該鎖的任務(wù) task_struct中標(biāo)記等待該鎖的所有任務(wù);反之,不能得到該鎖就把當(dāng)前任務(wù)添加到鎖的優(yōu)先級(jí)等待隊(duì)列中,直到喚醒執(zhí)行。為了防止優(yōu)先級(jí)逆轉(zhuǎn),可以改變鎖的當(dāng)前擁有者的優(yōu)先級(jí)為鎖的等待隊(duì)列中任務(wù)的最高優(yōu)先級(jí)。

            rt_mutex可以使高優(yōu)先級(jí)任務(wù)利用搶占鎖進(jìn)入臨界區(qū),這樣內(nèi)核不可搶占區(qū)的數(shù)量和范圍大大縮小,內(nèi)核可搶占性有了很大的提高,且降低了實(shí)時(shí)高優(yōu)先級(jí)任務(wù)的搶占延遲,改善了系統(tǒng)的實(shí)時(shí)性能。

            2.3 可搶占大內(nèi)核鎖設(shè)計(jì)

            大內(nèi)核鎖BKL(Big Kernel Lock)實(shí)質(zhì)上也是spinlock,它用于保護(hù)整個(gè)內(nèi)核,該鎖保持時(shí)間較長,對(duì)系統(tǒng)的實(shí)時(shí)性能影響很大[6]。采用Ingo Molnar的實(shí)時(shí)化方法,BKL使用semaphore實(shí)現(xiàn),結(jié)構(gòu)定義如下代碼:

            struct semaphore {

            atomic_t count;

            struct rt_mutex lock; //實(shí)時(shí)互斥鎖的使用

            };

            由結(jié)構(gòu)體發(fā)現(xiàn),在BKL實(shí)現(xiàn)中利用了實(shí)時(shí)互斥鎖rt_mutex,在改進(jìn)后的spinlock結(jié)構(gòu)體spinlock_t中也利用了實(shí)時(shí)互斥鎖 rt_mutex,因此可搶占大內(nèi)核鎖和新的spinlock共用了低層的處理代碼。使用semaphore之后,大內(nèi)核鎖就可搶占了。

            3 內(nèi)核實(shí)時(shí)性測(cè)試

            針對(duì)Linux2.6內(nèi)核,本文并沒有作出對(duì)內(nèi)核調(diào)度算法的修正,只是探討了中斷運(yùn)行機(jī)制、自旋鎖及大內(nèi)核鎖技術(shù)在系統(tǒng)實(shí)時(shí)性能上的局限性,所以實(shí)驗(yàn)測(cè)試主要測(cè)試中斷延遲時(shí)間和任務(wù)響應(yīng)時(shí)間。實(shí)驗(yàn)環(huán)境: Intel 2 GHz CPU,256 DDR內(nèi)存,Kernel 2.6.22版本。測(cè)試結(jié)果如表1所示。
            1.jpg

            由表可知,在中斷服務(wù)程序中寫入標(biāo)記,測(cè)試中斷觸發(fā)至中斷服務(wù)程序執(zhí)行平均響應(yīng)時(shí)間,標(biāo)準(zhǔn)Linux2.6內(nèi)核平均中斷響應(yīng)時(shí)間為182 μs,改進(jìn)后Linux2.6內(nèi)核為14 μs。采用開源軟件LMbench3.0 測(cè)試系統(tǒng)任務(wù)調(diào)度延遲時(shí)間,標(biāo)準(zhǔn)Linux2.6內(nèi)核平均任務(wù)響應(yīng)時(shí)間為1 260 μs,改進(jìn)后Linux2.6內(nèi)核為162μs。由此可見,改進(jìn)策略在一定程度上大大減小了中斷延遲和任務(wù)調(diào)度時(shí)間,有利于改善移動(dòng)機(jī)器人任務(wù)處理的實(shí)時(shí)性能。

            本文基于Linux2.6內(nèi)核的關(guān)中斷、中斷優(yōu)先級(jí)、內(nèi)核的不可搶占性以及大內(nèi)核鎖保持時(shí)間過長等問題進(jìn)行了實(shí)時(shí)性分析,提出了相應(yīng)的改進(jìn)方法。利用中斷線程化、互斥鎖的應(yīng)用及大內(nèi)核鎖的改進(jìn)等技術(shù)提高了系統(tǒng)的實(shí)時(shí)性能,降低了內(nèi)核中斷延遲和調(diào)度延遲。改進(jìn)后的內(nèi)核在移動(dòng)機(jī)器人控制器平臺(tái)中有很好的應(yīng)用價(jià)值,提高了機(jī)器人控制的實(shí)時(shí)性能。

            本文引用地址:http://www.biyoush.com/article/151096.htm
            linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

            上一頁 1 2 3 下一頁

            關(guān)鍵詞: 嵌入式

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉