APP下载

任务及中断负载下实时操作系统性能评估研究

2014-07-08陈磊蔡铭史昆

计算机工程与应用 2014年17期
关键词:性能指标内核中断

陈磊,蔡铭,史昆

1.浙江大学医学院附属第一医院信息中心,杭州 310003

2.浙江大学计算机科学与技术学院,杭州 310027

任务及中断负载下实时操作系统性能评估研究

陈磊1,蔡铭2,史昆2

1.浙江大学医学院附属第一医院信息中心,杭州 310003

2.浙江大学计算机科学与技术学院,杭州 310027

针对现有实时操作系统Benchmark在任务及中断混合负载下的评估“失真”问题,从RTOS内核中断响应模型分析入手,提出一种面向任务及中断混合负载环境下的内核性能评估方法,并以Rhealstone和ThreadMetric两种典型的Benchmark为基础实验平台进行改造与修正,通过对VxWorks、RTEMS、uC/OSII等系统的性能评测,实验结果表明,该评估方法对任务及中断混合负载下的RTOS内核性能评估更具合理性。

实时操作 系统;中断;任务;性能评估;评估套件

1 引言

实时操作系统(Real Time Operating System,RTOS)是指能在确定的时间内对外部事件做出响应并执行功能的一类操作系统。RTOS作为航天领域基础软件之一,对于星、弹、箭等强实时、高可靠应用具有重要的支撑作用。在国外,RTOS已经被广泛应用于星弹箭载及地面测控计算机,例如,NASA的火星探路者[1]、坦普尔1号彗星“深度撞击”[2]等,分别采用了VxWorks、ThreadX等实时操作系统。在国内,小卫星“实践五号”[3]、“探索一号”[4]中也已使用pSOS实时操作系统。

随着我国航天嵌入式软件的系统规模及功能复杂度持续递增,自研或选用RTOS产品作为嵌入式软件支撑平台将成为必然趋势。现有国外的RTOS商用产品及开源系统种类丰富,如VxWorks、Integrity、QNX、RTEMS、ThreadX、uC-OS/II等,同时,“核高基”重大专项也正在大力支持我国自主研制RTOS产品。

调查结果表明,实时性能是用户选用RTOS系统的首要关注特性[5]。因而,如何快捷、准确地对RTOS实时性能,尤其是内核性能指标进行有效评估,对产品选型以及自主研制均起到极为重要的作用[6]。

RTOS内核性能评价指标主要可分为两类,包括:中断性能指标与任务性能指标。其中,中断相关性能指标,包括:最大关中断时间、外部中断响应时间、软中断响应时间等;多任务相关性能指标,包括:任务切换时间、任务抢占时间、内存分配时间、消息传递时间、信号量混洗时间、死锁解锁时间等。目前主要采用各类性能评估套件(Benchmark)对RTOS内核性能进行评测,可以分为单项指标测试和综合性能测试两大类型。较为知名的RTOS Benchmark系统包括:

(1)Dhrystone[7]属于综合评估套件,用于评估整数计算性能。该评估套件选择了一组有代表性的操作,这些操作在高级语言里面经常用到,包括赋值、控制和函数调用等。

(2)Rhealstone[8]提供了一个RTOS性能测试Benchmark,可以对RTOS的任务切换时间、任务抢占时间、中断延迟时间等6个性能指标进行测试,通过加权计算获得Rhealstone值,Rhealstone值越大,表明RTOS的性能越好。

(3)Hartstone[9]是美国卡内基梅隆大学研制的一个实时系统的Benchmark。它从任务计算负载、任务执行周期、时间期限要求出发,定义了5个类型的测试序列,通过不断增压的方法对系统进行测试,获取RTOS的性能极限值参数,以此作为对比系统实时性能的依据。

(4)ThreadMetric[10]是美国Express Logic公司研制的一个RTOS性能测试Benchmark,其中包含1个基准测试和6个性能对比测试(包括抢占式任务调度、中断处理、中断抢占任务、任务同步、内存分配等测试),通过计算一定时间周期内完成某一事务的次数,作为评估RTOS性能的依据。

(5)M iBench[11]是美国密歇根大学研制的一个嵌入式系统Benchmark,针对汽车电子、工业控制、电信系统、网络通讯等6大嵌入式应用,提供了35个典型应用软件,可用于测试系统实时性能。

通过分析,可以发现上述RTOS Benchmark仍存在如下局限性:

