嵌入式實(shí)時(shí)操作系統(tǒng)性能測試方法研究
隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展和芯片制造工藝的不斷進(jìn)步,ERTOS的研究和應(yīng)用日益廣泛,從民用的手機(jī)、電子書等手持移動設(shè)備到航空航天、醫(yī)學(xué)設(shè)備、工業(yè)控制等各個領(lǐng)域都有它的身影。然而,在設(shè)計(jì)和選擇ERTOS時(shí),如何確定其是否能夠滿足所需的應(yīng)用成為一個棘手的問題,必須用一種有效的方法對它們的各個方面進(jìn)行對比測試,以選擇符合要求的系統(tǒng)。本文首先分析三種常用的系統(tǒng)實(shí)時(shí)性能測試方法,接著介紹一套測試實(shí)驗(yàn)平臺,對于ERTOS的測試和分析有一定的指導(dǎo)意義。
1 Rheaostone方法
Rhealstone方法對ERTOS中六個關(guān)鍵操作的時(shí)間量進(jìn)行測量,并將它們的加權(quán)和稱為Rhealstone數(shù)。這六個時(shí)間量如下:
◆任務(wù)切換時(shí)間(task switching time),也稱上下文切換時(shí)間,定義為系統(tǒng)在兩個獨(dú)立的、處于就緒態(tài)并具有相同優(yōu)先級的任務(wù)之間切換所需要的時(shí)間。它包括三個部分,即保存當(dāng)前任務(wù)上下文的時(shí)間、調(diào)度程序選中新任務(wù)的時(shí)間和恢復(fù)新任務(wù)上下文的時(shí)間。切換所需的時(shí)間主要取決于保存任務(wù)上下文所用的數(shù)據(jù)結(jié)構(gòu)以及操作系統(tǒng)采用的調(diào)度算法的效率。
◆搶占時(shí)間(preemption time),即系統(tǒng)將控制從低優(yōu)先級的任務(wù)轉(zhuǎn)移到高優(yōu)先級任務(wù)所花費(fèi)的時(shí)間。為了對任務(wù)進(jìn)行搶占,系統(tǒng)必須首先識別引起高優(yōu)先級任務(wù)就緒的事件,比較兩個任務(wù)的優(yōu)先級,最后進(jìn)行任務(wù)的切換,所以搶占時(shí)間中包括了任務(wù)切換時(shí)間。
◆中斷延遲時(shí)間(interrupt latency time),指從中斷第一條指令所持續(xù)的時(shí)間間隔.它由四部分組成,即硬件延遲部分(通??梢院雎圆挥?jì))、ERTOS的關(guān)中斷時(shí)間、處理器完成當(dāng)前指令的時(shí)間以及中斷響應(yīng)周期的時(shí)間。
◆信號量混洗時(shí)間(semaphore shuffling time),指從一個任務(wù)釋放信號量到另一個等待該信號量的任務(wù)被激活的時(shí)間延遲。在ERTOS中,通常有許多任務(wù)同時(shí)競爭某一共享資源,基于信號量的互斥訪問保證了任一時(shí)刻只有一個任務(wù)能夠訪問公共資源。信號量混洗時(shí)間反映了與互斥有關(guān)的時(shí)間開銷,因此也是衡量ERTOS實(shí)時(shí)性能的一個重要指標(biāo)。
◆死鎖解除時(shí)間(deadlock breaking time),即系統(tǒng)解開處于死鎖狀態(tài)的多個任務(wù)所需花費(fèi)的時(shí)間。死鎖解除時(shí)間反映了RTOS解決死鎖的算法的效率。
◆數(shù)據(jù)包吞吐率(datagram throuShput time),指一個任務(wù)通過調(diào)用ERTOS的原語,把數(shù)據(jù)傳送到另一個任務(wù)去時(shí),每秒可以傳送的字節(jié)數(shù)。
2 進(jìn)程分派延遲時(shí)間法
進(jìn)程分派延遲時(shí)間PDLT(Process Dispatcb LatencyTime)是另一個常用的測量ERTOS性能的方法。在實(shí)時(shí)系統(tǒng)中,實(shí)時(shí)任務(wù)總是等待外部事件引發(fā)的中斷來激活它。當(dāng)一個中斷產(chǎn)生后,系統(tǒng)必須迅速停止當(dāng)前運(yùn)行的低優(yōu)先級任務(wù),將控制權(quán)交給被激活的實(shí)時(shí)任務(wù)。PDLT定義為從中斷的產(chǎn)生到由中斷激活的實(shí)時(shí)任務(wù)開始執(zhí)行之間的時(shí)間間隔。這段間隔由幾個部分組成,如圖1所示。
不同操作系統(tǒng)中,PDLT差異的主要部分是內(nèi)核延遲部分。目前絕大多數(shù)ERTOS為了減少內(nèi)核延遲,采用可搶占式的內(nèi)核,有效地提高了系統(tǒng)對外部事件的響應(yīng)速度。
3 三維表示法
有人將實(shí)時(shí)系統(tǒng)定義為能夠從外部進(jìn)程獲取輸入,處理所獲得的數(shù)據(jù),并能在足夠快的時(shí)間內(nèi)將正確的響應(yīng)返回給外部進(jìn)程的系統(tǒng)。由這個定義,可以將ER丁OS的工作分為三個階段:
◆響應(yīng)傳感器或者其他輸入設(shè)備的請求,并獲取數(shù)據(jù);
◆對獲得的數(shù)據(jù)進(jìn)行處理(主要由應(yīng)用程序進(jìn)行處理);
◆輸出處理結(jié)果。
相應(yīng)地,ERTOS的性能可以用對應(yīng)的三個特性來描述:
◆CPU的計(jì)算能力,其度量單位為MIPSl(Millions of Instructions Per Second);
◆中斷處理能力,其度量單位為MIPS2(Millions of Interrupts Per Second);
◆I/O吞吐率,其度量單位為MIPS3(Millions of I/O Per Second)。
上述三個特性的最大值可分別單獨(dú)測得,但這三個特性之間并不是相互獨(dú)立的。為了直觀地表現(xiàn)ERTOS的實(shí)時(shí)性能,可以用一個三維的圖形來表達(dá)三個特性之間的依賴關(guān)系,如圖2所示。
圖2中用曲面來表現(xiàn)ER70S三個特性之間的依賴關(guān)系。如果隨著一個特性的增加,另外兩個特性下降的速度比較緩慢,可以認(rèn)為該曲面所表現(xiàn)的系統(tǒng)是ERTOS;反之,如果隨著一個特性的增加,另外兩個特性下降的速度超過了一定的范圍,就可以認(rèn)為該系統(tǒng)非ERTOS,如圖2中的陰影部分所示。
4 系統(tǒng)實(shí)時(shí)性能測試實(shí)驗(yàn)平臺
為了對RTOS的實(shí)時(shí)性能進(jìn)行測試,我們設(shè)計(jì)并實(shí)現(xiàn)了一套測試實(shí)驗(yàn)平臺。實(shí)驗(yàn)平臺由兩塊開發(fā)板(被測系統(tǒng))構(gòu)成,便于對不同的ERTOS進(jìn)行對比。由于實(shí)驗(yàn)平臺的主要設(shè)計(jì)目標(biāo)是對相同硬件架構(gòu)下的不同操作系統(tǒng)及操作系統(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)平臺的整體結(jié)構(gòu)如圖3所示。
4.1 實(shí)驗(yàn)平臺功能
(1)實(shí)時(shí)性能測試
由于大多數(shù)ERTOS的內(nèi)核是不可更改的,所以對其實(shí)時(shí)性能的測試主要在用戶層實(shí)現(xiàn)。開發(fā)者可以將現(xiàn)有的用于測量Rhealstone性能指標(biāo)和PDLT延遲時(shí)間的benchmark程序方便地移植到PCM 7230開發(fā)板與不同RTOS組合的平臺上,也可以根據(jù)應(yīng)用需要自己編寫測試程序,對感興趣的延遲時(shí)間進(jìn)行測量。
除此之外,PCM7230開發(fā)板從CPU引腳上引出了一個120針的擴(kuò)展接口AMI-120(ARM Module Interface)。將這120針引腳引出至實(shí)驗(yàn)平臺上的兩個測試端口1和2,可以通過示波器或邏輯分析儀對引腳上的信號進(jìn)行分析;配合benchmark測試,可以得出更加精確和可信的測試結(jié)果。另外,對引腳中的部分控制信號通過CPLD單獨(dú)引出至一個測試端口3,便于對不同的系統(tǒng)進(jìn)行對比測試。
(2)負(fù)荷發(fā)生
由三維表示法得知,ERTOS的實(shí)時(shí)性能可以用三個特性來表示。相應(yīng)地,實(shí)驗(yàn)平臺可以產(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接口,還可以測試不同存儲介質(zhì)對ERTOS性能的影響。
中斷負(fù)荷的產(chǎn)生可以用CPLD進(jìn)行控制.通過DIP開關(guān)設(shè)置中斷發(fā)生的頻率,在CPLD中實(shí)現(xiàn)一個分頻器用于產(chǎn)生中斷信號,并將中斷信號通過AMI-120接口中的GPIO引腳傳送給CPU。
在進(jìn)行ERTOS實(shí)時(shí)性能的測試時(shí),這三類負(fù)荷可以模擬應(yīng)用的真實(shí)環(huán)境。另外,通過指定三種負(fù)荷的變化,可以獲得它們在三維圖中的一系列坐標(biāo)點(diǎn),由此也可以繪制ERTOS的三維表示曲面。
此外,由于CPLD為可編程器件,方便對其再編程以重新定義與其相連的各種器件的功能,使得測試平臺有很大的靈活性和擴(kuò)展性。
4.2 計(jì)時(shí)方法
評價(jià)ERTOS實(shí)時(shí)性能的具體指標(biāo)多數(shù)是用延遲時(shí)間來表示的,比如Rhealstone方法中的前五個指標(biāo)和PDLT方法。可以將這些對時(shí)間的測量過程簡化為圖4所示的流程。
圖4中對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級,可以滿足多數(shù)延遲時(shí)
間的計(jì)時(shí)。但是,由于系統(tǒng)調(diào)用時(shí)有一個壓棧、出棧的過程,以及從用戶空間到系統(tǒng)空間的轉(zhuǎn)換,這個過程對計(jì)時(shí)會產(chǎn)生一定的影響。
(2)OS時(shí)鐘寄存器
PXA 255處理器內(nèi)包含一個32位的OS時(shí)鐘寄存器,由一個3.6864 MHz的晶振驅(qū)動??梢栽谟?jì)時(shí)開始和結(jié)束時(shí)分別讀取該寄存器的值,換算出對應(yīng)的延遲時(shí)間。
(3)GPIO引腳
AMI-120接口上有許多GPIO引腳,可以考慮在計(jì)時(shí)往一個空閑的GPIO引腳上寫一個特定的信號,利用CPLD中實(shí)現(xiàn)的計(jì)數(shù)器對兩個信號間的時(shí)間間隔進(jìn)行計(jì)數(shù)。驅(qū)動CPLD的時(shí)鐘是可以更換的,其最大允許頻率為200 MHz。這樣,考慮到CPLD的引腳間延遲,用這種方法計(jì)時(shí)的精度可以達(dá)到數(shù)+ns。
5 ERTOS對比測試
操作系統(tǒng)是數(shù)字系統(tǒng)中進(jìn)行資源管理的軟件。狹義的操作系統(tǒng)只包括進(jìn)行進(jìn)程管理、內(nèi)存管理、中斷管理等基本功能的內(nèi)核部分;而廣義上講,操作系統(tǒng)除了內(nèi)核外,還包括GUI、API、大量的驅(qū)動程序,甚至一些應(yīng)用程序也可以認(rèn)為是操作系統(tǒng)的一部分?,F(xiàn)代操作系統(tǒng)在其內(nèi)部提供了豐富的功能模塊,而嵌入式操作系統(tǒng)的一個顯著的特點(diǎn)就是,可以根據(jù)需要對這些功能模塊進(jìn)行裁剪。典型的ERTOS層次結(jié)構(gòu)如圖5所示。
操作系統(tǒng)提供的功能模塊一方面擴(kuò)展了系統(tǒng)的功能,方便了用戶的使用;另一方面,又在一定程度上會影響系統(tǒng)的性能。ERTOS在對系統(tǒng)的功能進(jìn)行選擇和剪裁時(shí),就需要在功能和性能之間選擇一個折中點(diǎn),使得系統(tǒng)能夠提供盡可能多的功能,同時(shí)又能滿足其實(shí)時(shí)性的需要。這就要求在進(jìn)行系統(tǒng)的設(shè)計(jì)、選擇或者裁剪時(shí),對操作系統(tǒng)增減或替換不同模塊時(shí)的性能進(jìn)行對比分析。
利用上文中的測試實(shí)驗(yàn)平臺,可以在兩塊開發(fā)板上分別配置有/無某個功能模塊的系統(tǒng),將測試方法分別應(yīng)用于兩個系統(tǒng)上。由于被測的系統(tǒng)采用的是相同的硬件架構(gòu),消除了硬件對系統(tǒng)性能的影響。對得到的測量結(jié)果進(jìn)行對比分析,就可以比較精確和客觀地得出該功能模塊對整個系統(tǒng)性能影響的大小。
同樣,該實(shí)驗(yàn)平臺也可以用于測試分析不同ERTOS系統(tǒng)的性能。
6 總 結(jié)
本文對三種ERTOS性能測試方法進(jìn)行了研究,對一些指標(biāo)和特性進(jìn)行了分析。文章的后半部分給出了一個測試實(shí)驗(yàn)平臺的結(jié)構(gòu)及其功能說明,并針對實(shí)驗(yàn)平臺給出了系統(tǒng)計(jì)時(shí)的三種方法。文中提供的測試方法和手段對ERTOS的選擇和開發(fā)有一定的參考價(jià)值。
評論