2024年4月30日发(作者:)

(19)中华人民共和国国家知识产权局

(12)发明专利说明书

(21)申请号 CN2.7

(22)申请日 2013.02.07

(71)申请人 无锡江南计算技术研究所

地址 214083 江苏省无锡市滨湖区军东新村030号

(72)发明人 陈左宁 程华 程来旺 王礼生 张超容 董国良 秦芳

(74)专利代理机构 北京集佳知识产权代理有限公司

代理人 骆苏华

(51)

G06F11/34

权利要求说明书 说明书 幅图

(10)申请公布号 CN 103106131 A

(43)申请公布日 2013.05.15

(54)发明名称

(57)摘要

一种系统调用功耗的测试方法与测

系统调用功耗的测试方法与测试装

试装置,所述系统调用功耗的测试方法包

括:基于系统在运行过程中执行的程序,

确定所述系统在运行过程中出现系统运行

噪声时,控制测试激励停止获取所述系统

的功耗参数直至所述系统运行噪声结束,

再控制所述测试激励继续获取所述系统的

功耗参数。本发明的技术方案能够降低系

统调用功耗测试时的误差。

法律状态

法律状态公告日

法律状态信息

法律状态

权 利 要 求 说 明 书

1.一种系统调用功耗的测试方法,其特征在于,包括:

基于系统在运行过程中执行的程序,确定所述系统在运行过程中出现系

统运行噪声时,控制测试激励停止获取所述系统的功耗参数直至所述系统运

行噪声结束,再控制所述测试激励继续获取所述系统的功耗参

数。

2.如权利要求1所述的系统调用功耗的测试方法,其特征在于,所述系统在

3.如权利要求2所述的系统调用功耗的测试方法,其特征在于,所述系统调

多次执行基准测试程序;

通过轨迹跟踪方法确定所述基准测试程序执行过程中所调用的系统标准

根据所述概率统计结果,确定测试所采用的相应系统调用测试程序。

函数中包括的每种参数组合出现的概率统计结果;

用测试程序通过如下方式生成:

运行过程中执行的程序至少包括系统调用测试程序,所述测试激励包括每

一个系统调用测试程序。

4.如权利要求3所述的系统调用功耗的测试方法,其特征在于,所述根据所

述概率统计结果,确定测试所采用的相应系统调用测试程序包括:对于每

一个系统调用的系统标准函数,根据其对应的概率统计结果,选取使

率最高的一种参数组合方式,并以此确定测试所采用的相应系

程序。

用频

统调用测试

5.如权利要求2所述的系统调用功耗的测试方法,其特征在于,还包括:在

执行系统调用测试程序之前,统计并记录所述系统空载情况下执行的常规

进程,所述系统运行噪声包括所述系统在运行过程中执行异于所述系

用测试程序的程序、异于所述常规进程的进程,或者执行的所

的数目、启动时间和执行时间中的至少一项异于所述系

的所述常规进程的数目、启动时间和执行时间。

统调

述常规进程

统空载情况下执行

6.如权利要求5所述的系统调用功耗的测试方法,其特征在于,还包括:在

7.如权利要求2所述的系统调用功耗的测试方法,其特征在于,还包括:在

某个系统调用测试程序运行结束前,若其调用了其他程序,则在所述其他

程序执行完毕后,再结束该系统调用测试程序的运行。

执行系统调用测试程序之前,若监测到异于所述常规进程的进程正在运行,

则结束该进程的运行。

8.如权利要求2所述的系统调用功耗的测试方法,其特征在于,所述测试激

9.如权利要求8所述的系统调用功耗的测试方法,其特征在于,还包括:针

10.如权利要求2所述的系统调用功耗的测试方法,其特征在于,所述系统在

运行过程中执行的系统调用测试程序的类型包括进程控制、进程间通

用户管理、内存管理、网络管理、文件系统控制、系统控制和

中的至少一种。

对所述测试激励中的某一个系统调用测试程序的相关测量结束后,重启系