(1)系统评估的应用负载环境构造较为单一。RTOS的运行环境复杂多样,有任务、中断、I/O等应用负载[12],且相互间耦合、嵌套。而现有Benchmark大都仅提供单一的应用负载环境,且任务之间交互设计较为简单,对混合负载情况下的性能评测能力不足,无法反映RTOS在实际工况下的执行性能。

(2)系统综合性能计算方法不甚合理。现有Benchmark大都采取先独立测试各单项性能指标,而后进行加权组合的方法计算系统综合性能,如Rhealstone值计算。该方法要求各项性能指标相对独立,无关联约束。而在实际运行环境中,中断性能、任务性能等指标彼此依赖、相互影响,因而仅采用简单的加权计算方法评估系统综合性能,理论依据不足。

基于上述分析,本文针对现有Benchmark在任务及中断混合负载环境下性能评测的局限性,从分析RTOS内核中断响应模型入手,提出一种在混合负载工况下有效评价内核性能的方法。

本文以Rhealstone和ThreadMetric两种典型的Benchmark为基础实验平台进行修正与优化,通过对VxWorks、RTEMS、uC/OSII等系统在任务及中断混合负载环境下的性能评估实验,结果表明,该方法可有效改善现有Benchmark对RTOS内核性能评估“失真”问题。

2 中断响应失效分析

首先,构建一个中断负载环境,实测并分析RTOS内核在中断压力不断提升的情况下,中断响应失效次数的变化规律,以此为构建RTOS内核的中断响应模型提供依据。

为了测试RTOS的中断响应失效指标,以周期性中断事件为负载,并假设应用程序运行期间不关闭中断,即应用程序不干扰内核的中断响应能力,可定义如下的中断事件接受函数:

中断事件接受函数是一个二值函数,其中,T为中断的发生周期,以微秒为单位。P为容忍度,表示系统能够容忍中断被延时响应的程度。对于周期性中断,超过周期T后的响应必定失效,因而,P介于0与1之间。ti为中断响应延迟时间,即中断响应时间与中断发生时间的间隔。

中断事件接受函数的意义如下:每隔T时间产生一次中断,给定一个容忍区间T×P,在周期T时刻内响应中断,且小于容忍区间,则认为是一次有效的中断响应,否则认为该周期的中断响应失效。

对一个时间段内的中断失效次数定义如下:

上述两者差值,即中断失效次数Failsys,反映了一个时间段内RTOS丢失的中断次数。

基于上述定义,设计了一组中断负载实验,通过不断提高中断频率,即增加中断负载情况下,观察uC/ OSII0.52、uC/OSII2.80、RTEMS4.7.1、VxWorks5.4四个RTOS系统的Failsys指标变化情况。中断响应性能好的RTOS,Failsys指标上升趋势应该较为平缓,即丢失的中断响应少,而中断响应性能弱的RTOS则相反。

实验结果如图1所示,数据表明:

(1)各个RTOS均存在中断临界点或拐点,即到达一定的中断频率后,中断响应丢失数量显著上升。

图1 四种RTOS在不同中断频率下的失效示意图

(2)四个RTOS的Failsys指标变化趋势具有差异性,表现出对中断负载不同的敏感程度,其中,VxWorks5.4的变化趋势最为平缓,uC/OSII0.52的变化最为剧烈,uC/OSII2.80、RTEMS4.7.1则介于上述两者之间。

通过上述实验可知,不同RTOS的中断响应能力存在较大的差异性,其原因在于RTOS内核采用了不同的中断响应处理策略,从而造成了各异的中断响应行为,有待建立内核中断响应模型进行分析。

3 中断响应模型建立

本章对参与上述实验的RTOS内核进行代码分析,研究其中断响应行为,建立RTOS内核的典型中断响应模型,并以此作为任务及中断混合负载环境下,对内核性能评测及Benchmark修正的依据。

建立中断响应模型的思路为:对RTOS内核中系统调用代码进行静态分析,提取内核对中断的保护及响应策略,进而总结形成中断响应模型。

通过对系统调用代码的分析,可以有助于建立中断响应模型,其依据如下:

系统调用是内核提供应用服务的载体,运行于内核状态,对内核数据结构进行大量的操作。为了防止外部中断对内核数据造成的潜在破坏,在系统调用中均需采取一定的互斥与保护手段,不同的中断保护策略及中断响应机制,是影响RTOS中断响应能力的决定因素。因而,对系统调用代码进行分析,是判断和掌握RTOS中断响应行为的有效途径。

