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