统后再进行下一个系统调用测试程序的相关测量。

励中的每一个系统调用测试程序是依次执行的。

信、

socket控制

11.一种系统调用功耗的测试装置,其特征在于,包括:

监测单元,用以监测系统在运行过程中执行的程序;

控制单元,用以在所述监测单元确定所述系统在运行过程中出现系统运

行噪声时,控制测试激励停止获取所述系统的功耗参数直至所述系统运行噪

声结束,再控制所述测试激励继续获取所述系统的功耗参数。

12.如权利要求11所述的系统调用功耗的测试装置,其特征在于,所述系统在

运行过程中执行的程序至少包括系统调用测试程序,所述测试激励包

一个系统调用测试程序。 括每

13.如权利要求12所述的系统调用功耗的测试装置,其特征在于,还包括适于

第一执行单元,适于多次执行基准测试程序;

第一统计单元,适于通过轨迹跟踪方法确定所述基准测试程序执行过程

确定单元,适于根据所述概率统计结果,确定测试所采用的相应系统调

14.如权利要求13所述的系统调用功耗的测试装置,其特征在于,所述确定单

元对于每一个系统调用的系统标准函数,根据其对应的概率统计结果,

取使用频率最高的一种参数组合方式,并以此确定测试所采用

调用测试程序。

用测试程序。

生成测试所采用的系统调用测试程序的生成单元,所述生成单元包括:

中所调用的系统标准函数中包括的每种参数组合出现的概率统计结果;

的相应系统

15.如权利要求12所述的系统调用功耗的测试装置,其特征在于,还包括第二

统计单元,适于在执行系统调用测试程序之前,统计并记录所述系统

情况下执行的常规进程,所述系统运行噪声包括所述系统在运

行异于所述系统调用测试程序的程序、异于所述常规进

行的所述常规进程的数目、启动时间和执行时间

统空载情况下执行的所述常规进程的数目、

空载

行过程中执

程的进程,或者执

中的至少一项异于所述系

启动时间和执行时间。

16.如权利要求15所述的系统调用功耗的测试装置,其特征在于,还包括第一

结束单元,适于在执行系统调用测试程序之前,若所述监测单元监测

于所述常规进程的进程正在运行,结束该进程的运行。 到异

17.如权利要求12所述的系统调用功耗的测试装置,其特征在于,还包括第二

结束单元,适于在某个系统调用测试程序运行结束前,若所述监测单

测到其调用了其他程序,则在所述其他程序执行完毕后,再结

用测试程序的运行。

元监

束该系统调

18.如权利要求12所述的系统调用功耗的测试装置,其特征在于,还包括第二

执行单元,适于依次执行所述测试激励中的每一个系统调用测试程序。

19.如权利要求18所述的系统调用功耗的测试装置,其特征在于,还包括系统

重启控制单元,适于在针对所述测试激励

相关测量结束后,控制重启系统后

测量。

中的某一个系统调用测试程序的

再进行下一个系统调用测试程序的相关

20.如权利要求12所述的系统调用功耗的测试装置,其特征在于,所述系统在

运行过程中执行的系统调用测试程序的类型包括进程控制、进程间通

用户管理、内存管理、网络管理、文件系统控制、系统控制和

中的至少一种。

信、

socket控制

说 明 书

本申请要求于2012年2月15日提交中国国家知识产权局、申请号为

2.3、发明名称为“基于概率统计及噪声规避的系统调用功耗的

试方法”的中国专利申请的优先权,其全部内容通过引用结合在本申

请中。

技术领域

本发明涉及计算机技术领域,尤其是一种系统调用功耗的测试方法和测

背景技术

目前,对于系统功耗评价与性能分析已成为计算机技术中的一个重要领

域,使系统功耗测试成为必要。掌握计算机系统在运行时的能量消耗特征,

准确获取能量消耗数据信息是面向低功耗系统研究的前提,有助于对

功耗的改进。

试装置。

系统低

系统功耗的产生主要有以下几个方面:a)中央处理器、微处理器等硬件

