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