<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 改善Linux內(nèi)核實(shí)時性方法的研究與實(shí)現(xiàn)

          改善Linux內(nèi)核實(shí)時性方法的研究與實(shí)現(xiàn)

          作者: 時間:2014-08-14 來源:網(wǎng)絡(luò) 收藏

            #define TYPE_EQUAL(lock, type)

          本文引用地址:http://www.ex-cimer.com/article/261723.htm

            __builtin_types_compatible_p(typeof(lock), type *)

            函數(shù)映射結(jié)構(gòu)PICK_OP是允許兩種鎖共存的機(jī)制,PICK_OP在編譯階段將鎖操作轉(zhuǎn)化為合適的種類(mutex或者spinlock):

            

            

          中斷

           

            根據(jù)宏處理的結(jié)果,如果類型為spinlock_t,將運(yùn)行函數(shù)_spin_lock,而如果類型為raw_spinlock_t,將運(yùn)行函數(shù) _raw_spin_lock。對于實(shí)時rt_mutex獲取,當(dāng)前任務(wù)由于優(yōu)先級高如果可以搶占該鎖,則把鎖的先前擁有者添加到該鎖的等待隊(duì)列中并且在新的鎖擁有者的task_struct中標(biāo)記等待該鎖的所有任務(wù);而如果不能獲得鎖,則把當(dāng)前任務(wù)放到鎖的優(yōu)先級等待隊(duì)列中,直到鎖的擁有者釋放該鎖,喚醒等待隊(duì)列中最高優(yōu)先級的任務(wù)進(jìn)入臨界區(qū)。為了防止優(yōu)先級反轉(zhuǎn),可以改變鎖的當(dāng)前擁有者的優(yōu)先級為鎖的等待隊(duì)列中任務(wù)的最高優(yōu)先級。

            實(shí)時互斥鎖的應(yīng)用使得高優(yōu)先級的任務(wù)通過搶占鎖可以進(jìn)入臨界區(qū),這樣內(nèi)核的不可搶占區(qū)的數(shù)量和范圍都大大縮小,內(nèi)核可搶占性有了很大的提高,充分減小了實(shí)時高優(yōu)先級任務(wù)的搶占延遲。

            3 改進(jìn)后的內(nèi)核能測試

            對進(jìn)行了實(shí)時化改造后,需要對其進(jìn)行測試來確定系統(tǒng)是否符合實(shí)際應(yīng)用的需要。能測試主要包括測試內(nèi)核的最大中斷延遲和任務(wù)調(diào)度時間延遲兩個重要的指標(biāo)。

            中斷延遲反映的是中斷信號發(fā)生到內(nèi)核對中斷做出響應(yīng)所需要的時間,通過利用并口的7號中斷,短路并口的9-10腳,其中10腳為中斷引腳,9口為并口數(shù)據(jù)口的高位,往IO口0X378寫8就可以引發(fā)中斷,然后在中斷服務(wù)程序里往0x378寫0就會重新拉低中斷引腳電平。用高精度示波器測量這個脈沖的寬度來測得中斷延遲時間。對于賽揚(yáng)650MHz,內(nèi)存128M的工控平臺,負(fù)載為拷貝CF卡情況下,標(biāo)準(zhǔn)2.6內(nèi)核最長中斷延遲為 240us,而改進(jìn)后的實(shí)時內(nèi)核最長中斷延遲為16us。

            采用開源軟件LMbench3.0測試系統(tǒng)調(diào)度延遲時間。測試機(jī)器配置為:CPU ,Intel P4 2.8GHz,內(nèi)存512M,負(fù)載情況為拷貝硬盤、訪問網(wǎng)絡(luò)。標(biāo)準(zhǔn)2.6內(nèi)核調(diào)度延遲為1038us,而改進(jìn)后的內(nèi)核的調(diào)度延遲為140us。

            可見改進(jìn)后的內(nèi)核的最長中斷延遲和調(diào)度延遲比標(biāo)準(zhǔn)內(nèi)核要短很多,內(nèi)核的能有了很大的提高。

            4 結(jié)束語

            針對標(biāo)準(zhǔn)內(nèi)核由于中斷關(guān)閉時間過長、內(nèi)核臨界不可搶占區(qū)過大而多,明顯存在實(shí)時性能方面的不足,提出了改進(jìn)其實(shí)時性的方法,實(shí)現(xiàn)了實(shí)時Linux內(nèi)核的中斷線程化以及新的內(nèi)核同步自旋鎖,使其具有更短的中斷延遲和調(diào)度延遲。

            本文作者的創(chuàng)新點(diǎn):在標(biāo)準(zhǔn)的可搶占內(nèi)核上對其中斷處理機(jī)制進(jìn)行線程化改造,大大的減小了中斷響應(yīng)時間。另外對內(nèi)核同步機(jī)制采用新的自旋鎖使得內(nèi)核可搶占性能更加優(yōu)異,改進(jìn)后的內(nèi)核可以適用于對Linux內(nèi)核實(shí)時性要求更高的場合。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          linux相關(guān)文章:linux教程



          上一頁 1 2 下一頁

          關(guān)鍵詞: Linux 實(shí)時性 Linux2.6

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();