设备,也就是硬件功耗,目前在国内外对硬件功耗的测试已经达到成熟的阶

段;b)操作系统;c)应用程序。后两者可统称为软件功耗。目前,

软件功耗的测试已经有深入的研究,提出了一些功耗测试工具

而国内对软件功耗的测试才刚刚起步。在软件功耗测试

系统调用功耗测试尤其重要,这有助于研究应用

研究降低系统运行时功耗和改进系统功耗

国外对

以及测试基准,

中,对于操作系统的

程序和操作系统运行时功耗,

管理机制的方法。

为了实现系统调用功耗的测试,一方面要使用合适的测试激励执行系统

调用程序,并记录当前系统调用程序的名称、进入时刻、退出时刻,另一方

面要精确地记录系统调用程序运行期间系统的功耗值。测试激励是施

统的负载,包括:1)宏基准测试,

2)微基准测试,指以基于

系统负载。但前者运

部分系统调用。

模拟值,

误差。

加于系

指从应用级别模拟典型应用作为系统负载;

文件级的输入输出(I/O,Input/Output)操作作为

行过程中不便于定位系统调用,后者则无法覆盖系统大

目前的相关研究均基于功耗模拟器如Wattch、CACTI等得出的

虽然可以获得较全面的功耗数据,但模拟结果一般存在10%-20%的

鉴于上述情况,如何降低系统调用功耗测试时的误差成为目前亟待解决

发明内容

本发明解决的问题是如何降低系统调用功耗测试时的误差。

为解决上述问题,本发明的技术方案提供了一种系统调用功耗的测试方

基于系统在运行过程中执行的程序,确定所述系统在运行过程中出现系

可选的,所述系统在运行过程中执行的程序至少包括系统调用测试程序,

可选的,所述系统调用测试程序通过如下方式生成:

所述测试激励包括每一个系统调用测试程序。

法,包括:

的问题之一。

统运行噪声时,控制测试激励停止获取所述系统的功耗参数直至所述系统运

行噪声结束,再控制所述测试激励继续获取所述系统的功耗参数。

多次执行基准测试程序;

通过轨迹跟踪方法确定所述基准测试程序执行过程中所调用的系统标准

根据所述概率统计结果,确定测试所采用的相应系统调用测试程序。

可选的,所述根据所述概率统计结果,确定测试所采用的相应系统调用

函数中包括的每种参数组合出现的概率统计结果;

测试程序包括:对于每一个系统调用的系统标准函数,

计结果,选取使用频率最高的一种参数组合方式,

相应系统调用测试程序。

根据其对应的概率统

并以此确定测试所采用的

可选的,所述系统调用功耗的测试方法,还包括:在执行系统调用测试

程序之前,统计并记录所述系统空载情况下执行的常规进程,所述系统运行

噪声包括所述系统在运行过程中执行异于所述系统调用测试程序的程

于所述常规进程的进程,或者执行的所述常规进程的数目、启

时间中的至少一项异于所述系统空载情况下执行的所述

动时间和执行时间。

序、异

动时间和执行

常规进程的数目、启

可选的,所述系统调用功耗的测试方法,还包括:在执行系统调用测试

可选的,所述系统调用功耗的测试方法,还包括:在某个系统调用测试

程序运行结束前,若其调用了其他程序,则在所述其他程序执行完毕后,再

结束该系统调用测试程序的运行。

程序之前,若监测到异于所述常规进程的进程正在运行,则结束该进程的运

行。

可选的,所述测试激励中的每一个系统调用测试程序是依次执行的。

可选的,所述系统调用功耗的测试方法,还包括:对于所述测试激励中

可选的,所述系统在运行过程中执行的系统调用测试程序的类型包括进

为解决上述问题,本发明的技术方案还提供了一种系统调用功耗的测试

监测单元,用以监测系统在运行过程中执行的程序;

控制单元,用以在所述监测单元确定所述系统在运行过程中出现系统运