以中断负载实验中,uC/OSII0.52、RTEMS4.7.1和VxWorks5.4三个典型系统实现“任务恢复”这一相同系统调用的伪代码为例,如图2所示,可以看到对中断的响应处理采取了不同的策略,归纳为如下三类典型的RTOS内核中断响应模型:

(1)巨型内核锁模型:在uC/OSII0.52的系统调用实现中,采用全程关闭中断方式完成内核与中断的互斥保护,处理过程可分为:关闭中断、系统调用处理、开启中断,共三个步骤。该模型的优点是实现方法简单易行,但由于在系统调用处理中全程关闭中断,互斥粒度大,中断关闭时间长。因而在中断负载实验中,随着中断频率上升,中断响应失效次数变化最为显著。

(2)内核抢占点模型:在RTEMS4.7.1的系统调用实现中,将系统调用处理分解为几个阶段实现,在各部分的衔接处,以“内核抢占点”的方式响应中断,减小了内核与中断的互斥粒度,优化了中断响应时间。因而在中断负载实验中,随着中断频率上升,具有较优的中断响应失效次数表现。

图2 三种RTOS的系统调用对比分析

(3)基于延迟工作队列的内核可重入模型:在VxWorks5.4的系统调用实现中,采用延迟工作队列技术,进一步优化了内核与中断的互斥机制,其原理如下:在系统调用过程中不关闭中断,当中断操作涉及内核数据时,将该操作加入一个延迟工作队列workQ中,并在退出内核操作时执行。采用该方法,仅在加入延迟工作队列操作过程中关闭中断,因而关闭中断时间最短,具有最优的中断响应性能指标。

通过上述对RTOS系统调用代码的分析可知:uC/ OSII0.52、RTEMS4.7.1和VxWorks5.4三个系统采用了不同的中断响应处理模型,其中,后两个系统分别运用内核抢占点及延迟工作队列优化技术,使得内核的中断响应能力得到有效提高,该分析结果与上章的中断负载实验测试结果一致。

4 中断负载下RTOS内核性能评测分析

本章结合中断响应模型,对各RTOS性能评测指标在中断负载下的影响进行分析,进而选取“任务切换时间”这一性能指标,开展Rhealstone和ThreadMetric两个典型Benchmark系统在中断负载下的性能评测及分析工作。

4.1 中断负载下中断响应模型分析

基于中断响应模型,对RTOS内核性能评估中的任务切换、任务抢占、同步通信指标,对其在中断负载下的影响进行分析,结果如表1所示。

由表1可知,巨型内核锁模型对中断负载最不敏感,内核抢占点模型、基于延迟工作队列的内核可重入模型,对中断响应的灵敏度依次递增,因而对内核性能指标评测的影响度也随之增加。

4.2 中断负载下Benchm ark评测实验

在本节中,以“任务切换时间”这一RTOS内核性能关键指标为例,开展基于性能绝对值测试的Rhealstone和基于性能归一化评分的ThreadMetric,两个典型Benchmark系统在中断负载下的测试及分析,其他性能指标的测试及分析与此相似,不再赘述。

实验环境及构成说明如下:

以uC/OSII0.52、uC/OSII2.80、RTEMS4.7.1、VxWorks5.4四个RTOS为测试对象,任务调度算法均配置为优先级位图调度策略。

由信号发生器提供给测试系统一个周期性的外部中断激励,频率跨度为60 Hz~4 kHz。

应用程序运行中不关闭中断,并选用M iBench测试套件中提供的工业控制领域测试软件包bitcount、qsort作为工作负载。

通过选取若干采样点,可以获得四个RTOS在不同中断频率下,“任务切换时间”性能指标的Benchmark评价值,测试结果如下:

Rhealstone测试提供了“任务切换时间”性能指标的绝对值,如图3所示,随着中断频率加大,uC/OSII 0.52的任务切换时间变化最为平稳,而VxWorks5.4变化剧烈,表现不稳定。

图3 Rhealstone对四种RTOS的测试结果

与Rhealstone评估模型不同,ThreadMetric通过与基准测试对比,获得性能指标评分,分值越高则性能越好。图4显示了在ThreadMetric测试中,随着中断频率增加,各RTOS的“任务切换时间”评分逐渐提高,uC/ OSII 0.52的评分增长较快,VxWorks5.4增加缓慢,在高中断负载情况下,前者性能表现明显优于后者。

图4 ThreadMetric对四种RTOS的测试结果

