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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式實(shí)時(shí)操作系統(tǒng)性能測試方法研究

          嵌入式實(shí)時(shí)操作系統(tǒng)性能測試方法研究

          作者: 時(shí)間:2006-07-14 來源:網(wǎng)絡(luò) 收藏
          引 言
          隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展和芯片制造工藝的不斷進(jìn)步,ERTOS的研究和應(yīng)用日益廣泛,從民用的手機(jī)、電子書等手持移動(dòng)設(shè)備到航空航天、醫(yī)學(xué)設(shè)備、工業(yè)控制等各個(gè)領(lǐng)域都有它的身影。然而,在設(shè)計(jì)和選擇ERTOS時(shí),如何確定其是否能夠滿足所需的應(yīng)用成為一個(gè)棘手的問題,必須用一種有效的方法對(duì)它們的各個(gè)方面進(jìn)行對(duì)比,以選擇符合要求的系統(tǒng)。本文首先分析三種常用的系統(tǒng)方法,接著介紹一套實(shí)驗(yàn)平臺(tái),對(duì)于ERTOS的測試和分析有一定的指導(dǎo)意義。


          1 Rheaostone方法
          Rhealstone方法對(duì)ERTOS中六個(gè)關(guān)鍵操作的時(shí)間量進(jìn)行測量,并將它們的加權(quán)和稱為Rhealstone數(shù)。這六個(gè)時(shí)間量如下:
          ◆任務(wù)切換時(shí)間(task switching time),也稱上下文切換時(shí)間,定義為系統(tǒng)在兩個(gè)獨(dú)立的、處于就緒態(tài)并具有相同優(yōu)先級(jí)的任務(wù)之間切換所需要的時(shí)間。它包括三個(gè)部分,即保存當(dāng)前任務(wù)上下文的時(shí)間、調(diào)度程序選中新任務(wù)的時(shí)間和恢復(fù)新任務(wù)上下文的時(shí)間。切換所需的時(shí)間主要取決于保存任務(wù)上下文所用的數(shù)據(jù)結(jié)構(gòu)以及采用的調(diào)度算法的效率。

          ◆搶占時(shí)間(preemption time),即系統(tǒng)將控制從低優(yōu)先級(jí)的任務(wù)轉(zhuǎn)移到高優(yōu)先級(jí)任務(wù)所花費(fèi)的時(shí)間。為了對(duì)任務(wù)進(jìn)行搶占,系統(tǒng)必須首先識(shí)別引起高優(yōu)先級(jí)任務(wù)就緒的事件,比較兩個(gè)任務(wù)的優(yōu)先級(jí),最后進(jìn)行任務(wù)的切換,所以搶占時(shí)間中包括了任務(wù)切換時(shí)間。
          ◆中斷延遲時(shí)間(interrupt latency time),指從中斷第一條指令所持續(xù)的時(shí)間間隔.它由四部分組成,即硬件延遲部分(通??梢院雎圆挥?jì))、ERTOS的關(guān)中斷時(shí)間、處理器完成當(dāng)前指令的時(shí)間以及中斷響應(yīng)周期的時(shí)間。
          ◆信號(hào)量混洗時(shí)間(semaphore shuffling time),指從一個(gè)任務(wù)釋放信號(hào)量到另一個(gè)等待該信號(hào)量的任務(wù)被激活的時(shí)間延遲。在ERTOS中,通常有許多任務(wù)同時(shí)競爭某一共享資源,基于信號(hào)量的互斥訪問保證了任一時(shí)刻只有一個(gè)任務(wù)能夠訪問公共資源。信號(hào)量混洗時(shí)間反映了與互斥有關(guān)的時(shí)間開銷,因此也是衡量ERTOS的一個(gè)重要指標(biāo)。
          ◆死鎖解除時(shí)間(deadlock breaking time),即系統(tǒng)解開處于死鎖狀態(tài)的多個(gè)任務(wù)所需花費(fèi)的時(shí)間。死鎖解除時(shí)間反映了RTOS解決死鎖的算法的效率。
          ◆數(shù)據(jù)包吞吐率(datagram throuShput time),指一個(gè)任務(wù)通過調(diào)用ERTOS的原語,把數(shù)據(jù)傳送到另一個(gè)任務(wù)去時(shí),每秒可以傳送的字節(jié)數(shù)。


          2 進(jìn)程分派延遲時(shí)間法
          進(jìn)程分派延遲時(shí)間PDLT(Process Dispatcb LatencyTime)是另一個(gè)常用的測量ERTOS的方法。在系統(tǒng)中,實(shí)時(shí)任務(wù)總是等待外部事件引發(fā)的中斷來激活它。當(dāng)一個(gè)中斷產(chǎn)生后,系統(tǒng)必須迅速停止當(dāng)前運(yùn)行的低優(yōu)先級(jí)任務(wù),將控制權(quán)交給被激活的實(shí)時(shí)任務(wù)。PDLT定義為從中斷的產(chǎn)生到由中斷激活的實(shí)時(shí)任務(wù)開始執(zhí)行之間的時(shí)間間隔。這段間隔由幾個(gè)部分組成,如圖1所示。

          不同中,PDLT差異的主要部分是內(nèi)核延遲部分。目前絕大多數(shù)ERTOS為了減少內(nèi)核延遲,采用可搶占式的內(nèi)核,有效地提高了系統(tǒng)對(duì)外部事件的響應(yīng)速度。

          3 三維表示法
          有人將實(shí)時(shí)系統(tǒng)定義為能夠從外部進(jìn)程獲取輸入,處理所獲得的數(shù)據(jù),并能在足夠快的時(shí)間內(nèi)將正確的響應(yīng)返回給外部進(jìn)程的系統(tǒng)。由這個(gè)定義,可以將ER丁OS的工作分為三個(gè)階段:
          ◆響應(yīng)傳感器或者其他輸入設(shè)備的請(qǐng)求,并獲取數(shù)據(jù);
          ◆對(duì)獲得的數(shù)據(jù)進(jìn)行處理(主要由應(yīng)用程序進(jìn)行處理);
          ◆輸出處理結(jié)果。
          相應(yīng)地,ERTOS的性能可以用對(duì)應(yīng)的三個(gè)特性來描述:
          ◆CPU的計(jì)算能力,其度量單位為MIPSl(Millions of Instructions Per Second);
          ◆中斷處理能力,其度量單位為MIPS2(Millions of Interrupts Per Second);
          ◆I/O吞吐率,其度量單位為MIPS3(Millions of I/O Per Second)。
          上述三個(gè)特性的最大值可分別單獨(dú)測得,但這三個(gè)特性之間并不是相互獨(dú)立的。為了直觀地表現(xiàn)ERTOS的實(shí)時(shí)性能,可以用一個(gè)三維的圖形來表達(dá)三個(gè)特性之間的依賴關(guān)系,如圖2所示。

          圖2中用曲面來表現(xiàn)ER70S三個(gè)特性之間的依賴關(guān)系。如果隨著一個(gè)特性的增加,另外兩個(gè)特性下降的速度比較緩慢,可以認(rèn)為該曲面所表現(xiàn)的系統(tǒng)是ERTOS;反之,如果隨著一個(gè)特性的增加,另外兩個(gè)特性下降的速度超過了一定的范圍,就可以認(rèn)為該系統(tǒng)非ERTOS,如圖2中的陰影部分所示。

          4 系統(tǒng)實(shí)時(shí)性能測試實(shí)驗(yàn)平臺(tái)
          為了對(duì)RTOS的實(shí)時(shí)性能進(jìn)行測試,我們?cè)O(shè)計(jì)并實(shí)現(xiàn)了一套測試實(shí)驗(yàn)平臺(tái)。實(shí)驗(yàn)平臺(tái)由兩塊開發(fā)板(被測系統(tǒng))構(gòu)成,便于對(duì)不同的ERTOS進(jìn)行對(duì)比。由于實(shí)驗(yàn)平臺(tái)的主要設(shè)計(jì)目標(biāo)是對(duì)相同硬件架構(gòu)下的不同及操作系統(tǒng)的不同層次進(jìn)行比較,所以兩塊開發(fā)板均采用了研華的PCM 7230。其主要硬件特性如下:
          CPU:Intel Xscale PXA255 400MHz
          SDRAM:64 MB
          LCD:10.4”
          I/O接口:CompactFlash、PCMCIA、RS232、RS485、
          USB、Ethernet等。
          實(shí)驗(yàn)平臺(tái)的整體結(jié)構(gòu)如圖3所示。

          4.1 實(shí)驗(yàn)平臺(tái)功能
          (1)實(shí)時(shí)性能測試

          由于大多數(shù)ERTOS的內(nèi)核是不可更改的,所以對(duì)其實(shí)時(shí)性能的測試主要在用戶層實(shí)現(xiàn)。開發(fā)者可以將現(xiàn)有的用于測量Rhealstone性能指標(biāo)和PDLT延遲時(shí)間的benchmark程序方便地移植到PCM 7230開發(fā)板與不同RTOS組合的平臺(tái)上,也可以根據(jù)應(yīng)用需要自己編寫測試程序,對(duì)感興趣的延遲時(shí)間進(jìn)行測量。
          除此之外,PCM7230開發(fā)板從CPU引腳上引出了一個(gè)120針的擴(kuò)展接口AMI-120(ARM Module Interface)。將這120針引腳引出至實(shí)驗(yàn)平臺(tái)上的兩個(gè)測試端口1和2,可以通過示波器或邏輯分析儀對(duì)引腳上的信號(hào)進(jìn)行分析;配合benchmark測試,可以得出更加精確和可信的測試結(jié)果。另外,對(duì)引腳中的部分控制信號(hào)通過CPLD單獨(dú)引出至一個(gè)測試端口3,便于對(duì)不同的系統(tǒng)進(jìn)行對(duì)比測試。
          (2)負(fù)荷發(fā)生
          由三維表示法得知,ERTOS的實(shí)時(shí)性能可以用三個(gè)特性來表示。相應(yīng)地,實(shí)驗(yàn)平臺(tái)可以產(chǎn)生三種類型的負(fù)荷;計(jì)算負(fù)荷(CPU負(fù)荷)、I/O負(fù)荷以及中斷負(fù)荷。
          計(jì)算負(fù)荷由I)hrystone或Whetstone改編的進(jìn)程實(shí)現(xiàn),每秒鐘消耗一定的MIPS數(shù)。
          I/0負(fù)荷由系統(tǒng)時(shí)鐘控制,通過PCM 7230開發(fā)板上豐富的I/O接口產(chǎn)生流量。另外,通過配置不同的I/O接口,還可以測試不同存儲(chǔ)介質(zhì)對(duì)ERTOS性能的影響。
          中斷負(fù)荷的產(chǎn)生可以用CPLD進(jìn)行控制.通過DIP開關(guān)設(shè)置中斷發(fā)生的頻率,在CPLD中實(shí)現(xiàn)一個(gè)分頻器用于產(chǎn)生中斷信號(hào),并將中斷信號(hào)通過AMI-120接口中的GPIO引腳傳送給CPU。
          在進(jìn)行ERTOS實(shí)時(shí)性能的測試時(shí),這三類負(fù)荷可以模擬應(yīng)用的真實(shí)環(huán)境。另外,通過指定三種負(fù)荷的變化,可以獲得它們?cè)谌S圖中的一系列坐標(biāo)點(diǎn),由此也可以繪制ERTOS的三維表示曲面。
          此外,由于CPLD為可編程器件,方便對(duì)其再編程以重新定義與其相連的各種器件的功能,使得測試平臺(tái)有很大的靈活性和擴(kuò)展性。
          4.2 計(jì)時(shí)方法
          評(píng)價(jià)ERTOS實(shí)時(shí)性能的具體指標(biāo)多數(shù)是用延遲時(shí)間來表示的,比如Rhealstone方法中的前五個(gè)指標(biāo)和PDLT方法??梢詫⑦@些對(duì)時(shí)間的測量過程簡化為圖4所示的流程。

          圖4中對(duì)t1、t2的計(jì)時(shí)可以用以下三種方法實(shí)現(xiàn)。
          (1)系統(tǒng)調(diào)用
          ERTOS一般有用于計(jì)時(shí)的系統(tǒng)調(diào)用,例如RTLlnux的系統(tǒng)調(diào)用gettimeofday(),其精度可以達(dá)到μs級(jí),可以滿足多數(shù)延遲時(shí)
          間的計(jì)時(shí)。但是,由于系統(tǒng)調(diào)用時(shí)有一個(gè)壓棧、出棧的過程,以及從用戶空間到系統(tǒng)空間的轉(zhuǎn)換,這個(gè)過程對(duì)計(jì)時(shí)會(huì)產(chǎn)生一定的影響。
          (2)OS時(shí)鐘寄存器
          PXA 255處理器內(nèi)包含一個(gè)32位的OS時(shí)鐘寄存器,由一個(gè)3.6864 MHz的晶振驅(qū)動(dòng)??梢栽谟?jì)時(shí)開始和結(jié)束時(shí)分別讀取該寄存器的值,換算出對(duì)應(yīng)的延遲時(shí)間。
          (3)GPIO引腳
          AMI-120接口上有許多GPIO引腳,可以考慮在計(jì)時(shí)往一個(gè)空閑的GPIO引腳上寫一個(gè)特定的信號(hào),利用CPLD中實(shí)現(xiàn)的計(jì)數(shù)器對(duì)兩個(gè)信號(hào)間的時(shí)間間隔進(jìn)行計(jì)數(shù)。驅(qū)動(dòng)CPLD的時(shí)鐘是可以更換的,其最大允許頻率為200 MHz。這樣,考慮到CPLD的引腳間延遲,用這種方法計(jì)時(shí)的精度可以達(dá)到數(shù)+ns。


          5 ERTOS對(duì)比測試
          操作系統(tǒng)是數(shù)字系統(tǒng)中進(jìn)行資源管理的軟件。狹義的操作系統(tǒng)只包括進(jìn)行進(jìn)程管理、內(nèi)存管理、中斷管理等基本功能的內(nèi)核部分;而廣義上講,操作系統(tǒng)除了內(nèi)核外,還包括GUI、API、大量的驅(qū)動(dòng)程序,甚至一些應(yīng)用程序也可以認(rèn)為是操作系統(tǒng)的一部分?,F(xiàn)代操作系統(tǒng)在其內(nèi)部提供了豐富的功能模塊,而操作系統(tǒng)的一個(gè)顯著的特點(diǎn)就是,可以根據(jù)需要對(duì)這些功能模塊進(jìn)行裁剪。典型的ERTOS層次結(jié)構(gòu)如圖5所示。

          操作系統(tǒng)提供的功能模塊一方面擴(kuò)展了系統(tǒng)的功能,方便了用戶的使用;另一方面,又在一定程度上會(huì)影響系統(tǒng)的性能。ERTOS在對(duì)系統(tǒng)的功能進(jìn)行選擇和剪裁時(shí),就需要在功能和性能之間選擇一個(gè)折中點(diǎn),使得系統(tǒng)能夠提供盡可能多的功能,同時(shí)又能滿足其實(shí)時(shí)性的需要。這就要求在進(jìn)行系統(tǒng)的設(shè)計(jì)、選擇或者裁剪時(shí),對(duì)操作系統(tǒng)增減或替換不同模塊時(shí)的性能進(jìn)行對(duì)比分析。
          利用上文中的測試實(shí)驗(yàn)平臺(tái),可以在兩塊開發(fā)板上分別配置有/無某個(gè)功能模塊的系統(tǒng),將測試方法分別應(yīng)用于兩個(gè)系統(tǒng)上。由于被測的系統(tǒng)采用的是相同的硬件架構(gòu),消除了硬件對(duì)系統(tǒng)性能的影響。對(duì)得到的測量結(jié)果進(jìn)行對(duì)比分析,就可以比較精確和客觀地得出該功能模塊對(duì)整個(gè)系統(tǒng)性能影響的大小。
          同樣,該實(shí)驗(yàn)平臺(tái)也可以用于測試分析不同ERTOS系統(tǒng)的性能。

          6 總 結(jié)
          本文對(duì)三種ERTOS性能測試方法進(jìn)行了研究,對(duì)一些指標(biāo)和特性進(jìn)行了分析。文章的后半部分給出了一個(gè)測試實(shí)驗(yàn)平臺(tái)的結(jié)構(gòu)及其功能說明,并針對(duì)實(shí)驗(yàn)平臺(tái)給出了系統(tǒng)計(jì)時(shí)的三種方法。文中提供的測試方法和手段對(duì)ERTOS的選擇和開發(fā)有一定的參考價(jià)值。

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


          評(píng)論


          相關(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); })();