与现有技术相比,本发明技术方案至少具有以下优点:

通过在系统功耗测试时,对系统运行过程中的程序进行监测,若监测到

装置,包括:

的某一个系统调用测试程序的相关测量结束后,重启系统后再进行下一个系

统调用测试程序的相关测量。

程控制、进程间通信、用户管理、内存管理、网络管理、文件系统控制、系

统控制和套接字(socket)控制中的至少一种。

行噪声时,控制测试激励停止获取所述系统的功耗参数直至所述系统运行噪

声结束,再控制所述测试激励继续获取所述系统的功耗参数。

系统运行噪声,则控制测试激励暂停获取所述系统的功耗参数直至所述系统

运行噪声结束,从而实现了噪声规避的测试激励,并且获取的功耗参

为系统自身运行所得,而非模拟机的模拟结果,能有效降低系

误差,极大提高功耗参数值的精度,进而提高系统功耗

数值均

统功耗测试的

测试的质量。

通过多次执行基准测试程序,并确定所述基准测试程序执行过程中所调

用的系统标准函数中包括的每种参数组合出现的概率统计结果,根据所述概

率统计结果生成测试所采用的相应系统调用测试程序,能够使该系统

试程序在执行过程中的系统调用输入参数与所述概率统计结果

测得的系统调用功耗构成与实际应用相符,从而提高系

进一步降低系统功耗测试的误差。

调用测

相符,以保证

统调用测试的准确性,

附图说明

图1是本发明实施方式提供的系统调用功耗的测试方法的流程示意图;

图2是本发明实施例的系统调用功耗的测试方法的流程示意图;

图3是本发明实施例的系统调用功耗的测试装置的结构示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图

对本发明的具体实施方式做详细的说明。在以下描述中阐述了具体细节以便

于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方

施,本领域技术人员可以在不违背

发明不受下面公开的具体实

式来实

本发明内涵的情况下做类似推广。因此本

施方式的限制。

为了降低系统调用功耗测试时的误差,发明人考虑,可以在测试过程中,

通过规避由于操作系统内部运行机制复杂性和不确定性引入的噪声,以实现

系统噪声规避的测量环境维护。图1是本发明实施方式提供的系统调

的测试方法的流程示意图,下面结合图1详细说明。所述系统用功耗

调用功耗的测

试方法包括:

步骤S1,运行系统;

步骤S2,基于系统在运行过程中执行的程序,确定所述系统在运行过程

中出现系统运行噪声时,控制测试激励停止获取所述系统的功耗参数直至所

述系统运行噪声结束,再控制所述测试激励继续获取所述系统的功耗

参数。

本发明实施方式中,步骤S1中所述的系统为待进行系统调用功耗测试的

系统,可以包括:计算机(或虚拟机)以及其中安装的Linux操作系统、

系列的操作系统等。在系统运行的初期,即计算机(可以为虚

作系统直至用户登录后,不进行任何其它操作,即操作

此时执行的程序相对应的进程可以称为常规进程。

后,可以通过执行系统调用的测试程序,对操作

系统调用功耗的测试过程。在系统调用测

录当前系统调用测试程序的名称、

该系统调用测试程序运行期

Windows

拟机)加载操

系统处于空载阶段,

在操作系统空载一段时间

系统施加负载,此时便启动

试程序的执行过程中,除了需要记

进入时刻和退出时刻,还需要精确地记录

间系统的功耗值(功耗参数)。

具体实施时,步骤S2中所述的系统运行噪声包括所述系统在运行过程中

执行异于所述系统调用测试程序的程序,或者异于所述常规进程的进程,或

者执行的所述常规进程的数目、启动时间和执行时间中的至少一项异

系统空载情况下执行的所述常规进程的数目、启动时间和执行

述系统运行噪声的识别将在

于所述

时间。关于所

下面具体实施例中作进一步说明。

本发明实施方式中,步骤S2中所述的测试激励针对每一个系统调用的测

试程序,所述系统调用测试程序又可以称为激励程序,所有的激励程序构成

