亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        嵌入式Linux內(nèi)核實(shí)時(shí)性測(cè)試研究

        2016-11-02 06:43:54介龍梅徐有軍邵國(guó)強(qiáng)
        關(guān)鍵詞:進(jìn)程嵌入式

        介龍梅,徐有軍,邵國(guó)強(qiáng)

        (大慶師范學(xué)院計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院,黑龍江大慶 163712)

        嵌入式Linux內(nèi)核實(shí)時(shí)性測(cè)試研究

        介龍梅,徐有軍,邵國(guó)強(qiáng)

        (大慶師范學(xué)院計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院,黑龍江大慶163712)

        介紹了嵌入式Linux內(nèi)核實(shí)時(shí)性問(wèn)題的背景及其在實(shí)際中的應(yīng)用。提出了實(shí)時(shí)性測(cè)試的2個(gè)主要指標(biāo):進(jìn)程切換時(shí)間和中斷延遲時(shí)間。前者測(cè)試包括2個(gè)方案:一是通過(guò)程序測(cè)量父子進(jìn)程切換時(shí)間,二是借助Lmbench工具測(cè)量進(jìn)程上下文切換時(shí)間;后者則采用測(cè)量時(shí)鐘中斷延遲的方法來(lái)實(shí)現(xiàn)。針對(duì)3個(gè)測(cè)試實(shí)驗(yàn),分別給出了方案設(shè)計(jì)、方案實(shí)現(xiàn)和測(cè)試結(jié)果與分析。最后在分析和實(shí)驗(yàn)的基礎(chǔ)上得出幾點(diǎn)重要結(jié)論,并給出2種實(shí)時(shí)性的改進(jìn)方案。

        嵌入式Linux;實(shí)時(shí)性;進(jìn)程調(diào)度延遲;中斷延遲

        0 引 言

        21世紀(jì)以來(lái),嵌入式系統(tǒng)已經(jīng)應(yīng)用到人類(lèi)生產(chǎn)和生活的諸多方面,從工業(yè)控制、航空航天,到車(chē)輛導(dǎo)航、醫(yī)療設(shè)備等。

        Linux雖然在許多方面都表現(xiàn)出優(yōu)越特性,但其實(shí)時(shí)性卻較弱。標(biāo)準(zhǔn)的Linux并未提供實(shí)時(shí)的操作系統(tǒng)內(nèi)核,而有些應(yīng)用又對(duì)實(shí)時(shí)性提出有較高要求。比如PFX攝像機(jī)的項(xiàng)目,單核的實(shí)時(shí)性即無(wú)法滿足攝像機(jī)的現(xiàn)場(chǎng)需求,為此需要通過(guò)實(shí)驗(yàn)對(duì)linux內(nèi)核在不同環(huán)境下的實(shí)時(shí)性展開(kāi)測(cè)試和分析,以確定系統(tǒng)是否可以滿足實(shí)時(shí)性需求[1]。

        1 Linux實(shí)時(shí)性測(cè)試

        進(jìn)程切換時(shí)間和中斷延遲時(shí)間是影響Linux實(shí)時(shí)性的2個(gè)最重要因素,對(duì)Linux實(shí)時(shí)性的測(cè)試研究可從如上2個(gè)方面著手進(jìn)行,再通過(guò)相關(guān)的測(cè)試程序和測(cè)試工具,測(cè)量進(jìn)程切換時(shí)間和中斷延遲時(shí)間,從而依據(jù)測(cè)量的時(shí)間數(shù)據(jù)來(lái)衡量Linux的實(shí)時(shí)性能[2]。

        1.1父子進(jìn)程切換時(shí)間測(cè)量

        1.1.1測(cè)試方案設(shè)計(jì)

        程序開(kāi)始運(yùn)行后,首先創(chuàng)建2個(gè)管道A和B,而后創(chuàng)建一個(gè)子進(jìn)程。子進(jìn)程運(yùn)行時(shí),為保證在程序運(yùn)行中不會(huì)有其它的進(jìn)程搶占系統(tǒng)CPU,可將子進(jìn)程的優(yōu)先級(jí)修改為99。子進(jìn)程調(diào)用gettimeofday獲得當(dāng)前時(shí)間t1并輸出,此后進(jìn)入一個(gè)5 000次的循環(huán),在循環(huán)中執(zhí)行2條語(yǔ)句,先讀取管道A中的數(shù)據(jù),再向管道B中寫(xiě)入數(shù)據(jù)。

        在父進(jìn)程中,同樣將父進(jìn)程的優(yōu)先級(jí)修改為99,而且也進(jìn)入一個(gè)5 000次的循環(huán),在循環(huán)中執(zhí)行2條語(yǔ)句,先是向管道A中寫(xiě)入數(shù)據(jù),再是讀取管道B中的數(shù)據(jù)。循環(huán)結(jié)束后,父進(jìn)程調(diào)用gettimeofday獲得當(dāng)前時(shí)間t2并輸出。

        1.1.2測(cè)試方案實(shí)現(xiàn)

        1.1.2.1程序運(yùn)行平臺(tái)

        為使得程序的測(cè)試數(shù)據(jù)更加豐富和全面,測(cè)試程序?qū)⒃谌缦?個(gè)平臺(tái)中分別實(shí)現(xiàn)和運(yùn)行。在此,給出其中2個(gè)典型平臺(tái)的實(shí)驗(yàn)配置,預(yù)期設(shè)定如下:

        1)x86平臺(tái),CPU為Pentium4,主頻2.8GHz,Vmware虛擬機(jī),操作系統(tǒng)為CentOS-5-5,Linux內(nèi)核版本為2.6.29.6。

        2)x86平臺(tái),CPU為Pentium4,主頻2.8GHz,Vmware虛擬機(jī),操作系統(tǒng)為CentOS-5-5,Linux內(nèi)核版本為2.6.29.6,內(nèi)核中添加了Ingo Molnar實(shí)時(shí)補(bǔ)丁。

        1.1.2.2程序流程圖

        圖1為父子進(jìn)程切換時(shí)間測(cè)試程序的流程圖。

        1.1.3測(cè)試結(jié)果及分析

        切換次數(shù)為10 000時(shí),測(cè)試程序在各個(gè)平臺(tái)測(cè)得的進(jìn)程切換時(shí)間如表1所示。時(shí)間的單位為微秒(μs)。對(duì)表1中的數(shù)據(jù)實(shí)施重點(diǎn)分析,可得具體結(jié)論如下:

        1)在x86平臺(tái)下,進(jìn)程切換的時(shí)間很短,在Linux-2.6.29.6和Linux-2.6.29.6(添加實(shí)時(shí)補(bǔ)?。┫碌钠骄鶗r(shí)間為26.49 μs和24.76 μs。

        2)在S3C2410平臺(tái)下,進(jìn)程切換的時(shí)間就大大增加,在Linux-2.6.29.6和Linux-2.6.29.6(添加實(shí)時(shí)補(bǔ)?。┫碌钠骄鶗r(shí)間為204.51μs和204.46μs(考慮到上文提到的時(shí)鐘中斷的影響,這個(gè)時(shí)間出現(xiàn)了誤差,大概在幾微秒范圍內(nèi)。

        3)由上述的數(shù)據(jù)及分析可以得出結(jié)論:Linux的進(jìn)程切換時(shí)間較長(zhǎng),嵌入式環(huán)境下可能會(huì)更長(zhǎng),尚不能有效滿足實(shí)時(shí)性的要求,仍然有待進(jìn)一步的提升和改善。

        1.2Lmbench測(cè)試工具

        1.2.1測(cè)試方案設(shè)計(jì)

        Lmbench是一套為UNIX/POSIX指定的微型測(cè)評(píng)工具,本文將特別選用其測(cè)量進(jìn)程上下文切換時(shí)間的功能[3]。

        1.2.2測(cè)試方案實(shí)現(xiàn)

        啟動(dòng)Lmbench后進(jìn)入源碼解壓目錄,執(zhí)行make results命令開(kāi)始測(cè)試。沒(méi)有編譯錯(cuò)誤,提示對(duì)測(cè)試進(jìn)行配置并生產(chǎn)配置腳本。Lmbench根據(jù)配置文檔執(zhí)行測(cè)試項(xiàng),并在results目錄下根據(jù)系統(tǒng)類(lèi)型、系統(tǒng)名和操作系統(tǒng)類(lèi)型產(chǎn)生一個(gè)子目錄,測(cè)試結(jié)果存放在該目錄下。

        測(cè)試的平臺(tái)為:x86平臺(tái),CPU為Pentium4,主頻2.8GHz,Vmware虛擬機(jī),操作系統(tǒng)為CentOS-5-5,Linux內(nèi)核版本為2.6.18。

        1.2.3測(cè)試結(jié)果及分析

        在CentOS-5-5,Linux內(nèi)核版本為2.6.18平臺(tái)下測(cè)得的進(jìn)程上下文切換時(shí)間如表2所示,單位為微秒(μs)。其中,第二行Host OS表示不同的進(jìn)程數(shù)量(2p、8p、16p)和進(jìn)程上下文數(shù)據(jù)塊的大?。?K、16K、64K)。

        圖1 父子進(jìn)程切換時(shí)間測(cè)試流程圖Fig.1 The flow chart of the father-son process switching time delay test

        表2 Lmbench測(cè)得的進(jìn)程上下文切換時(shí)間(單位:μs)Tab.2 The switching time delay of process context tested by Lmbench(Unit:μs)

        針對(duì)表2中所得數(shù)據(jù),展開(kāi)如下分析:

        1)進(jìn)程上下文切換的時(shí)間與進(jìn)程的數(shù)量和進(jìn)程上下文數(shù)據(jù)塊的大小都有密切的關(guān)系。在進(jìn)程數(shù)量較少的情況下(例如2個(gè)),進(jìn)程上下文切換的時(shí)間較短;進(jìn)程數(shù)量較多時(shí),進(jìn)程上下文切換的時(shí)間也會(huì)出現(xiàn)增加。同樣,數(shù)據(jù)塊較小時(shí),切換時(shí)間也會(huì)較數(shù)據(jù)塊較大時(shí)要少上一些[4]。

        2)由上述數(shù)據(jù)的線性增長(zhǎng)可以得出結(jié)論:當(dāng)系統(tǒng)中進(jìn)程數(shù)量較大,進(jìn)程上下文的數(shù)據(jù)塊也較大時(shí),尤其是系統(tǒng)負(fù)載也趨于可觀時(shí),進(jìn)程上下文切換的時(shí)間會(huì)顯著增大,以致實(shí)時(shí)性較差,甚至無(wú)法達(dá)到實(shí)時(shí)要求。

        1.3時(shí)鐘中斷延遲測(cè)量實(shí)驗(yàn)

        1.3.1測(cè)試方案實(shí)現(xiàn)

        測(cè)試方案的實(shí)現(xiàn)包括2部分:修改arch/arm/plat-s3c/ time.c文件中的代碼和編寫(xiě)內(nèi)核模塊。其中,修改arch/arm/ plat-s3c/time.c是為了使內(nèi)核擁有計(jì)算時(shí)鐘中斷延遲的功能,而內(nèi)核模塊則是將內(nèi)核中保存時(shí)鐘中斷延遲時(shí)間變量的值輸出到proc文件系統(tǒng)中。因篇幅所限,在此僅概述其重點(diǎn)實(shí)現(xiàn)步驟,并作如下呈現(xiàn):

        1)修改arch/arm/plat-s3c/time.c。

        ①聲明6個(gè)內(nèi)核變量;

        ②實(shí)現(xiàn)2個(gè)函數(shù):gettimeoffset和get_latency_time;

        ③在timer_interrupt()時(shí)鐘中斷服務(wù)程序開(kāi)始處調(diào)用get _latency_time函數(shù),由此測(cè)得與時(shí)鐘中斷延遲相關(guān)的時(shí)間。

        2)輸出內(nèi)核變量值的內(nèi)核模塊(利用proc文件系統(tǒng))。1.3.2 測(cè)試結(jié)果及分析

        測(cè)試程序最終所得的時(shí)鐘中斷的延遲時(shí)間如表3所示。

        表3 時(shí)鐘中斷的延遲時(shí)間(單位:μs)Tab.3 The timer interrupt delay(unit:μs)

        研究可知,測(cè)試程序中,時(shí)鐘中斷服務(wù)程序開(kāi)始執(zhí)行時(shí),定時(shí)器4已走過(guò)的計(jì)數(shù)值更能精確表現(xiàn)出時(shí)鐘中斷的延遲。由于定時(shí)器4的初始值設(shè)置為42 250,即每次定時(shí)器4的值由42 250降至0時(shí),即會(huì)產(chǎn)生時(shí)鐘中斷,而后再?gòu)?fù)位。該測(cè)試中,Linux的時(shí)鐘周期是5 ms,由此則可推算出定時(shí)器4的一個(gè)計(jì)數(shù)表示的時(shí)間大約是129 ns。

        2 結(jié)束語(yǔ)

        本文分析了與Linux實(shí)時(shí)性相關(guān)的一些體系機(jī)制,包括內(nèi)核搶占、時(shí)鐘、進(jìn)程調(diào)度、中斷響應(yīng)[5],在實(shí)驗(yàn)的基礎(chǔ)上得出如下技術(shù)研究結(jié)果:

        1)Linux2.6內(nèi)核并不是完全可搶占,在中斷處理、Spinlock自旋鎖、內(nèi)核處理CPU私有數(shù)據(jù)結(jié)構(gòu)等很多情況下仍然不可搶占,這即無(wú)法保證實(shí)時(shí)進(jìn)程在規(guī)定的時(shí)間內(nèi)得以運(yùn)行。

        2)在大多數(shù)平臺(tái)上,Linux時(shí)鐘中斷的頻率是100,這個(gè)精度無(wú)法滿足實(shí)時(shí)性的要求。

        3)Linux2.6內(nèi)核的O(1)調(diào)度算法能滿足實(shí)時(shí)性的要求,但缺乏調(diào)度點(diǎn)以及優(yōu)先級(jí)反轉(zhuǎn)的問(wèn)題依然無(wú)法保證實(shí)時(shí)任務(wù)的運(yùn)行。

        4)Linux內(nèi)核在臨界區(qū)運(yùn)行時(shí)會(huì)關(guān)閉所有中斷,這就增加了中斷延遲時(shí)間,而臨界區(qū)代碼執(zhí)行時(shí)間的不確定性又使得中斷延遲時(shí)間的不確定性也隨即增加,從而影響系統(tǒng)實(shí)時(shí)性能。

        綜上所述,目前標(biāo)準(zhǔn)Linux的實(shí)時(shí)性能仍然無(wú)法滿足很多實(shí)時(shí)應(yīng)用的需求,因而仍需對(duì)其進(jìn)行功能拓展與完善。通過(guò)RTAI多內(nèi)核方案和Ingo Molnar的實(shí)時(shí)補(bǔ)丁可以在一定程度上滿足用戶實(shí)時(shí)性需要[6]。

        [1]楊豐瑞,王兵.基于Adeos的Linux實(shí)時(shí)性改造的研究與實(shí)現(xiàn)[J].微電子學(xué)與計(jì)算機(jī),2015,32(3):50-53,58.

        [2]周保余,孔德剛,趙宏偉.嵌入式Linux實(shí)時(shí)性研究[J].吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),2011,29(4):339-343.

        [3]嚴(yán)麗平,宋凱,鄧胡濱.基于嵌入式應(yīng)用的Linux內(nèi)核實(shí)時(shí)性改進(jìn)研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(1):121-124.

        [4]張璐璐.Linux內(nèi)核實(shí)時(shí)性的分析和研究[J].硅谷,2012(22):97-98.

        [5]甘玲,劉柄宏.基于ADEOS的RTAI/Linux的研究及其實(shí)時(shí)性測(cè)試[J].計(jì)算機(jī)應(yīng)用與軟件,2010,27(2):163-165.

        [6]馮川放,馬季.基于嵌入式LINUX系統(tǒng)的實(shí)時(shí)進(jìn)程調(diào)度算法的研究[J].計(jì)算機(jī)應(yīng)用與軟件,2014,31(12):278-282.

        The research on the real-time performance test of embedded Linux kernel

        JIE Longmei,XU Youjun,SHAO Guoqiang
        (Computer Science&Information Technology College,Daqing Normal University,Daqing Heilongjiang 163712,China)

        The paper proposes the background and application of the real-time performance of embedded Linux kernel.Time delay from one process to another and interrupt delay are two main factors relating to real-time performance test.The former one includes two solutions:one is to test the time delay from father process to son process or on the contrary,another is testing the time delay between contexts by Lmbench tool;the latter one is implemented by testing the interrupt delay.The solution design,solution implementation,test result and analysis for the three test experiments are described individually.After that,several important solutions based on analysis and experiments are pointed out,as well as the two improvement solution for real-time performance.

        embedded Linux;real-time performance;process scheduling delay;interrupt latency

        TP393.02

        A

        2095-2163(2016)03-0105-03

        2016-05-17

        黑龍江省教育廳科學(xué)技術(shù)研究項(xiàng)目(12533002);大慶師范學(xué)院科學(xué)研究基金項(xiàng)目(12ZR08)。作者簡(jiǎn)介:介龍梅(1981-),女,碩士,講師,主要研究方向:人工智能、嵌入式、3G通信。

        猜你喜歡
        進(jìn)程嵌入式
        債券市場(chǎng)對(duì)外開(kāi)放的進(jìn)程與展望
        TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
        電子制作(2019年7期)2019-04-25 13:17:14
        嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
        電子制作(2018年18期)2018-11-14 01:48:16
        搭建基于Qt的嵌入式開(kāi)發(fā)平臺(tái)
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        Altera加入嵌入式視覺(jué)聯(lián)盟
        倍福 CX8091嵌入式控制器
        我國(guó)高等教育改革進(jìn)程與反思
        Linux僵死進(jìn)程的產(chǎn)生與避免
        男女平等進(jìn)程中出現(xiàn)的新矛盾和新問(wèn)題
        激情久久黄色免费网站| 欧美日韩国产在线观看免费| 久久人妻av无码中文专区| 日本久久大片中文字幕| 一边做一边说国语对白| 国产自拍视频在线观看免费 | 乱人伦中文字幕成人网站在线| 亚洲国模一区二区三区视频| 视频一区中文字幕在线观看| 久久综合伊人77777麻豆| 久久久久久好爽爽久久| 久久久99精品成人片中文字幕| 亚洲综合色视频在线免费观看| 男女视频在线观看一区| 精品少妇人妻av无码久久| 99热精品国产三级在线观看| 美女福利视频网址导航| 人妻久久久一区二区三区蜜臀| 日日摸日日碰夜夜爽无码| 久久福利青草精品资源| 少妇一区二区三区精选| 色婷婷一区二区三区四区成人网| 无码国产69精品久久久孕妇| 国产真实乱XXXⅩ视频| 国产精品一区二区夜色不卡| 97se亚洲国产综合自在线观看| 亚洲综合一区无码精品| 国产在线白浆一区二区三区在线| 中文字字幕在线中文乱码解| 亚洲色欲色欲www在线观看| 久久99国产伦精品免费| 国内国外日产一区二区| 99久久精品无码一区二区毛片| 国产欧美亚洲精品a| 欧美人与动牲交片免费播放| 国产精品综合一区久久| 在线成人一区二区| 精品国产高清一区二区广区| av高清视频在线麻豆免费观看| 国产午夜片无码区在线播放 | 一本久道久久综合五月丁香|