综上,两个Benchmark的测试结果较为一致,即:随着中断负载递增,uC/OSII 0.52的任务调度器表现更为稳定、出色,较RTEMS4.7.1、VxWorks5.4任务调度器功能优。

表1 中断负载对不同中断响应模型RTOS性能指标的影响及分析

由前续分析可知,VxWorks5.4、RTEMS4.7.1采用了中断响应优化策略,使得内核对中断事件更为灵敏,因而随着中断负载加大,对内核性能的评测影响也随之增加。

现有的各类Benchmark测试,主要基于无中断负载或中断负载较轻情况设计,未考虑加入中断负载后,对内核运行的干扰及影响,缺乏有效的补偿和修正手段,因而,不适用于中断负载下的内核性能评价,有失客观性,甚至失之偏颇。

5 中断负载下Benchm ark优化

针对现有Benchmark在中断负载下的性能评估“失真”问题,在本章中,首先从分析Rhealstone和Thread-Metric两个Benchmark性能评测构成原理入手,进而对中断负载造成的影响进行分析与修正,使其适用于中断负载下的内核性能评测。

需要指出的是,本文仅以“任务切换时间”这一指标的修正方法为例讨论,但是该思想同样适用于对其他Benchmark及性能指标评测的修正。

5.1 Rhealstone分析及优化

Rhealstone是一类基于绝对时间的测试套件,通过多次测试内核的某项活动起止时间并取均值后,形成对该项性能的评价。

Rhealstone共包含对内核的6项性能指标评测,包括:任务切换时间、任务抢占时间、中断延迟时间、信号量混洗时间、消息传输时间和死锁解除时间。

在中断负载下,以“任务切换时间”性能指标Ttsw为例,Rhealstone的测试模型如下所示:

其中,Ttsw表示由Rhealstone测试得到的,用于完成任务上下文切换所消耗的时间;Tsch表示内核用于高优先级任务查找及任务上下文切换时间;Tint表示由于中断负载加入后,系统处理需消耗的额外时间。

由此可知,Tsch是内核用于任务切换的有效时间,在无中断或轻中断负载情况下,Tint可忽略不计,对Tsch的测试,可由Ttsw近似获得。

然而,随着中断负载增加,采用不同的中断响应模型,Tint值差异逐渐显著,即内核与中断互斥粒度大,则Tint值增加缓慢,反之则迅速递增。因而,在重中断负载情况下,Tint的影响已不可忽略。在图3的Rhealstone测试中,uC/OSII 0.52表现稳定,而VxWorks5.4变化显著,可由Tint的变化程度不同来解释。

对Rhealstone测试的修正方法是:在测试过程中累计内核响应中断处理的时间,在测试结果中减去该时间段,即抵消中断负载的影响,使得测试结果Ttsw真实反映任务切换工作所需的时间Tsch。

据此,对Rhealstone的测试模型修正如下:

在上述公式中,Tsys表示测试过程中内核用于响应中断处理所额外耗费的时间。随着中断压力增加,Tsys与Tint变化趋势同步,因而可以有效降低中断对内核的影响,反映真实的性能测试结果。

5.2 ThreadMetric分析及优化

ThreadMetric是一类基于归一化评分的测试套件,测试分为如下两个步骤进行:

(1)在给定时间段内,统计内核完成某项活动的数量S,以及基准测试的完成数量H。

(2)将上述两个数值相除,获得对该项内核活动的性能评分R,即R=S/H。

采用归一化评分方法,通过引入基准测试作为对系统基础能力的评价,可以消除不同硬件平台对测试的影响,因而使得ThreadMetric测试具有一定的跨平台能力。

以“任务切换时间”性能指标为例,ThreadMetric的测试模型如下所示:

其中,R表示由ThreadMetric测试得到的任务切换时间评分;S表示由ThreadMetric测试得到的,单位时间内系统完成任务切换的数量;Ssys、Susr分别表示在任务切换测试中,由RTOS内核及应用程序完成的工作;H表示由ThreadMetric测试得到的,单位时间内系统完成基准测试的数量;Hsys、Husr分别表示在基准测试中,由RTOS内核及应用程序完成的工作。

加入中断负载后,对ThreadMetric测试的影响分析如下:

(1)S和H测试数值均不同程度受到中断负载影响,数值逐步减小。

(2)H测试中,由于没有调用内核服务,与Husr值相比,Hsys值很小,可以忽略不计。

(3)S测试中,需要内核调度服务,Ssys不可忽略,对Ssys做进一步分解,分离中断影响因素:

其中,Slock表示在任务切换测试中内核关闭中断服务工作,该数值不受中断负载影响;Sunlock表示在任务切换测试中内核开启中断服务工作,该数值受中断负载影响。

令中断负载对系统评分的影响因子为Δ(0<Δ<1),则ThreadMetric测试评分R计算如下:

对上述计算结果的说明如下:

(1)中断影响因子Δ作用于Sunlock、Susr、Hsys、Husrsys值过小可忽略不计。

(2)随着中断负载加大,中断影响因子Δ不断增加测试评分R值将持续递增。

(3)在中断负载不断增加环境下,RTOS的测试评分R值,将与Slock密切相关,即内核关闭中断服务过程越长,R值将越高。

上述结论可较好地解释在图4的ThreadMetric测试中,随着中断负载加大,四个RTOS的“任务切换时间”性能评分均逐步提升,在重中断负载下,uC/OSII 0.52评分优于VxWorks5.4的现象。

由此可见,ThreadMetric虽然通过基准测试减少硬件平台对性能测试的影响,却没有排除中断负载对RTOS内核的干扰。由评分R值可以看出,中断关闭时间越长、中断响应能力越弱的RTOS,在中断负载不断加大的环境下,反而会得到更高的评分,因而以此评价内核性能将有失客观性。

对ThreadMetric测试的修正方法为:在S测试中,随着中断负载的加入,对内核响应中断服务的工作进行补偿评分,从而增加RTOS在测试过程中所获得的分值。修改后的评估模型如下所示:

其中,Sint表示在测试过程中,内核响应中断服务所得到的分数;Ω是一个变换因子,用于将中断服务得到的分数Sint与任务切换得到的分数S适配。

5.3 优化后的实验结果分析

对Rhealstone和ThreadMetric两个Benchmark完成修正后再次对四个RTOS进行测试,结果分别如图5、图6所示,说明如下:

(1)在Rhealstone测试中,系统了消除内核响应中断处理的时间,随着中断频率提高,VxWorks5.4的任务切换时间变化平缓,体现出比uC/OSII 0.52更为稳定的任务切换能力,因而评估结果更优。

图5 修正后的Rhealstone测试

图6 修正后的ThreadMetric测试

(2)在Thread Metric测试中,系统将中断处理作为有效分值计入,随着中断负载提高,VxWorks5.4获得了更多的评分增值,而uC/OSII 0.52由于响应中断数量少,因而获得补偿相对不足,分值提高速度较慢。

6 结论

本文从分析RTOS内核中断响应模型入手,结合对现有Benchmark的实证分析,发现目前的Benchmark不适用于中断负载情况下的内核性能评测。针对这一评估“失真”问题,提出一种中断及任务混合负载下的性能评估方法,通过对Rhealstone和Thread Metric两个典型Benchmark的改造和修正,结合对VxWorks、RTEMS、uC/OSII等系统的评测,结果表明,该评估方法对RTOS内核性能评估更具合理性。

目前,该评估方法仅支持中断及任务两个负载维度,后续将进一步增加对I/O负载的支持,以期对RTOS在更真实的应用工况下开展性能评估。

[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]李孝同.“实践五号”卫星星务管理系统[J].中国空间科学技术,2001,1(4):30-35.

[4]李香,崔刚,杨孝宗,等.探索一号小卫星星务计算机CPU自检方法[J].哈尔滨工业大学学报,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

国防基础科研;载人航天工程软件专项;航天支撑技术基金。

陈磊(1976—),女,信息工程师,主要研究方向为实时操作系统、嵌入式系统、软件测试技术、医疗信息化;蔡铭(1973—),男,工学博士,副教授,主要研究方向为实时操作系统、嵌入式系统、软件测试技术等;史昆,男,硕士生,主要研究方向为实时操作系统、嵌入式系统。E-mail:sm ile_chenl@163.com

2013-03-04

2013-04-23

1002-8331(2014)17-0080-06

CNKI网络优先出版:2013-05-21,http://www.cnki.net/kcms/detail/11.2127.TP.20130521.1027.008.htm l

猜你喜欢

性能指标内核中断
强化『高新』内核 打造农业『硅谷』
沥青胶结料基本高温性能指标相关性研究
基于嵌入式Linux内核的自恢复设计
Linux内核mmap保护机制研究
跟踪导练(二)(5)
千里移防,卫勤保障不中断
储热水箱分层性能指标的研究进展
微生物内核 生态型农资
WebGIS关键性能指标测试技术研究
磁共振成像仪主磁场计量性能指标的选择