激励程序集合,在实际测试过程中,每次只取一个激励程序运行,可

运行某个激励程序,循环运行的次数可以根据实际情况进行确

行结束后再运行下一个,即所述激励程序集合中的每一

行的,如此便能够较准确地测量到每一个系统调

整得出各种系统调用的功耗图谱。在具体

括运行的次序和次数)是在测试管

进行的。激励程序运行过程

励中的某一个激励程

后,可以通过

上一轮

以循环

定,上一个运

个激励程序是依次执

用的功耗情况,从而可以完

实施时,所有激励程序的运行(包

理程序(或称为测试驱动程序)的驱动下

中会进行相关的功耗值测量,在针对所述测试激

序的相关测量结束后,即针对某个系统调用的测量结束

重启系统后再进行下一个激励程序的相关测量,从而能够排除

测量对本轮测量的影响,提高测试的准确性。在一具体实施例中,对

在实际实施时,通过本发明实施方式提供的系统调用测试方法,结合外

本发明实施方式中,将上述激励程序集合称为测试激励,当系统调用功

耗的测试过程启动后,所述系统在运行过程中执行的程序至少包括系统调用

测试程序,所述测试激励包括每一个系统调用测试程序,所述测试激

或暂停获取所述系统的功耗参数,是针对每一个系统调用测试

试过程而言的。在具体实施时,所述测试激励获取所述

可以通过能耗记录程序实现。

部高精度功率测量设备,能够完整得到180个系统调用的功耗图谱,这在国

内外尚属首次,对研究优化系统功耗具有重要意义。

于每一个激励程序,都可以在针对上一个激励程序的相关测量结束后,由测

试管理程序控制重新启动系统之后再进行测试。

励获取

程序的功耗测

系统的功耗参数具体

下面以具体实施例对上述系统调用功耗的测试方法作详细说明。

本发明实施例的系统调用功耗的测试方法的工作流程如图2所示:

首先执行步骤S301,系统运行。在本实施例中,以所述系统具体是Linux

在系统开始运行后,执行步骤S302,监测系统运行过程中执行的程序。

本实施例中,计算机从加载操作系统到用户登录后,不进行任何其它操

为了能够给后续步骤识别所述系统运行噪声提供依据,就需要在执行系

在实际实施时,通过使用Linux操作系统自带的ps程序便可以统计出常

操作系统为例进行说明,对于其他操作系统的实施,可以参考本实施例的实

现方式进行。

作,即操作系统空载,一般保持30分钟左右,在操作系统空载情况下处于

跃的进程为所述常规进程。

统调用测试程序之前,获取所述常规进程的具体信息,即执行步骤S303,

计并记录所述系统空载情况下执行的常规进程。

规进程(操作系统空载阶段活跃的进程)的详细信息,统计结果可以记为常

规进程集合。在所述常规进程集合中,可以记录每一个常规进程的名

动时间、结束时间、执行时间、常规进程的数目等信息。 称、启

需要说明的是,所述常规进程的相关信息并不局限于在每次进行系统调

用功耗的测试前都去统计和记录,在已经获得常规进程的信息情况下,可以

将这些信息存储起来,那么在以后进行系统调用功耗的测试时,就不

次进行常规进程的统计与记录的步骤,在测试环境不变的前提

同样的操作系统进行测试),根据存储的常规进程的信

统运行噪声的依据。

需要再

下(例如采用

息即可作为识别所述系

在获得常规进程的相关信息后,开始进行系统调用功耗的测试前,执行

步骤S304,判断是否监测到异于所述常规进程的进程正在运行,是则执行

骤S305,结束该进程的运行,否则执行

步骤S306。

本实施例中,步骤S304以及步骤S305是在执行系统调用测试程序前的

一个准备阶段,在实际实施时,为操作系统施加负载前(即启动系统调用功

耗的测试前),如果监测到有常规进程集合以外的其它进程正在运行

进程以外的进程,可以记为噪声集合之一),可以使用操作系

