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

        ?

        Linux實時搶占補丁研究及實時性能測試

        2014-06-07 05:53:21張曉龍郭銳鋒陶耀東
        計算機工程 2014年10期
        關(guān)鍵詞:補丁內(nèi)核線程

        張曉龍,郭銳鋒,陶耀東,劉 生

        (1.中國科學(xué)院沈陽計算技術(shù)研究所,沈陽110004;2.中國科學(xué)院大學(xué),北京100039)

        Linux實時搶占補丁研究及實時性能測試

        張曉龍1,2,郭銳鋒1,陶耀東1,劉 生1,2

        (1.中國科學(xué)院沈陽計算技術(shù)研究所,沈陽110004;2.中國科學(xué)院大學(xué),北京100039)

        準(zhǔn)確的量化數(shù)據(jù)可作為評測及選擇實時Linux系統(tǒng)的參考依據(jù)。研究實時Linux系統(tǒng)中實時搶占補丁的關(guān)鍵特性,提出一種代碼插樁的實時性能評測方法。在增加實時搶占補丁的Linux操作系統(tǒng)上加載運行測試程序,利用測試程序關(guān)鍵位置的代碼探測段來獲取運行系統(tǒng)中的重要信息,以完成實時性能的評測。對基于數(shù)控平臺上該實時系統(tǒng)的中斷響應(yīng)時間和上下文切換時間等評測指標(biāo)進行測試,結(jié)果表明,與標(biāo)準(zhǔn)Linux系統(tǒng)的評測指標(biāo)相比,該系統(tǒng)的中斷響應(yīng)時間和上下文切換時間分別約減少10%和99%,達(dá)到了硬實時系統(tǒng)的要求,滿足數(shù)控應(yīng)用的實時需求。

        實時Linux系統(tǒng);實時搶占;實時性能;硬實時系統(tǒng);代碼插樁;數(shù)控平臺

        1 概述

        實時操作系統(tǒng)作為可以在有限確定的時間內(nèi)對異步輸入進行處理并輸出的系統(tǒng)[1],近年來得到了廣泛關(guān)注和多樣性發(fā)展,并應(yīng)用于工業(yè)自動化、數(shù)字控制、航空等領(lǐng)域。實時Linux系統(tǒng)[2]是實時操作系統(tǒng)的一個重要發(fā)展方向,它具有開放源碼、可自行修改內(nèi)核適應(yīng)應(yīng)用需求等特點。本文中增加實時搶占補丁的Linux系統(tǒng),區(qū)別于 RTLinux,RTAI(Real-Time Application Interface)等眾多實時 Linux系統(tǒng),通過修改 Linux內(nèi)核本身讓其支持完全可搶占、可移植性增強,并具有強大的社區(qū)支持[3]。本文對該搶占補丁進行了研究和分析,在此基礎(chǔ)上提出簡單有效的測試方法來測試增加該補丁 Linux系統(tǒng)的實時性能[4]。在實際應(yīng)用特別是數(shù)控領(lǐng)域應(yīng)用中,可為選擇該系統(tǒng)提供有價值的參考數(shù)據(jù)。

        2 實時搶占補丁研究

        2.1 實時補丁現(xiàn)狀

        實時搶占補丁(Realtime Preemption Patch, Preempt RT)是由IngoMolnar和Thomas Gleixner更新維護,和其他在微內(nèi)核中通過增加實時搶占方法所不同,它在原有的低延遲補丁和搶占補丁的基礎(chǔ)上,加入中斷線程化、高精度時鐘、優(yōu)先級繼承等新特性,將Linux內(nèi)核修改成完全可搶占式內(nèi)核,使其具有硬實時能力[5]。

        目前,Preempt RT還沒有完全加入到標(biāo)準(zhǔn)Linux內(nèi)核中,但部分搶占支持、高精度時鐘、中斷線程化等已經(jīng)加入到最近的內(nèi)核版本中,如Linux 2.6.23內(nèi)核中加入Completely Fair Scheduler(CFS)、2.6.24版本中加入高精度時鐘以及2.6.30版本加入中斷線程化特性等。對完全可搶占的支持目前還沒有加入內(nèi)核中,但增加Preempt RT后可實現(xiàn)。因此,隨著實時特性不斷融入Linux內(nèi)核中,其實時性會越來越強[6]。

        2.2 實時搶占補丁分析

        本文針對Linux2.6.33內(nèi)核實時搶占補丁中一些關(guān)鍵的實時特性進行分析。其中包括新型鎖機制、中斷線程化、優(yōu)先級繼承、高精度時鐘。

        (1)新型鎖機制提升內(nèi)核性能

        Preempt RT將大內(nèi)核鎖(BKL)和自旋鎖(spinlock)全部轉(zhuǎn)化為優(yōu)先級繼承的互斥鎖(mutex),持有鎖的線程可以被搶占,減少了內(nèi)核調(diào)度延遲,避免了不必要的時間開銷;同時該補丁實現(xiàn)了可搶占的RCU(Read-Copy Update)鎖和串行化讀寫鎖,提高了內(nèi)核性能。

        (2)中斷線程化

        中斷線程化是實時改造Linux的一個重要步驟。在Linux標(biāo)準(zhǔn)內(nèi)核中,中斷是最高優(yōu)先級的執(zhí)行單元,只要有中斷事件,系統(tǒng)將立即響應(yīng),會使中斷非常頻繁,實時任務(wù)很難有機會運行。為解決這個問題,引入了中斷線程化,中斷將作為內(nèi)核線程運行而且被賦予不同的實時優(yōu)先級,若實時任務(wù)比到來的中斷線程擁有更高的優(yōu)先級,實時任務(wù)不會被中斷線程中斷。中斷線程化保證了實時性,減小實時搶占延遲。

        (3)優(yōu)先級繼承

        自旋鎖被互斥鎖取代后會產(chǎn)生優(yōu)先級逆轉(zhuǎn)(rriority inversion)現(xiàn)象,即優(yōu)先級高的進程由于優(yōu)先級低的進程保持了競爭資源被迫等待,而讓中間優(yōu)先級的進程運行。優(yōu)先級逆轉(zhuǎn)將導(dǎo)致高優(yōu)先級進程的搶占延遲增大,不能保證實時性。為避免不可預(yù)期的優(yōu)先級反轉(zhuǎn)問題,Preempt RT實現(xiàn)了優(yōu)先級繼承協(xié)議,即自旋鎖的保持者將繼承高優(yōu)先級的競爭者進程的優(yōu)先級,從而能先于中間優(yōu)先級進程運行,盡可能快地釋放鎖,這樣高優(yōu)先級進程就能很快得到競爭的自旋鎖,使搶占延遲更短[7]。

        (4)高精度時鐘

        Linux標(biāo)準(zhǔn)內(nèi)核通過基于Jiffies周期性時鐘滴答計時,而且高精度的時間獲取需要依賴特定的平臺,為調(diào)度短周期任務(wù),需要設(shè)置時鐘頻率為更小值,意味著時鐘中斷更加頻繁,會造成大量時鐘中斷處理和資源浪費。為了解決這個問題,實時搶占內(nèi)核的時鐘系統(tǒng)重新設(shè)計,實現(xiàn)了高精度定時器[8]。時鐘精度不再依賴 jiffies,使 POSIX定時器和nanosleep精度由具體硬件提供的精度決定,從而系統(tǒng)調(diào)用gettimeofday能夠獲得精確的時間值。

        3 實時性能測試方法

        3.1 測試方法原理

        在進行實時性能的指標(biāo)評測時,一般有基于硬件儀器測試[9]和軟件測試[10]2種方法。基于硬件儀器的方法通常利用示波器測試外部中斷響應(yīng)時間,但是需要昂貴的儀器以及需要設(shè)計軟、硬件環(huán)境,而且測試結(jié)果會受到儀器精度的影響。軟件測試是通過系統(tǒng)調(diào)用讀取系統(tǒng)時鐘所提供的時間,記錄內(nèi)核中任意兩處代碼間的執(zhí)行時間。相比前者,對硬件要求小,而且測試方法易于設(shè)計,可跨多平臺使用。

        通過對Linux內(nèi)核以及實時搶占補丁的研究,本文提出了代碼插樁的軟件測試方法,如圖1所示,其原理是設(shè)計測試程序,將它們加載到待測的實時系統(tǒng)上,并在測試程序的關(guān)鍵位置插入代碼探測段來獲得系統(tǒng)信息,包括程序運行信息、系統(tǒng)時間以及系統(tǒng)結(jié)構(gòu)信息。

        圖1 測試方法原理

        由于增加Preempt RT的內(nèi)核實現(xiàn)了高精度定時器,使得系統(tǒng)調(diào)用能夠獲得精確時間值,因此在關(guān)鍵位置的探測代碼,可以準(zhǔn)確收集到其實時性能的時間信息。

        3.2 測試方法實現(xiàn)

        一個實時操作系統(tǒng)的實時性能的主要評測標(biāo)準(zhǔn)包括系統(tǒng)中斷響應(yīng)時間、中斷延遲時間、上下文切換時間、調(diào)度延遲時間等。針對實時系統(tǒng)的實時性能應(yīng)具有可預(yù)測性和低延時的特點,本文認(rèn)為測試中斷響應(yīng)時間和上下文切換時間對于實時性能的評測具有較高的參考價值。

        (1)中斷響應(yīng)時間

        中斷響應(yīng)時間是指從中斷觸發(fā)到開始執(zhí)行中斷服務(wù)程序(Interrupt Service Routines,ISR)的第一條指令之間的時間。如圖2所示,中斷響應(yīng)時間包括中斷仲裁時間T1,系統(tǒng)關(guān)中斷和結(jié)束當(dāng)前指令時間T2、處理器延遲時間T3以及系統(tǒng)處理時間T4,因此,需要測試的中斷響應(yīng)時間為Tir=T1+T2+T3+T4。

        圖2 中斷響應(yīng)時間劃分

        首先,編寫一個并口的中斷服務(wù)程序,將其綁定至對應(yīng)的中斷號IRQ7。在中斷服務(wù)程序中加入代碼探測段,系統(tǒng)調(diào)用do_gettimeofday用于獲取當(dāng)前系統(tǒng)時間,使用outb命令對并口進行操作。在實時主線程中,同樣加入代碼探測段,并利用并口引腳頻繁產(chǎn)生中斷信號,記錄中斷發(fā)生時間TIME_START,在中斷服務(wù)程序中記錄執(zhí)行第一條指令的時間TIME_END,因此,中斷響應(yīng)時間RESPONSE_TIME= TIME_END-TIME_START。

        中斷響應(yīng)延遲時間測試程序如下:

        上下文切換時間是指從當(dāng)前運行任務(wù)的最后一條指令執(zhí)行完畢開始,到下一個就緒任務(wù)的首條指令開始執(zhí)行之間的時間。如圖3所示,當(dāng)一個正在進行的任務(wù)TASK1需要切換到另一個任務(wù)TASK2時,任務(wù)自身將被掛起,而新任務(wù)準(zhǔn)備就緒開始執(zhí)行,其中包括一系列的操作,保存被切換任務(wù)的狀態(tài)、查找就緒隊列以及新任務(wù)載入等,這整個過程的時間開銷就是上下文的切換時間Tcs。

        圖3 上下文切換時間Tcs

        Linux內(nèi)核中上下文切換過程是通過調(diào)用context_switch()函數(shù)完成的,因此,利用函數(shù)的特點設(shè)計2個實時任務(wù)TASK1和TASK2,并且在每個實時任務(wù)中插入代碼探測段,即代碼插樁。通過頻繁切換2個實時任務(wù)來測試上下文切換時間Tcs,其中clock_gettime表示獲得當(dāng)前系統(tǒng)時間的函數(shù),usleep函數(shù)能使調(diào)度器產(chǎn)生調(diào)度。為了使調(diào)度器能顧頻繁的調(diào)度切換這2個實時任務(wù),需要設(shè)置2個實時任務(wù)的優(yōu)先級別為最高,并且采用SCHED_RR的調(diào)度策略。

        上下文切換時間測試程序如下:

        4 實時性能測試結(jié)果

        通過代碼插樁的測試方法,對中斷響應(yīng)時間和上下文切換時間重要指標(biāo)進行測試。測試硬件平臺為藍(lán)天數(shù)控系統(tǒng),硬件參數(shù)為Pentium(R)E2200 CPU處理器,頻率為2 GHz,1 GB內(nèi)存。Linux內(nèi)核是官方linux2.6.33.7版本,Preempt RT為 patch-2.6.33.7-rt30。配置內(nèi)核時選擇 Complete Preemption(Real-Time)。

        4.1 中斷響應(yīng)時間測試結(jié)果

        實驗測試了5 000次中斷響應(yīng)時間,并根據(jù)測試結(jié)果繪制標(biāo)準(zhǔn) Linux系統(tǒng)和增加 Preempt RT的Linux系統(tǒng)分別在空負(fù)載和滿負(fù)載的情況下中斷響應(yīng)時間的測試對比圖,如圖4、圖5所示。

        圖4 系統(tǒng)空負(fù)載情況下的中斷響應(yīng)時間

        圖5 系統(tǒng)滿負(fù)載情況下的中斷響應(yīng)時間

        結(jié)果顯示,在空負(fù)載和滿負(fù)載的情況下,標(biāo)準(zhǔn)Linux系統(tǒng)的實時性弱于增加Preempt RT的Linux系統(tǒng)。前者的中斷響應(yīng)時間在100 μs,而后者在2種不同的負(fù)載下,中斷響應(yīng)延遲最大值由51 μs增加到90 μs,沒有超過100 μs,平均值穩(wěn)定在13 μs之下。綜上所述,增加Preempt RT的Linux系統(tǒng)的中斷響應(yīng)時間指標(biāo)均小于100 μs,處于微秒數(shù)量級,較標(biāo)準(zhǔn)Linux系統(tǒng)減少了約10%,并且達(dá)到了硬實時的要求。

        4.2 上下文切換時間測試結(jié)果

        通過2個實時任務(wù)進行150 000次的任務(wù)切換,根據(jù)結(jié)果繪制上下文切換時間的測試對比圖,如圖6、圖7所示。

        圖6 系統(tǒng)空負(fù)載情況下上下文切換時間示意圖

        圖7 系統(tǒng)滿負(fù)載情況下的上下文切換時間

        結(jié)果顯示,標(biāo)準(zhǔn)Linux系統(tǒng),2種負(fù)載下最大上下文切換時間分別是1 285 μs和2 612 μs,而增加補丁的Linux系統(tǒng)為8.9 μs和9.9 μs,上下文切換時間是毫秒級與微秒級的差別。綜上所述,增加Preempt RT的Linux上下文切換時間小于10 μs,較標(biāo)準(zhǔn)Linux內(nèi)核減少了約99%,并且滿足硬實時的要求。

        5 實時Linux系統(tǒng)性能對比

        為了進一步分析Preempt RT,與其他實時Linux系統(tǒng)橫向?qū)Ρ?綜合分析實時Linux系統(tǒng)之間的性能差異,評估增加Preempt RT的Linux系統(tǒng)是否滿足數(shù)控領(lǐng)域應(yīng)用的需求。

        本文就整合過的指標(biāo)參數(shù),對多種實時Linux系統(tǒng)進行對比測試。選擇對比的測試對象是RTLinux3.0[11]和Xenomai[12-13]。

        表1數(shù)據(jù)顯示,增加Preempt RT的Linux系統(tǒng)在最大中斷響應(yīng)延遲時間上相比 Xenomai高出3.9倍,但是最壞時間沒有超過100 μs,在平均值上3種系統(tǒng)相差不大,但是可以看出RTLinux的性能最好。在上下文切換時間指標(biāo)上,增加Preempt RT的Linux系統(tǒng)最大值為9.9 μs,時間性能比Xenomai好52%,平均值上接近硬實時RTLinux系統(tǒng)的數(shù)值,遠(yuǎn)小于Xenomai的參數(shù)值。

        表1 實時Linux系統(tǒng)實時性能參數(shù)值對比 μs

        綜合2個重要指標(biāo)參數(shù)比較來看,3種實時Linux系統(tǒng)都滿足硬實時系統(tǒng)的指標(biāo)要求。根據(jù)數(shù)控應(yīng)用對RTLinux等實時Linux系統(tǒng)的實時性需求[14],表明增加Preempt RT的Linux系統(tǒng)滿足數(shù)控應(yīng)用的需求,同時進一步證明了該系統(tǒng)具有不錯的硬實時能力。

        6 結(jié)束語

        本文結(jié)合實時搶占補丁的特性和實時系統(tǒng)性能評測的方式,提出了代碼插樁的軟件測試方法,并且對增加Preempt RT的Linux系統(tǒng)進行評測,結(jié)果表明該系統(tǒng)基本到達(dá)了硬實時系統(tǒng)的要求。目前,該測試方法適用于數(shù)控平臺上的一般實時系統(tǒng),下一步將在實驗室現(xiàn)有的藍(lán)天數(shù)控系統(tǒng)上針對具體應(yīng)用系統(tǒng)進行性能評測,并在實際應(yīng)用中進一步優(yōu)化該測試方法。

        [1] Burns A,Wellings A J.Real Time Systems and Their Programming Languages:Ada 95,Real-time Java and Real-time POSIX[M].[S.1.]:Pearson Education, 2001.

        [2] 夏一民,羅 軍,鄧勝蘭.實時 Linux操作系統(tǒng)初探[J].計算機應(yīng)用研究,2001,15(1):45-48.

        [3] 吳章金.Linux實時搶占補丁的研究與實踐[D].蘭州:蘭州大學(xué),2010.

        [4] Koolwal K.Investigating Latency Effects of the Linux Real-time Preemption Patches on AMD’s GEODE LX Platform[C]//Proc.of the 9th Annual Workshop on Operating Systems Platforms for Embedded Real-time Applications.Paris,France:[s.n.],2013:20-30.

        [5] Betz W,Cereia M,BertolottiI C.Experimental Evaluation ofthe Linux RT Patch forReal-time Applications[C]//Proc.ofIEEE Conference on Emerging Technologies&Factory Automation.[S.1.]: IEEE Press,2009:1-4.

        [6] Hagen W.Real-time and Performance Improvements for the 2.6 Linux Kernel[J].Linux Journal,2005,(134): 8-13.

        [7] Heursch A C,Grambow D,Roedel D,et al.Time-critical Tasksin Linux 2.6: Concepts to Increase the Preemptability of the Linux Kernel[EB/OL].(2013-05-10).http://citeseer.nj.nec.com/cs.

        [8] 張 健,劉青昆,王異奇,等.Linux實時化方法的研究與實現(xiàn)[J].計算機工程,2011,37(4):284-286.

        [9] K?ker K,Membarth R,German R.Performance Analyses of Embedded Real-time Operating Systems Using Highprecision Counters[C]//Proc.of the 3rd International Conference on Autonomous Robots and Agents. Wellington,New Zealand:[s.n.],2006:485-490.

        [10] 江建慧,唐智杰.測量嵌入式操作系統(tǒng)實時性能參數(shù)的新方法[J].同濟大學(xué)學(xué)報:自然科學(xué)版,2008,36 (9):1260-1266.

        [11] 趙立業(yè),張 激,游 夏.實時操作系統(tǒng)的性能分析和評估[J].計算機工程,2008,34(8):283-285.

        [12] Marieska M D,Hariyanto P G,Fauzan M F,et al.On Performance of Kernel Based and Embedded Real-time Operating System:Benchmarking and Analysis[C]// Proc.of International Conference on IEEE ICACSIS’11. [S.1.]:IEEE Press,2011:401-406.

        [13] Feuerer P.Benchmark andComparisonofRealtime Solutions Based on Embedded Linux[D].Hochschule, Germany:Hochschule ULM,2007.

        [14] 秦承剛.開放式數(shù)控系統(tǒng)的實時操作系統(tǒng)優(yōu)化技術(shù)研究與應(yīng)用[D].沈陽:中國科學(xué)院沈陽計算技術(shù)研究所,2012.

        編輯 索書志

        Research of Linux Real-time Preemption Patch and Real-time Performance Measure

        ZHANG Xiao-long1,2,GUO Rui-feng1,TAO Yao-dong1,LIU Sheng1,2
        (1.Shenyang Institute of Computing Technology,Chinese Academy of Sciences,Shenyang 110004,China;
        2.University of Chinese Academy of Sciences,Beijing 100039,China)

        To obtain accurate quantitative data as a reference for evaluating and selecting real-time Linux system,this paper researches several more critical characteristics of the real-time preemption patch of real-time Linux operating system in-depth,and proposes a method of program instrumentation for real-time performance evaluation.In the evaluating process,it loads and runs the test program on the Linux operating system with Preempt-RT patch,gets the important system information data by testing the key position of program with code probe to evaluate its real-time performance,and does the comparison test of the interrupt response time and context switch time as the most important criteria between Linux system with Preempt-RT patch and standard Linux system based on the numerical control system platform. Experimental result shows the interrupt response time on the patch system decreases by about 10% compared with standard Linux system,while context switch time decreases by about 99%,which satisfies the hard real-time system and meets the real-time demand of numerical control applications.

        real-time Linux system;real-time preemption;real-time performance;hard real-time system;code instrumentation;numerical control platform

        1000-3428(2014)10-0304-04

        A

        TP391

        10.3969/j.issn.1000-3428.2014.10.056

        “核高基”重大專項“國產(chǎn)軟硬件在數(shù)控/工業(yè)裝置中的應(yīng)用與推廣”(2012ZX01029-001-002)。

        張曉龍(1989-),男,碩士研究生,主研方向:實時系統(tǒng);郭銳鋒,研究員、博士生導(dǎo)師;陶耀東,副研究員;劉 生,博士。

        2013-07-12

        2013-09-28E-mail:wdzxl198@163.com

        中文引用格式:張曉龍,郭銳鋒,陶耀東,等.Linux實時搶占補丁的研究及實時性能測試[J].計算機工程,2014, 40(10):304-307,313.

        英文引用格式:Zhang Xiaolong,Guo Ruifeng,Tao Yaodong,et al.Research of Linux Real-time Preemption Patch and Real-time Performance Measure[J].Computer Engineering,2014,40(10):304-307,313.

        猜你喜歡
        補丁內(nèi)核線程
        萬物皆可IP的時代,我們當(dāng)夯實的IP內(nèi)核是什么?
        強化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
        基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計
        健胃補丁
        學(xué)與玩(2018年5期)2019-01-21 02:13:06
        Linux內(nèi)核mmap保護機制研究
        繡朵花兒當(dāng)補丁
        文苑(2018年18期)2018-11-08 11:12:30
        補丁奶奶
        幼兒畫刊(2018年7期)2018-07-24 08:25:56
        淺談linux多線程協(xié)作
        大病醫(yī)保期待政策“補丁”
        Linux線程實現(xiàn)技術(shù)研究
        乱子真实露脸刺激对白| 中文字幕日韩人妻少妇毛片| 国产精品99精品久久免费| 国产伦精品一区二区三区免费| 国产精品理人伦国色天香一区二区| 国产亚洲精品aaaa片app| 无码人妻视频一区二区三区99久久| 丰满少妇高潮在线观看| 人妻精品人妻一区二区三区四区| 狠狠噜狠狠狠狠丁香五月| 初女破初的视频| 亚洲精品毛片一区二区三区| 97色综合| 国产精品高清国产三级国产av | 成年女人免费视频播放体验区| 99精品国产一区二区三区a片| 欧美伊人网| 午夜黄色一区二区不卡| 国产精品女主播在线播放| 国产电影无码午夜在线播放| 免费男人下部进女人下部视频 | 中文字幕中文字幕人妻黑丝| 色综合久久中文综合网亚洲| 国产日韩精品欧美一区喷水| 亚洲丁香五月激情综合| 日韩中文字幕一区二区高清| 国产成人福利av一区二区三区| 国产精品亚洲精品国产| 黑森林福利视频导航| 秋霞影院亚洲国产精品| 亚洲一区二区女优视频| 校园春色日韩高清一区二区| 精品亚洲成a人在线观看| 国产永久免费高清在线| 中文在线а√天堂官网| 亚洲日本人妻中文字幕| 日韩一二三四区在线观看| 亚洲香蕉av一区二区三区| 97se亚洲国产综合在线| 放荡的闷骚娇妻h| 亚洲一码二码在线观看|