陳磊,蔡銘,史昆
1.浙江大學(xué)醫(yī)學(xué)院附屬第一醫(yī)院信息中心,杭州 310003
2.浙江大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,杭州 310027
任務(wù)及中斷負(fù)載下實(shí)時(shí)操作系統(tǒng)性能評(píng)估研究
陳磊1,蔡銘2,史昆2
1.浙江大學(xué)醫(yī)學(xué)院附屬第一醫(yī)院信息中心,杭州 310003
2.浙江大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,杭州 310027
針對(duì)現(xiàn)有實(shí)時(shí)操作系統(tǒng)Benchmark在任務(wù)及中斷混合負(fù)載下的評(píng)估“失真”問(wèn)題,從RTOS內(nèi)核中斷響應(yīng)模型分析入手,提出一種面向任務(wù)及中斷混合負(fù)載環(huán)境下的內(nèi)核性能評(píng)估方法,并以Rhealstone和ThreadMetric兩種典型的Benchmark為基礎(chǔ)實(shí)驗(yàn)平臺(tái)進(jìn)行改造與修正,通過(guò)對(duì)VxWorks、RTEMS、uC/OSII等系統(tǒng)的性能評(píng)測(cè),實(shí)驗(yàn)結(jié)果表明,該評(píng)估方法對(duì)任務(wù)及中斷混合負(fù)載下的RTOS內(nèi)核性能評(píng)估更具合理性。
實(shí)時(shí)操作 系統(tǒng);中斷;任務(wù);性能評(píng)估;評(píng)估套件
實(shí)時(shí)操作系統(tǒng)(Real Time Operating System,RTOS)是指能在確定的時(shí)間內(nèi)對(duì)外部事件做出響應(yīng)并執(zhí)行功能的一類操作系統(tǒng)。RTOS作為航天領(lǐng)域基礎(chǔ)軟件之一,對(duì)于星、彈、箭等強(qiáng)實(shí)時(shí)、高可靠應(yīng)用具有重要的支撐作用。在國(guó)外,RTOS已經(jīng)被廣泛應(yīng)用于星彈箭載及地面測(cè)控計(jì)算機(jī),例如,NASA的火星探路者[1]、坦普爾1號(hào)彗星“深度撞擊”[2]等,分別采用了VxWorks、ThreadX等實(shí)時(shí)操作系統(tǒng)。在國(guó)內(nèi),小衛(wèi)星“實(shí)踐五號(hào)”[3]、“探索一號(hào)”[4]中也已使用pSOS實(shí)時(shí)操作系統(tǒng)。
隨著我國(guó)航天嵌入式軟件的系統(tǒng)規(guī)模及功能復(fù)雜度持續(xù)遞增,自研或選用RTOS產(chǎn)品作為嵌入式軟件支撐平臺(tái)將成為必然趨勢(shì)。現(xiàn)有國(guó)外的RTOS商用產(chǎn)品及開源系統(tǒng)種類豐富,如VxWorks、Integrity、QNX、RTEMS、ThreadX、uC-OS/II等,同時(shí),“核高基”重大專項(xiàng)也正在大力支持我國(guó)自主研制RTOS產(chǎn)品。
調(diào)查結(jié)果表明,實(shí)時(shí)性能是用戶選用RTOS系統(tǒng)的首要關(guān)注特性[5]。因而,如何快捷、準(zhǔn)確地對(duì)RTOS實(shí)時(shí)性能,尤其是內(nèi)核性能指標(biāo)進(jìn)行有效評(píng)估,對(duì)產(chǎn)品選型以及自主研制均起到極為重要的作用[6]。
RTOS內(nèi)核性能評(píng)價(jià)指標(biāo)主要可分為兩類,包括:中斷性能指標(biāo)與任務(wù)性能指標(biāo)。其中,中斷相關(guān)性能指標(biāo),包括:最大關(guān)中斷時(shí)間、外部中斷響應(yīng)時(shí)間、軟中斷響應(yīng)時(shí)間等;多任務(wù)相關(guān)性能指標(biāo),包括:任務(wù)切換時(shí)間、任務(wù)搶占時(shí)間、內(nèi)存分配時(shí)間、消息傳遞時(shí)間、信號(hào)量混洗時(shí)間、死鎖解鎖時(shí)間等。目前主要采用各類性能評(píng)估套件(Benchmark)對(duì)RTOS內(nèi)核性能進(jìn)行評(píng)測(cè),可以分為單項(xiàng)指標(biāo)測(cè)試和綜合性能測(cè)試兩大類型。較為知名的RTOS Benchmark系統(tǒng)包括:
(1)Dhrystone[7]屬于綜合評(píng)估套件,用于評(píng)估整數(shù)計(jì)算性能。該評(píng)估套件選擇了一組有代表性的操作,這些操作在高級(jí)語(yǔ)言里面經(jīng)常用到,包括賦值、控制和函數(shù)調(diào)用等。
(2)Rhealstone[8]提供了一個(gè)RTOS性能測(cè)試Benchmark,可以對(duì)RTOS的任務(wù)切換時(shí)間、任務(wù)搶占時(shí)間、中斷延遲時(shí)間等6個(gè)性能指標(biāo)進(jìn)行測(cè)試,通過(guò)加權(quán)計(jì)算獲得Rhealstone值,Rhealstone值越大,表明RTOS的性能越好。
(3)Hartstone[9]是美國(guó)卡內(nèi)基梅隆大學(xué)研制的一個(gè)實(shí)時(shí)系統(tǒng)的Benchmark。它從任務(wù)計(jì)算負(fù)載、任務(wù)執(zhí)行周期、時(shí)間期限要求出發(fā),定義了5個(gè)類型的測(cè)試序列,通過(guò)不斷增壓的方法對(duì)系統(tǒng)進(jìn)行測(cè)試,獲取RTOS的性能極限值參數(shù),以此作為對(duì)比系統(tǒng)實(shí)時(shí)性能的依據(jù)。
(4)ThreadMetric[10]是美國(guó)Express Logic公司研制的一個(gè)RTOS性能測(cè)試Benchmark,其中包含1個(gè)基準(zhǔn)測(cè)試和6個(gè)性能對(duì)比測(cè)試(包括搶占式任務(wù)調(diào)度、中斷處理、中斷搶占任務(wù)、任務(wù)同步、內(nèi)存分配等測(cè)試),通過(guò)計(jì)算一定時(shí)間周期內(nèi)完成某一事務(wù)的次數(shù),作為評(píng)估RTOS性能的依據(jù)。
(5)M iBench[11]是美國(guó)密歇根大學(xué)研制的一個(gè)嵌入式系統(tǒng)Benchmark,針對(duì)汽車電子、工業(yè)控制、電信系統(tǒng)、網(wǎng)絡(luò)通訊等6大嵌入式應(yīng)用,提供了35個(gè)典型應(yīng)用軟件,可用于測(cè)試系統(tǒng)實(shí)時(shí)性能。
通過(guò)分析,可以發(fā)現(xiàn)上述RTOS Benchmark仍存在如下局限性:
(1)系統(tǒng)評(píng)估的應(yīng)用負(fù)載環(huán)境構(gòu)造較為單一。RTOS的運(yùn)行環(huán)境復(fù)雜多樣,有任務(wù)、中斷、I/O等應(yīng)用負(fù)載[12],且相互間耦合、嵌套。而現(xiàn)有Benchmark大都僅提供單一的應(yīng)用負(fù)載環(huán)境,且任務(wù)之間交互設(shè)計(jì)較為簡(jiǎn)單,對(duì)混合負(fù)載情況下的性能評(píng)測(cè)能力不足,無(wú)法反映RTOS在實(shí)際工況下的執(zhí)行性能。
(2)系統(tǒng)綜合性能計(jì)算方法不甚合理。現(xiàn)有Benchmark大都采取先獨(dú)立測(cè)試各單項(xiàng)性能指標(biāo),而后進(jìn)行加權(quán)組合的方法計(jì)算系統(tǒng)綜合性能,如Rhealstone值計(jì)算。該方法要求各項(xiàng)性能指標(biāo)相對(duì)獨(dú)立,無(wú)關(guān)聯(lián)約束。而在實(shí)際運(yùn)行環(huán)境中,中斷性能、任務(wù)性能等指標(biāo)彼此依賴、相互影響,因而僅采用簡(jiǎn)單的加權(quán)計(jì)算方法評(píng)估系統(tǒng)綜合性能,理論依據(jù)不足。
基于上述分析,本文針對(duì)現(xiàn)有Benchmark在任務(wù)及中斷混合負(fù)載環(huán)境下性能評(píng)測(cè)的局限性,從分析RTOS內(nèi)核中斷響應(yīng)模型入手,提出一種在混合負(fù)載工況下有效評(píng)價(jià)內(nèi)核性能的方法。
本文以Rhealstone和ThreadMetric兩種典型的Benchmark為基礎(chǔ)實(shí)驗(yàn)平臺(tái)進(jìn)行修正與優(yōu)化,通過(guò)對(duì)VxWorks、RTEMS、uC/OSII等系統(tǒng)在任務(wù)及中斷混合負(fù)載環(huán)境下的性能評(píng)估實(shí)驗(yàn),結(jié)果表明,該方法可有效改善現(xiàn)有Benchmark對(duì)RTOS內(nèi)核性能評(píng)估“失真”問(wèn)題。
首先,構(gòu)建一個(gè)中斷負(fù)載環(huán)境,實(shí)測(cè)并分析RTOS內(nèi)核在中斷壓力不斷提升的情況下,中斷響應(yīng)失效次數(shù)的變化規(guī)律,以此為構(gòu)建RTOS內(nèi)核的中斷響應(yīng)模型提供依據(jù)。
為了測(cè)試RTOS的中斷響應(yīng)失效指標(biāo),以周期性中斷事件為負(fù)載,并假設(shè)應(yīng)用程序運(yùn)行期間不關(guān)閉中斷,即應(yīng)用程序不干擾內(nèi)核的中斷響應(yīng)能力,可定義如下的中斷事件接受函數(shù):
中斷事件接受函數(shù)是一個(gè)二值函數(shù),其中,T為中斷的發(fā)生周期,以微秒為單位。P為容忍度,表示系統(tǒng)能夠容忍中斷被延時(shí)響應(yīng)的程度。對(duì)于周期性中斷,超過(guò)周期T后的響應(yīng)必定失效,因而,P介于0與1之間。ti為中斷響應(yīng)延遲時(shí)間,即中斷響應(yīng)時(shí)間與中斷發(fā)生時(shí)間的間隔。
中斷事件接受函數(shù)的意義如下:每隔T時(shí)間產(chǎn)生一次中斷,給定一個(gè)容忍區(qū)間T×P,在周期T時(shí)刻內(nèi)響應(yīng)中斷,且小于容忍區(qū)間,則認(rèn)為是一次有效的中斷響應(yīng),否則認(rèn)為該周期的中斷響應(yīng)失效。
對(duì)一個(gè)時(shí)間段內(nèi)的中斷失效次數(shù)定義如下:
上述兩者差值,即中斷失效次數(shù)Failsys,反映了一個(gè)時(shí)間段內(nèi)RTOS丟失的中斷次數(shù)。
基于上述定義,設(shè)計(jì)了一組中斷負(fù)載實(shí)驗(yàn),通過(guò)不斷提高中斷頻率,即增加中斷負(fù)載情況下,觀察uC/ OSII0.52、uC/OSII2.80、RTEMS4.7.1、VxWorks5.4四個(gè)RTOS系統(tǒng)的Failsys指標(biāo)變化情況。中斷響應(yīng)性能好的RTOS,F(xiàn)ailsys指標(biāo)上升趨勢(shì)應(yīng)該較為平緩,即丟失的中斷響應(yīng)少,而中斷響應(yīng)性能弱的RTOS則相反。
實(shí)驗(yàn)結(jié)果如圖1所示,數(shù)據(jù)表明:
(1)各個(gè)RTOS均存在中斷臨界點(diǎn)或拐點(diǎn),即到達(dá)一定的中斷頻率后,中斷響應(yīng)丟失數(shù)量顯著上升。
圖1 四種RTOS在不同中斷頻率下的失效示意圖
(2)四個(gè)RTOS的Failsys指標(biāo)變化趨勢(shì)具有差異性,表現(xiàn)出對(duì)中斷負(fù)載不同的敏感程度,其中,VxWorks5.4的變化趨勢(shì)最為平緩,uC/OSII0.52的變化最為劇烈,uC/OSII2.80、RTEMS4.7.1則介于上述兩者之間。
通過(guò)上述實(shí)驗(yàn)可知,不同RTOS的中斷響應(yīng)能力存在較大的差異性,其原因在于RTOS內(nèi)核采用了不同的中斷響應(yīng)處理策略,從而造成了各異的中斷響應(yīng)行為,有待建立內(nèi)核中斷響應(yīng)模型進(jìn)行分析。
本章對(duì)參與上述實(shí)驗(yàn)的RTOS內(nèi)核進(jìn)行代碼分析,研究其中斷響應(yīng)行為,建立RTOS內(nèi)核的典型中斷響應(yīng)模型,并以此作為任務(wù)及中斷混合負(fù)載環(huán)境下,對(duì)內(nèi)核性能評(píng)測(cè)及Benchmark修正的依據(jù)。
建立中斷響應(yīng)模型的思路為:對(duì)RTOS內(nèi)核中系統(tǒng)調(diào)用代碼進(jìn)行靜態(tài)分析,提取內(nèi)核對(duì)中斷的保護(hù)及響應(yīng)策略,進(jìn)而總結(jié)形成中斷響應(yīng)模型。
通過(guò)對(duì)系統(tǒng)調(diào)用代碼的分析,可以有助于建立中斷響應(yīng)模型,其依據(jù)如下:
系統(tǒng)調(diào)用是內(nèi)核提供應(yīng)用服務(wù)的載體,運(yùn)行于內(nèi)核狀態(tài),對(duì)內(nèi)核數(shù)據(jù)結(jié)構(gòu)進(jìn)行大量的操作。為了防止外部中斷對(duì)內(nèi)核數(shù)據(jù)造成的潛在破壞,在系統(tǒng)調(diào)用中均需采取一定的互斥與保護(hù)手段,不同的中斷保護(hù)策略及中斷響應(yīng)機(jī)制,是影響RTOS中斷響應(yīng)能力的決定因素。因而,對(duì)系統(tǒng)調(diào)用代碼進(jìn)行分析,是判斷和掌握RTOS中斷響應(yīng)行為的有效途徑。
以中斷負(fù)載實(shí)驗(yàn)中,uC/OSII0.52、RTEMS4.7.1和VxWorks5.4三個(gè)典型系統(tǒng)實(shí)現(xiàn)“任務(wù)恢復(fù)”這一相同系統(tǒng)調(diào)用的偽代碼為例,如圖2所示,可以看到對(duì)中斷的響應(yīng)處理采取了不同的策略,歸納為如下三類典型的RTOS內(nèi)核中斷響應(yīng)模型:
(1)巨型內(nèi)核鎖模型:在uC/OSII0.52的系統(tǒng)調(diào)用實(shí)現(xiàn)中,采用全程關(guān)閉中斷方式完成內(nèi)核與中斷的互斥保護(hù),處理過(guò)程可分為:關(guān)閉中斷、系統(tǒng)調(diào)用處理、開啟中斷,共三個(gè)步驟。該模型的優(yōu)點(diǎn)是實(shí)現(xiàn)方法簡(jiǎn)單易行,但由于在系統(tǒng)調(diào)用處理中全程關(guān)閉中斷,互斥粒度大,中斷關(guān)閉時(shí)間長(zhǎng)。因而在中斷負(fù)載實(shí)驗(yàn)中,隨著中斷頻率上升,中斷響應(yīng)失效次數(shù)變化最為顯著。
(2)內(nèi)核搶占點(diǎn)模型:在RTEMS4.7.1的系統(tǒng)調(diào)用實(shí)現(xiàn)中,將系統(tǒng)調(diào)用處理分解為幾個(gè)階段實(shí)現(xiàn),在各部分的銜接處,以“內(nèi)核搶占點(diǎn)”的方式響應(yīng)中斷,減小了內(nèi)核與中斷的互斥粒度,優(yōu)化了中斷響應(yīng)時(shí)間。因而在中斷負(fù)載實(shí)驗(yàn)中,隨著中斷頻率上升,具有較優(yōu)的中斷響應(yīng)失效次數(shù)表現(xiàn)。
圖2 三種RTOS的系統(tǒng)調(diào)用對(duì)比分析
(3)基于延遲工作隊(duì)列的內(nèi)核可重入模型:在VxWorks5.4的系統(tǒng)調(diào)用實(shí)現(xiàn)中,采用延遲工作隊(duì)列技術(shù),進(jìn)一步優(yōu)化了內(nèi)核與中斷的互斥機(jī)制,其原理如下:在系統(tǒng)調(diào)用過(guò)程中不關(guān)閉中斷,當(dāng)中斷操作涉及內(nèi)核數(shù)據(jù)時(shí),將該操作加入一個(gè)延遲工作隊(duì)列workQ中,并在退出內(nèi)核操作時(shí)執(zhí)行。采用該方法,僅在加入延遲工作隊(duì)列操作過(guò)程中關(guān)閉中斷,因而關(guān)閉中斷時(shí)間最短,具有最優(yōu)的中斷響應(yīng)性能指標(biāo)。
通過(guò)上述對(duì)RTOS系統(tǒng)調(diào)用代碼的分析可知:uC/ OSII0.52、RTEMS4.7.1和VxWorks5.4三個(gè)系統(tǒng)采用了不同的中斷響應(yīng)處理模型,其中,后兩個(gè)系統(tǒng)分別運(yùn)用內(nèi)核搶占點(diǎn)及延遲工作隊(duì)列優(yōu)化技術(shù),使得內(nèi)核的中斷響應(yīng)能力得到有效提高,該分析結(jié)果與上章的中斷負(fù)載實(shí)驗(yàn)測(cè)試結(jié)果一致。
本章結(jié)合中斷響應(yīng)模型,對(duì)各RTOS性能評(píng)測(cè)指標(biāo)在中斷負(fù)載下的影響進(jìn)行分析,進(jìn)而選取“任務(wù)切換時(shí)間”這一性能指標(biāo),開展Rhealstone和ThreadMetric兩個(gè)典型Benchmark系統(tǒng)在中斷負(fù)載下的性能評(píng)測(cè)及分析工作。
4.1 中斷負(fù)載下中斷響應(yīng)模型分析
基于中斷響應(yīng)模型,對(duì)RTOS內(nèi)核性能評(píng)估中的任務(wù)切換、任務(wù)搶占、同步通信指標(biāo),對(duì)其在中斷負(fù)載下的影響進(jìn)行分析,結(jié)果如表1所示。
由表1可知,巨型內(nèi)核鎖模型對(duì)中斷負(fù)載最不敏感,內(nèi)核搶占點(diǎn)模型、基于延遲工作隊(duì)列的內(nèi)核可重入模型,對(duì)中斷響應(yīng)的靈敏度依次遞增,因而對(duì)內(nèi)核性能指標(biāo)評(píng)測(cè)的影響度也隨之增加。
4.2 中斷負(fù)載下Benchm ark評(píng)測(cè)實(shí)驗(yàn)
在本節(jié)中,以“任務(wù)切換時(shí)間”這一RTOS內(nèi)核性能關(guān)鍵指標(biāo)為例,開展基于性能絕對(duì)值測(cè)試的Rhealstone和基于性能歸一化評(píng)分的ThreadMetric,兩個(gè)典型Benchmark系統(tǒng)在中斷負(fù)載下的測(cè)試及分析,其他性能指標(biāo)的測(cè)試及分析與此相似,不再贅述。
實(shí)驗(yàn)環(huán)境及構(gòu)成說(shuō)明如下:
以u(píng)C/OSII0.52、uC/OSII2.80、RTEMS4.7.1、VxWorks5.4四個(gè)RTOS為測(cè)試對(duì)象,任務(wù)調(diào)度算法均配置為優(yōu)先級(jí)位圖調(diào)度策略。
由信號(hào)發(fā)生器提供給測(cè)試系統(tǒng)一個(gè)周期性的外部中斷激勵(lì),頻率跨度為60 Hz~4 kHz。
應(yīng)用程序運(yùn)行中不關(guān)閉中斷,并選用M iBench測(cè)試套件中提供的工業(yè)控制領(lǐng)域測(cè)試軟件包bitcount、qsort作為工作負(fù)載。
通過(guò)選取若干采樣點(diǎn),可以獲得四個(gè)RTOS在不同中斷頻率下,“任務(wù)切換時(shí)間”性能指標(biāo)的Benchmark評(píng)價(jià)值,測(cè)試結(jié)果如下:
Rhealstone測(cè)試提供了“任務(wù)切換時(shí)間”性能指標(biāo)的絕對(duì)值,如圖3所示,隨著中斷頻率加大,uC/OSII 0.52的任務(wù)切換時(shí)間變化最為平穩(wěn),而VxWorks5.4變化劇烈,表現(xiàn)不穩(wěn)定。
圖3 Rhealstone對(duì)四種RTOS的測(cè)試結(jié)果
與Rhealstone評(píng)估模型不同,ThreadMetric通過(guò)與基準(zhǔn)測(cè)試對(duì)比,獲得性能指標(biāo)評(píng)分,分值越高則性能越好。圖4顯示了在ThreadMetric測(cè)試中,隨著中斷頻率增加,各RTOS的“任務(wù)切換時(shí)間”評(píng)分逐漸提高,uC/ OSII 0.52的評(píng)分增長(zhǎng)較快,VxWorks5.4增加緩慢,在高中斷負(fù)載情況下,前者性能表現(xiàn)明顯優(yōu)于后者。
圖4 ThreadMetric對(duì)四種RTOS的測(cè)試結(jié)果
綜上,兩個(gè)Benchmark的測(cè)試結(jié)果較為一致,即:隨著中斷負(fù)載遞增,uC/OSII 0.52的任務(wù)調(diào)度器表現(xiàn)更為穩(wěn)定、出色,較RTEMS4.7.1、VxWorks5.4任務(wù)調(diào)度器功能優(yōu)。
表1 中斷負(fù)載對(duì)不同中斷響應(yīng)模型RTOS性能指標(biāo)的影響及分析
由前續(xù)分析可知,VxWorks5.4、RTEMS4.7.1采用了中斷響應(yīng)優(yōu)化策略,使得內(nèi)核對(duì)中斷事件更為靈敏,因而隨著中斷負(fù)載加大,對(duì)內(nèi)核性能的評(píng)測(cè)影響也隨之增加。
現(xiàn)有的各類Benchmark測(cè)試,主要基于無(wú)中斷負(fù)載或中斷負(fù)載較輕情況設(shè)計(jì),未考慮加入中斷負(fù)載后,對(duì)內(nèi)核運(yùn)行的干擾及影響,缺乏有效的補(bǔ)償和修正手段,因而,不適用于中斷負(fù)載下的內(nèi)核性能評(píng)價(jià),有失客觀性,甚至失之偏頗。
針對(duì)現(xiàn)有Benchmark在中斷負(fù)載下的性能評(píng)估“失真”問(wèn)題,在本章中,首先從分析Rhealstone和Thread-Metric兩個(gè)Benchmark性能評(píng)測(cè)構(gòu)成原理入手,進(jìn)而對(duì)中斷負(fù)載造成的影響進(jìn)行分析與修正,使其適用于中斷負(fù)載下的內(nèi)核性能評(píng)測(cè)。
需要指出的是,本文僅以“任務(wù)切換時(shí)間”這一指標(biāo)的修正方法為例討論,但是該思想同樣適用于對(duì)其他Benchmark及性能指標(biāo)評(píng)測(cè)的修正。
5.1 Rhealstone分析及優(yōu)化
Rhealstone是一類基于絕對(duì)時(shí)間的測(cè)試套件,通過(guò)多次測(cè)試內(nèi)核的某項(xiàng)活動(dòng)起止時(shí)間并取均值后,形成對(duì)該項(xiàng)性能的評(píng)價(jià)。
Rhealstone共包含對(duì)內(nèi)核的6項(xiàng)性能指標(biāo)評(píng)測(cè),包括:任務(wù)切換時(shí)間、任務(wù)搶占時(shí)間、中斷延遲時(shí)間、信號(hào)量混洗時(shí)間、消息傳輸時(shí)間和死鎖解除時(shí)間。
在中斷負(fù)載下,以“任務(wù)切換時(shí)間”性能指標(biāo)Ttsw為例,Rhealstone的測(cè)試模型如下所示:
其中,Ttsw表示由Rhealstone測(cè)試得到的,用于完成任務(wù)上下文切換所消耗的時(shí)間;Tsch表示內(nèi)核用于高優(yōu)先級(jí)任務(wù)查找及任務(wù)上下文切換時(shí)間;Tint表示由于中斷負(fù)載加入后,系統(tǒng)處理需消耗的額外時(shí)間。
由此可知,Tsch是內(nèi)核用于任務(wù)切換的有效時(shí)間,在無(wú)中斷或輕中斷負(fù)載情況下,Tint可忽略不計(jì),對(duì)Tsch的測(cè)試,可由Ttsw近似獲得。
然而,隨著中斷負(fù)載增加,采用不同的中斷響應(yīng)模型,Tint值差異逐漸顯著,即內(nèi)核與中斷互斥粒度大,則Tint值增加緩慢,反之則迅速遞增。因而,在重中斷負(fù)載情況下,Tint的影響已不可忽略。在圖3的Rhealstone測(cè)試中,uC/OSII 0.52表現(xiàn)穩(wěn)定,而VxWorks5.4變化顯著,可由Tint的變化程度不同來(lái)解釋。
對(duì)Rhealstone測(cè)試的修正方法是:在測(cè)試過(guò)程中累計(jì)內(nèi)核響應(yīng)中斷處理的時(shí)間,在測(cè)試結(jié)果中減去該時(shí)間段,即抵消中斷負(fù)載的影響,使得測(cè)試結(jié)果Ttsw真實(shí)反映任務(wù)切換工作所需的時(shí)間Tsch。
據(jù)此,對(duì)Rhealstone的測(cè)試模型修正如下:
在上述公式中,Tsys表示測(cè)試過(guò)程中內(nèi)核用于響應(yīng)中斷處理所額外耗費(fèi)的時(shí)間。隨著中斷壓力增加,Tsys與Tint變化趨勢(shì)同步,因而可以有效降低中斷對(duì)內(nèi)核的影響,反映真實(shí)的性能測(cè)試結(jié)果。
5.2 ThreadMetric分析及優(yōu)化
ThreadMetric是一類基于歸一化評(píng)分的測(cè)試套件,測(cè)試分為如下兩個(gè)步驟進(jìn)行:
(1)在給定時(shí)間段內(nèi),統(tǒng)計(jì)內(nèi)核完成某項(xiàng)活動(dòng)的數(shù)量S,以及基準(zhǔn)測(cè)試的完成數(shù)量H。
(2)將上述兩個(gè)數(shù)值相除,獲得對(duì)該項(xiàng)內(nèi)核活動(dòng)的性能評(píng)分R,即R=S/H。
采用歸一化評(píng)分方法,通過(guò)引入基準(zhǔn)測(cè)試作為對(duì)系統(tǒng)基礎(chǔ)能力的評(píng)價(jià),可以消除不同硬件平臺(tái)對(duì)測(cè)試的影響,因而使得ThreadMetric測(cè)試具有一定的跨平臺(tái)能力。
以“任務(wù)切換時(shí)間”性能指標(biāo)為例,ThreadMetric的測(cè)試模型如下所示:
其中,R表示由ThreadMetric測(cè)試得到的任務(wù)切換時(shí)間評(píng)分;S表示由ThreadMetric測(cè)試得到的,單位時(shí)間內(nèi)系統(tǒng)完成任務(wù)切換的數(shù)量;Ssys、Susr分別表示在任務(wù)切換測(cè)試中,由RTOS內(nèi)核及應(yīng)用程序完成的工作;H表示由ThreadMetric測(cè)試得到的,單位時(shí)間內(nèi)系統(tǒng)完成基準(zhǔn)測(cè)試的數(shù)量;Hsys、Husr分別表示在基準(zhǔn)測(cè)試中,由RTOS內(nèi)核及應(yīng)用程序完成的工作。
加入中斷負(fù)載后,對(duì)ThreadMetric測(cè)試的影響分析如下:
(1)S和H測(cè)試數(shù)值均不同程度受到中斷負(fù)載影響,數(shù)值逐步減小。
(2)H測(cè)試中,由于沒(méi)有調(diào)用內(nèi)核服務(wù),與Husr值相比,Hsys值很小,可以忽略不計(jì)。
(3)S測(cè)試中,需要內(nèi)核調(diào)度服務(wù),Ssys不可忽略,對(duì)Ssys做進(jìn)一步分解,分離中斷影響因素:
其中,Slock表示在任務(wù)切換測(cè)試中內(nèi)核關(guān)閉中斷服務(wù)工作,該數(shù)值不受中斷負(fù)載影響;Sunlock表示在任務(wù)切換測(cè)試中內(nèi)核開啟中斷服務(wù)工作,該數(shù)值受中斷負(fù)載影響。
令中斷負(fù)載對(duì)系統(tǒng)評(píng)分的影響因子為Δ(0<Δ<1),則ThreadMetric測(cè)試評(píng)分R計(jì)算如下:
對(duì)上述計(jì)算結(jié)果的說(shuō)明如下:
(1)中斷影響因子Δ作用于Sunlock、Susr、Hsys、Husrsys值過(guò)小可忽略不計(jì)。
(2)隨著中斷負(fù)載加大,中斷影響因子Δ不斷增加測(cè)試評(píng)分R值將持續(xù)遞增。
(3)在中斷負(fù)載不斷增加環(huán)境下,RTOS的測(cè)試評(píng)分R值,將與Slock密切相關(guān),即內(nèi)核關(guān)閉中斷服務(wù)過(guò)程越長(zhǎng),R值將越高。
上述結(jié)論可較好地解釋在圖4的ThreadMetric測(cè)試中,隨著中斷負(fù)載加大,四個(gè)RTOS的“任務(wù)切換時(shí)間”性能評(píng)分均逐步提升,在重中斷負(fù)載下,uC/OSII 0.52評(píng)分優(yōu)于VxWorks5.4的現(xiàn)象。
由此可見,ThreadMetric雖然通過(guò)基準(zhǔn)測(cè)試減少硬件平臺(tái)對(duì)性能測(cè)試的影響,卻沒(méi)有排除中斷負(fù)載對(duì)RTOS內(nèi)核的干擾。由評(píng)分R值可以看出,中斷關(guān)閉時(shí)間越長(zhǎng)、中斷響應(yīng)能力越弱的RTOS,在中斷負(fù)載不斷加大的環(huán)境下,反而會(huì)得到更高的評(píng)分,因而以此評(píng)價(jià)內(nèi)核性能將有失客觀性。
對(duì)ThreadMetric測(cè)試的修正方法為:在S測(cè)試中,隨著中斷負(fù)載的加入,對(duì)內(nèi)核響應(yīng)中斷服務(wù)的工作進(jìn)行補(bǔ)償評(píng)分,從而增加RTOS在測(cè)試過(guò)程中所獲得的分值。修改后的評(píng)估模型如下所示:
其中,Sint表示在測(cè)試過(guò)程中,內(nèi)核響應(yīng)中斷服務(wù)所得到的分?jǐn)?shù);Ω是一個(gè)變換因子,用于將中斷服務(wù)得到的分?jǐn)?shù)Sint與任務(wù)切換得到的分?jǐn)?shù)S適配。
5.3 優(yōu)化后的實(shí)驗(yàn)結(jié)果分析
對(duì)Rhealstone和ThreadMetric兩個(gè)Benchmark完成修正后再次對(duì)四個(gè)RTOS進(jìn)行測(cè)試,結(jié)果分別如圖5、圖6所示,說(shuō)明如下:
(1)在Rhealstone測(cè)試中,系統(tǒng)了消除內(nèi)核響應(yīng)中斷處理的時(shí)間,隨著中斷頻率提高,VxWorks5.4的任務(wù)切換時(shí)間變化平緩,體現(xiàn)出比uC/OSII 0.52更為穩(wěn)定的任務(wù)切換能力,因而評(píng)估結(jié)果更優(yōu)。
圖5 修正后的Rhealstone測(cè)試
圖6 修正后的ThreadMetric測(cè)試
(2)在Thread Metric測(cè)試中,系統(tǒng)將中斷處理作為有效分值計(jì)入,隨著中斷負(fù)載提高,VxWorks5.4獲得了更多的評(píng)分增值,而uC/OSII 0.52由于響應(yīng)中斷數(shù)量少,因而獲得補(bǔ)償相對(duì)不足,分值提高速度較慢。
本文從分析RTOS內(nèi)核中斷響應(yīng)模型入手,結(jié)合對(duì)現(xiàn)有Benchmark的實(shí)證分析,發(fā)現(xiàn)目前的Benchmark不適用于中斷負(fù)載情況下的內(nèi)核性能評(píng)測(cè)。針對(duì)這一評(píng)估“失真”問(wèn)題,提出一種中斷及任務(wù)混合負(fù)載下的性能評(píng)估方法,通過(guò)對(duì)Rhealstone和Thread Metric兩個(gè)典型Benchmark的改造和修正,結(jié)合對(duì)VxWorks、RTEMS、uC/OSII等系統(tǒng)的評(píng)測(cè),結(jié)果表明,該評(píng)估方法對(duì)RTOS內(nèi)核性能評(píng)估更具合理性。
目前,該評(píng)估方法僅支持中斷及任務(wù)兩個(gè)負(fù)載維度,后續(xù)將進(jìn)一步增加對(duì)I/O負(fù)載的支持,以期對(duì)RTOS在更真實(shí)的應(yīng)用工況下開展性能評(píng)估。
[1]Stumpf M.Wind river and NASA-embedded development for the extreme demands of space exploration[J]. Dedicated Systems Magazine,2003,28(8):25-27.
[2]A’Hearn M F,Belton M J,Delamere W A,et al.Deep impact:excavating comet Tempel 1[J].Science,2005,310(5746):258-264.
[3]李孝同.“實(shí)踐五號(hào)”衛(wèi)星星務(wù)管理系統(tǒng)[J].中國(guó)空間科學(xué)技術(shù),2001,1(4):30-35.
[4]李香,崔剛,楊孝宗,等.探索一號(hào)小衛(wèi)星星務(wù)計(jì)算機(jī)CPU自檢方法[J].哈爾濱工業(yè)大學(xué)學(xué)報(bào),2001,33(3):273-275.
[5]Anh T N B,Tan S L.Real-time operating systems for small microcontrollers[J].IEEE Micro,2008,29(5):30-45.
[6]Kisacanin B,Nikolic Z.Signal processing:image communication[J].Special Issue on Brakthrough Hardware Architectures,2010,5(25):352-362.
[7]Weicker R.Dhrystone:a synthetic systems programming benchmark[J].Communication of the ACM(CACM),1984,27(10):1013-1030.
[8]Kar R,Porter K.Rhealstone:a real-time benchmarking proposal[J].Dr Dobbs Journal,1989,14(2):14-24.
[9]Weiderman N W.Hartstone:synthetic benchmark requir-ements for hard real-time applications[R].Pittsburgh:Software Engineering Institute,Carnegie Mellon University,1989.
[10]Express Logic.Measure real-time performance of an RTOS[EB/OL].[2012-05-20].http://www.rtos.com/PDFs/MeasuringRTOSPerformance.pdf.
[11]Guthaus M.MiBench:a free,commercially representative embedded benchmark suite[C]//Proceedings of the IEEE 4th Annual Workshop on Workload Characterization,2001:534-549.
[12]Chen Y,Ganapathi A,Griffith R,et al.Towards understanding cloud performance tradeoffs using statistical workload analysis and replay[EB/OL].(2010-08-15).http://www.eecs.berkeley.edu/Pubs/TechRpts/2010/EECS-2010-81.html.
CHEN Lei1,CAI M ing2,SHI Kun2
1.Center of Information, The First Affiliated Hospital, College of Medicine, Zhejiang University, Hangzhou 310003, China
2.College of Computer Science and Technology, Zhejiang University, Hangzhou 310027, China
In order to improve the RTOS’s performance evaluation more accurately in the environment of both task and interrupt, the paper presents an interrupt response based model from the view of RTOS kernel. The evaluation on two typical Benchmark systems, namely Rhealstone and ThreadMetric, with three RTOSs including VxWorks, RTEMS and uC/OSII, shows that the new model can really obtain the more accurate evaluation under the circumstances of mixed load.
Real Time Operating System(RTOS); interrupt; task; performance evaluation; Benchmark
CHEN Lei, CAI Ming, SHI Kun. RTOS kernel performance evaluation technology research based on loads of task and interrupt. Computer Engineering and Applications, 2014, 50(17):80-85.
A
TP391.76
10.3778/j.issn.1002-8331.1303-0036
國(guó)防基礎(chǔ)科研;載人航天工程軟件專項(xiàng);航天支撐技術(shù)基金。
陳磊(1976—),女,信息工程師,主要研究方向?yàn)閷?shí)時(shí)操作系統(tǒng)、嵌入式系統(tǒng)、軟件測(cè)試技術(shù)、醫(yī)療信息化;蔡銘(1973—),男,工學(xué)博士,副教授,主要研究方向?yàn)閷?shí)時(shí)操作系統(tǒng)、嵌入式系統(tǒng)、軟件測(cè)試技術(shù)等;史昆,男,碩士生,主要研究方向?yàn)閷?shí)時(shí)操作系統(tǒng)、嵌入式系統(tǒng)。E-mail:sm ile_chenl@163.com
2013-03-04
2013-04-23
1002-8331(2014)17-0080-06
CNKI網(wǎng)絡(luò)優(yōu)先出版:2013-05-21,http://www.cnki.net/kcms/detail/11.2127.TP.20130521.1027.008.htm l