序使之不再运行。通过该准备阶段,能够避免常规进程

统调用的功耗参数值,有效去除噪声干扰,提高

在其他实施例中,也可以不进行该准备阶

序,以开始系统调用功耗测试的过

(即常规

统自带的kill程

外的其他进程影响系

系统调用功耗测试的准确性。

段,而是直接执行系统调用测试程

程。

若步骤S304未监测到异于所述常规进程的进程正在运行,则执行步骤

在执行步骤S306时,监测系统运行过程中执行的程序的操作仍然在持续

进行着,即对于步骤S302的执行并未结束,图2所示的步骤S307为步骤

的延续。

S306,执行系统调用测试程序。

S302

执行步骤S307,继续监测系统运行过程中执行的程序。

在系统调用测试程序的执行过程中,执行步骤S308,判断是否出现系统

运行噪声,是则执行步骤S309,否则持续步骤S307的执行,并控制测试激

获取所述系统的功耗参数。

如前所述,所述系统运行噪声可以是系统运行过程中执行了异于所述系

统调用测试程序的程序或是异于所述常规进程的进程,例如系统调用测试程

序可能会调用其他程序做记录一些必要信息的工作,该其他程序的执

响系统调用功耗测试的准确性。 行会影

此外,所述系统运行噪声还可以是执行的所述常规进程的数目、启动时

如前所述,常规进程集合中进程的数目、启动时间、执行时间等是可以

使用系统自带程序进行统计的,如果这三项指标中的任一项发生了不合理的

变动,称之为异常。这种异常虽然发生的概率很低,但也存在发生的

一旦发生异常便可能影响测试的精度。所述异常的评价标准分

情况下执行的所述常规进程的数目、启动时间和执行时

功耗的测试过程中监测到常规进程的任一项参数

的值,则认为发生异常,此时需要停止测

试的过程中没有异常。例如:如果

20个,而在系统调用功耗

数目不是20个,则

测试误差,即

间和执行时间中的至少一项异于所述系统空载情况下执行的所述常规进程的

数目、启动时间和执行时间。

可能性,

别为系统空载

间,只要在系统调用

值异于系统空载情况下相应

试,排除异常后重新开始,保证测

系统空载情况下执行的常规进程的数目为

的测试过程中,某个时刻监测到执行的常规进程的

说明发生了异常,此时需要通过以下步骤进行处理以避免

进行噪声规避的操作。

当通过步骤S308判断出现了系统运行噪声时,则执行步骤S309,控制测

在每一个系统调用测试程序的执行过程中,会结合外部高精度功率测量

设备,不断获取系统的功耗参数,如果该过程中存在系统运行噪声,势必对

试激励停止获取所述系统的功耗参数。

获取的功耗参数的值带来影响,产生测试误差,此时可以通知激励程

待系统运行噪声消失后再执行测试,以确保测试的精确性。所

具体可以通过Linux操作系统自带的sleep程序实现,

常记录仍然在持续进行,但可以根据sleep程序

分所需获取的功耗参数。

序,等

述通知的操作

此时对于功耗参数的正

开始执行时间和结束时间来区

步骤S309的执行过程中,还执行步骤S310,判断系统运行噪声是否结束,

是则执行步骤S311,控制所述测试激励继续获取所述系统的功耗参数,否

仍然继续步骤S309的执行。在实际实施时,可以通过每隔预定时间

所有执行的程序(运行的进程)的

则可以续接停止测试时的功

行当前系统调用测试

监测系统

情况,一旦判断出已不存在系统运行噪声,

耗参数,继续获取新的功耗参数,也可以重新进

程序相对应功耗参数的获取。

如前所述,激励程序(即系统调用测试程序)每次只取一个运行,上一

个结束后才运行下一个,直到所有的激励程序运行结束。本实施例中,在某

个系统调用测试程序运行结束前,若其调用了其他程序,则在所述其

执行完毕后,再结束该系统调用测试程序的运行。例如:在实

通常当前激励程序运行结束前该程序会主动调用其它程

工作,这些其它程序虽然属于噪声集合中的系统

功耗测试过程中也有其特定的作用,因此

而是等待所述其它程序执行结束,

下一个激励程序。

他程序

际测试过程中,

序做记录必要信息的

运行噪声,但是在系统调用

不需要使用kill程序使之不再运行,

当前激励程序才算运行结束,然后再运行

在本实施例中,用于系统调用功耗测试的系统调用测试程序区别于现有

技术中所采用的系统调用测试程序,本实施例所提供的系统调用测试程序具

体通过如下方式生成:

多次执行基准测试程序;

通过轨迹跟踪(Trace)方法确定所述基准测试程序执行过程中所调用的

根据所述概率统计结果,确定测试所采用的相应系统调用测试程序。

本领域技术人员知晓,基准测试程序(benchmark测试程序),就是用来

评测系统某一特性所采用的一系列标准的具有代表性的应用程序,例如

SPECCPU2000、LTP(Linux Test Project)等。本实施例通过多次执行一些

为典型的benchmark测试程序,以统计分析出系统调用过程中的一些

律,从而构建出更符合概率统计规律的测试程序。

系统标准函数中包括的每种参数组合出现的概率统计结果;

内在规

系统调用是供用户空间程序使用的内核函数的名称,用户无法直接调用

系统调用,一般使用接口函数来间接运行系统调用。因此,测试是通过在程

序中调用系统标准函数执行对应的系统调用程序。由于对于系统标准

能存在多种参数组合输入,而一些典型的benchmark测试程序

函数的参数组合,每个标准函数的执行都有系统调用的

施例中,通过预先多次执行benchmark测试程序,

得到标准函数的每种参数组合出现的概率,在此

程序,使得该程序执行过程中的系统调用

的出现频率相符,以保证测得的系

高系统调用测试的准确性,

函数可

则覆盖了标准

参与。因此,在本实

并使用Trace方法统计分析

基础上,编写系统调用测试

输入参数与使用Trace方法统计得出

统调用功耗构成与实际应用相符,从而提

进一步降低系统功耗测试的误差。

在本实施例中,所述Trace方法可以采用Linux操作系统自带的strace程

序实现。本领域技术人员知晓,strace是Linux操作系统环境下的一款程序

试工具,常用来跟踪进程执行时的系统调用和所接收的信号。在

Linux操作系

设备(比如读

统环境下,进程不能直接访问硬件设备,当进程需要访问硬件

取磁盘文件,接收网络数据等等)时,必须由用户态模

通过系统调用访问硬件设备。strace可以跟踪到

括参数、返回值和执行消耗的时间。

式切换至内核态模式,

一个进程产生的系统调用,包

对于标准函数的参数组合的概率统计,可以使用strace工具对例如NPB、

SPECweb、Parsec、HPCC、TPC-C等基准测试程序的执行过程中的系统调

情况进行跟踪和统计,统计出在这些Benchmark执行过程中,每种

出现的概率,并根据统计结果,确定测量用例的构成,以保证

用能耗构成与实际应用相符。

参数组合

测得的系统调

在本实施例中,所述根据所述概率统计结果,确定测试所采用的相应系

对于每一个系统调用的系统标准函数,根据其对应的概率统计结果,选

上述方式即对于每一个系统调用,根据概率统计结果选择使用概率最高

需要说明的是,本实施例通过概率统计方法确定测试用例的构成,生成

相应的系统调用测试程序,由此能够保证测得的系统调用能耗构成与实际应

用相符,在其他实施例中,也可以直接采用一些基准测试程序进行系

功耗的测试。

的一种调用方式,并以此开发最简单的测试程序,该程序的最终目的为执行

该种方式的系统调用。

取使用频率最高的一种参数组合方式,并以此确定测试所采用的相应系统调

用测试程序。

统调用测试程序具体可以采用以下方式:

统调用

本实施例中,所述系统在运行过程中执行的系统调用测试程序的类型可

以包括进程控制、进程间通信、用户管理、内存管理、网络管理、文件系统

控制、系统控制和套接字(socket)控制中的至少一种。在系统调用

际测试过程中,上述几种类型的系统调用测试程序分别对应实

的类型,其包含的系统调用函数名称如下表所示:

功耗的实

际的系统调用

对应于上述系统调用功耗的测试方法,本发明实施例还提供一种系统调

监测单元101,用以监测系统在运行过程中执行的程序;

控制单元102,用以在所述监测单元101确定所述系统在运行过程中出现

系统运行噪声时,控制测试激励停止获取所述系统的功耗参数直至所述系统

运行噪声结束,再控制所述测试激励继续获取所述系统的功耗参数,

制单元102与监测单元101相连。

用功耗的测试装置。图3是本发明实施例提供的系统调用功耗的测试装置的

结构示意图,如图3所示,所述系统调用功耗的测试装置包括:

其中控

本实施例中,所述系统在运行过程中执行的系统调用测试程序的类型包

括进程控制、进程间通信、用户管理、内存管理、网络管理、文件系统控制、

系统控制和socket控制中的至少一种。具体实施时,所述系统在运

执行的程序至少包括系统调用测试程序,所述测试激励包括每

测试程序。

行过程中

一个系统调用

本实施例中,所述系统调用功耗的测试装置还包括适于生成测试所采用

的系统调用测试程序的生成单元100,所述生成单元100包括:第一执行单

100a,适于多次执行基准测试程序;第一统计单元100b,适于通过

方法确定所述基准测试程序执行过程中所调用的系统标准函数

参数组合出现的概率统计结果;确定单元100c,适于

确定测试所采用的相应系统调用测试程序。

轨迹跟踪

中包括的每种

根据所述概率统计结果,

具体实施时,所述确定单元100c对于每一个系统调用的系统标准函数,

本实施例中,所述系统调用功耗的测试装置还包括第二统计单元103,适

于在执行系统调用测试程序之前,统计并记录所述系统空载情况下执行的常

规进程,所述系统运行噪声包括所述系统

用测试程序的程序、异于所述常规

数目、启动时间和执行时间

述常规进程的数目、

根据其对应的概率统计结果,选取使用频率最高的一种参数组合方式,并以

此确定测试所采用的相应系统调用测试程序。

在运行过程中执行异于所述系统调

进程的进程,或者执行的所述常规进程的

中的至少一项异于所述系统空载情况下执行的所

启动时间和执行时间。

所述系统调用功耗的测试装置还包括第一结束单元104,适于在执行系统

所述系统调用功耗的测试装置还包括第二结束单元105,适于在某个系统

调用测试程序运行结束前,若所述监测单元101监测到其调用了其他程序,

则在所述其他程序执行完毕后,再结束该系统调用测试程序的运行。

调用测试程序之前,若所述监测单元101监测到异于所述常规进程的进程正

在运行,结束该进程的运行。

所述系统调用功耗的测试装置还包括第二执行单元106,适于依次执行所

此外,所述系统调用功耗的测试装置还可以包括系统重启控制单元(图3

中未示出),适于在针对所述测试激励中的某一个系统调用测试程序的相关

量结束后,控制重启系统后再进行下一个系统调用测试程序的相关测

述测试激励中的每一个系统调用测试程序。

量。

所述系统调用功耗的测试装置的具体实施可以参考所述系统调用功耗的

本领域技术人员可以理解,实现上述实施例中的系统调用功耗的测试装

置的全部或部分是可以通过程序来指令相关的硬件来完成,所述的程序可以

存储于计算机可读存储介质中,所述存储介质可以是ROM、RAM、

盘等。

测试方法的实施,在此不再赘述。

磁碟、光

本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任

何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的

方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡

离本发明技术方案的内容,依据本

简单修改、等同变化及修饰,

是未脱

发明的技术实质对以上实施例所作的任何

均属于本发明技术方案的保护范围。