CN103106131B - 系统调用功耗的测试方法与测试装置 - Google Patents
系统调用功耗的测试方法与测试装置 Download PDFInfo
- Publication number
- CN103106131B CN103106131B CN201310049979.7A CN201310049979A CN103106131B CN 103106131 B CN103106131 B CN 103106131B CN 201310049979 A CN201310049979 A CN 201310049979A CN 103106131 B CN103106131 B CN 103106131B
- Authority
- CN
- China
- Prior art keywords
- power consumption
- test procedure
- system call
- test
- testing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Debugging And Monitoring (AREA)
Abstract
一种系统调用功耗的测试方法与测试装置,所述系统调用功耗的测试方法包括:基于系统在运行过程中执行的程序,确定所述系统在运行过程中出现系统运行噪声时,控制测试激励停止获取所述系统的功耗参数直至所述系统运行噪声结束,再控制所述测试激励继续获取所述系统的功耗参数。本发明的技术方案能够降低系统调用功耗测试时的误差。
Description
本申请要求于2012年2月15日提交中国国家知识产权局、申请号为201210033908.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,监测系统运行过程中执行的程序。
本实施例中,计算机从加载操作系统到用户登录后,不进行任何其它操作,即操作系统空载,一般保持30分钟左右,在操作系统空载情况下处于活跃的进程为所述常规进程。
为了能够给后续步骤识别所述系统运行噪声提供依据,就需要在执行系统调用测试程序之前,获取所述常规进程的具体信息,即执行步骤S303,统计并记录所述系统空载情况下执行的常规进程。
在实际实施时,通过使用Linux操作系统自带的ps程序便可以统计出常规进程(操作系统空载阶段活跃的进程)的详细信息,统计结果可以记为常规进程集合。在所述常规进程集合中,可以记录每一个常规进程的名称、启动时间、结束时间、执行时间、常规进程的数目等信息。
需要说明的是,所述常规进程的相关信息并不局限于在每次进行系统调用功耗的测试前都去统计和记录,在已经获得常规进程的信息情况下,可以将这些信息存储起来,那么在以后进行系统调用功耗的测试时,就不需要再次进行常规进程的统计与记录的步骤,在测试环境不变的前提下(例如采用同样的操作系统进行测试),根据存储的常规进程的信息即可作为识别所述系统运行噪声的依据。
在获得常规进程的相关信息后,开始进行系统调用功耗的测试前,执行步骤S304,判断是否监测到异于所述常规进程的进程正在运行,是则执行步骤S305,结束该进程的运行,否则执行步骤S306。
本实施例中,步骤S304以及步骤S305是在执行系统调用测试程序前的一个准备阶段,在实际实施时,为操作系统施加负载前(即启动系统调用功耗的测试前),如果监测到有常规进程集合以外的其它进程正在运行(即常规进程以外的进程,可以记为噪声集合之一),可以使用操作系统自带的kill程序使之不再运行。通过该准备阶段,能够避免常规进程外的其他进程影响系统调用的功耗参数值,有效去除噪声干扰,提高系统调用功耗测试的准确性。在其他实施例中,也可以不进行该准备阶段,而是直接执行系统调用测试程序,以开始系统调用功耗测试的过程。
若步骤S304未监测到异于所述常规进程的进程正在运行,则执行步骤S306,执行系统调用测试程序。
在执行步骤S306时,监测系统运行过程中执行的程序的操作仍然在持续进行着,即对于步骤S302的执行并未结束,图2所示的步骤S307为步骤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)控制中的至少一种。在系统调用功耗的实际测试过程中,上述几种类型的系统调用测试程序分别对应实际的系统调用的类型,其包含的系统调用函数名称如下表所示:
对应于上述系统调用功耗的测试方法,本发明实施例还提供一种系统调用功耗的测试装置。图3是本发明实施例提供的系统调用功耗的测试装置的结构示意图,如图3所示,所述系统调用功耗的测试装置包括:
监测单元101,用以监测系统在运行过程中执行的程序;
控制单元102,用以在所述监测单元101确定所述系统在运行过程中出现系统运行噪声时,控制测试激励停止获取所述系统的功耗参数直至所述系统运行噪声结束,再控制所述测试激励继续获取所述系统的功耗参数,其中控制单元102与监测单元101相连。
本实施例中,所述系统在运行过程中执行的系统调用测试程序的类型包括进程控制、进程间通信、用户管理、内存管理、网络管理、文件系统控制、系统控制和socket控制中的至少一种。具体实施时,所述系统在运行过程中执行的程序至少包括系统调用测试程序,所述测试激励包括每一个系统调用测试程序。
本实施例中,所述系统调用功耗的测试装置还包括适于生成测试所采用的系统调用测试程序的生成单元100,所述生成单元100包括:第一执行单元100a,适于多次执行基准测试程序;第一统计单元100b,适于通过轨迹跟踪方法确定所述基准测试程序执行过程中所调用的系统标准函数中包括的每种参数组合出现的概率统计结果;确定单元100c,适于根据所述概率统计结果,确定测试所采用的相应系统调用测试程序。
具体实施时,所述确定单元100c对于每一个系统调用的系统标准函数,根据其对应的概率统计结果,选取使用频率最高的一种参数组合方式,并以此确定测试所采用的相应系统调用测试程序。
本实施例中,所述系统调用功耗的测试装置还包括第二统计单元103,适于在执行系统调用测试程序之前,统计并记录所述系统空载情况下执行的常规进程,所述系统运行噪声包括所述系统在运行过程中执行异于所述系统调用测试程序的程序、异于所述常规进程的进程,或者执行的所述常规进程的数目、启动时间和执行时间中的至少一项异于所述系统空载情况下执行的所述常规进程的数目、启动时间和执行时间。
所述系统调用功耗的测试装置还包括第一结束单元104,适于在执行系统调用测试程序之前,若所述监测单元101监测到异于所述常规进程的进程正在运行,结束该进程的运行。
所述系统调用功耗的测试装置还包括第二结束单元105,适于在某个系统调用测试程序运行结束前,若所述监测单元101监测到其调用了其他程序,则在所述其他程序执行完毕后,再结束该系统调用测试程序的运行。
所述系统调用功耗的测试装置还包括第二执行单元106,适于依次执行所述测试激励中的每一个系统调用测试程序。
此外,所述系统调用功耗的测试装置还可以包括系统重启控制单元(图3中未示出),适于在针对所述测试激励中的某一个系统调用测试程序的相关测量结束后,控制重启系统后再进行下一个系统调用测试程序的相关测量。
所述系统调用功耗的测试装置的具体实施可以参考所述系统调用功耗的测试方法的实施,在此不再赘述。
本领域技术人员可以理解,实现上述实施例中的系统调用功耗的测试装置的全部或部分是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质可以是ROM、RAM、磁碟、光盘等。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
Claims (14)
1.一种系统调用功耗的测试方法,其特征在于,包括:
基于系统在运行过程中执行的程序,确定所述系统在运行过程中是否出现系统运行噪声;
在确定所述系统在运行过程中出现系统运行噪声时,控制测试激励停止获取所述系统的功耗参数直至所述系统运行噪声结束,再控制所述测试激励继续获取所述系统的功耗参数;
所述系统在运行过程中执行的程序至少包括系统调用测试程序,所述测试激励包括每一个系统调用测试程序;
在执行系统调用测试程序之前,统计并记录所述系统空载情况下执行的常规进程,所述系统运行噪声包括所述系统在运行过程中执行异于所述系统调用测试程序的程序、异于所述常规进程的进程,或者执行的所述常规进程的数目、启动时间和执行时间中的至少一项异于所述系统空载情况下执行的所述常规进程的数目、启动时间和执行时间;
所述常规进程为系统处于空载状态时执行的程序相对应的进程。
2.如权利要求1所述的系统调用功耗的测试方法,其特征在于,所述系统调用测试程序通过如下方式生成:
多次执行基准测试程序;
通过轨迹跟踪方法确定所述基准测试程序执行过程中所调用的系统标准函数中包括的每种参数组合出现的概率统计结果;
根据所述概率统计结果,确定测试所采用的相应系统调用测试程序;
所述根据所述概率统计结果,确定测试所采用的相应系统调用测试程序包括:对于每一个系统调用的系统标准函数,根据其对应的概率统计结果,选取使用频率最高的一种参数组合方式,并以此确定测试所采用的相应系统调用测试程序。
3.如权利要求1所述的系统调用功耗的测试方法,其特征在于,还包括:在执行系统调用测试程序之前,若监测到异于所述常规进程的进程正在运行,则结束该进程的运行。
4.如权利要求1所述的系统调用功耗的测试方法,其特征在于,还包括:在某个系统调用测试程序运行结束前,若其调用了其他程序,则在所述其他程序执行完毕后,再结束该系统调用测试程序的运行。
5.如权利要求1所述的系统调用功耗的测试方法,其特征在于,所述测试激励中的每一个系统调用测试程序是依次执行的。
6.如权利要求5所述的系统调用功耗的测试方法,其特征在于,还包括:针对所述测试激励中的某一个系统调用测试程序的相关测量结束后,重启系统后再进行下一个系统调用测试程序的相关测量。
7.如权利要求1所述的系统调用功耗的测试方法,其特征在于,所述系统在运行过程中执行的系统调用测试程序的类型包括进程控制、进程间通信、用户管理、内存管理、网络管理、文件系统控制、系统控制和socket控制中的至少一种。
8.一种系统调用功耗的测试装置,其特征在于,包括:
监测单元,用以监测系统在运行过程中执行的程序,确定所述系统在运行过程中是否出现系统运行噪声;
控制单元,用以在所述监测单元确定所述系统在运行过程中出现系统运行噪声时,控制测试激励停止获取所述系统的功耗参数直至所述系统运行噪声结束,再控制所述测试激励继续获取所述系统的功耗参数;
所述系统在运行过程中执行的程序至少包括系统调用测试程序,所述测试激励包括每一个系统调用测试程序;
第二统计单元,适于在执行系统调用测试程序之前,统计并记录所述系统空载情况下执行的常规进程,所述系统运行噪声包括所述系统在运行过程中执行异于所述系统调用测试程序的程序、异于所述常规进程的进程,或者执行的所述常规进程的数目、启动时间和执行时间中的至少一项异于所述系统空载情况下执行的所述常规进程的数目、启动时间和执行时间;
所述常规进程为系统处于空载状态时执行的程序相对应的进程。
9.如权利要求8所述的系统调用功耗的测试装置,其特征在于,还包括适于生成测试所采用的系统调用测试程序的生成单元,所述生成单元包括:
第一执行单元,适于多次执行基准测试程序;
第一统计单元,适于通过轨迹跟踪方法确定所述基准测试程序执行过程中所调用的系统标准函数中包括的每种参数组合出现的概率统计结果;
确定单元,适于根据所述概率统计结果,确定测试所采用的相应系统调用测试程序;
所述确定单元对于每一个系统调用的系统标准函数,根据其对应的概率统计结果,选取使用频率最高的一种参数组合方式,并以此确定测试所采用的相应系统调用测试程序。
10.如权利要求8所述的系统调用功耗的测试装置,其特征在于,还包括第一结束单元,适于在执行系统调用测试程序之前,若所述监测单元监测到异于所述常规进程的进程正在运行,结束该进程的运行。
11.如权利要求8所述的系统调用功耗的测试装置,其特征在于,还包括第二结束单元,适于在某个系统调用测试程序运行结束前,若所述监测单元监测到其调用了其他程序,则在所述其他程序执行完毕后,再结束该系统调用测试程序的运行。
12.如权利要求8所述的系统调用功耗的测试装置,其特征在于,还包括第二执行单元,适于依次执行所述测试激励中的每一个系统调用测试程序。
13.如权利要求12所述的系统调用功耗的测试装置,其特征在于,还包括系统重启控制单元,适于在针对所述测试激励中的某一个系统调用测试程序的相关测量结束后,控制重启系统后再进行下一个系统调用测试程序的相关测量。
14.如权利要求8所述的系统调用功耗的测试装置,其特征在于,所述系统在运行过程中执行的系统调用测试程序的类型包括进程控制、进程间通信、用户管理、内存管理、网络管理、文件系统控制、系统控制和socket控制中的至少一种。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310049979.7A CN103106131B (zh) | 2012-02-15 | 2013-02-07 | 系统调用功耗的测试方法与测试装置 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210033908 | 2012-02-15 | ||
CN201210033908.3 | 2012-02-15 | ||
CN2012100339083 | 2012-02-15 | ||
CN201310049979.7A CN103106131B (zh) | 2012-02-15 | 2013-02-07 | 系统调用功耗的测试方法与测试装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103106131A CN103106131A (zh) | 2013-05-15 |
CN103106131B true CN103106131B (zh) | 2015-08-12 |
Family
ID=48314009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310049979.7A Active CN103106131B (zh) | 2012-02-15 | 2013-02-07 | 系统调用功耗的测试方法与测试装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103106131B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108388498B (zh) * | 2018-02-12 | 2020-09-08 | 北京大学 | 内存中计算的功率建模方法及功率管理方法 |
CN109753405B (zh) * | 2018-12-05 | 2022-05-31 | 东软集团股份有限公司 | 应用资源消耗的检测方法、装置、存储介质和电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1877545A (zh) * | 2006-07-04 | 2006-12-13 | 浙江大学 | 一种嵌入式系统模拟器中的动态软件能耗测试方法 |
CN101894067A (zh) * | 2010-06-04 | 2010-11-24 | 四川大学 | 一种基于arm处理器的嵌入式软件能耗统计模型 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3188862B2 (ja) * | 1997-12-24 | 2001-07-16 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 消費電力解析方法及び装置 |
-
2013
- 2013-02-07 CN CN201310049979.7A patent/CN103106131B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1877545A (zh) * | 2006-07-04 | 2006-12-13 | 浙江大学 | 一种嵌入式系统模拟器中的动态软件能耗测试方法 |
CN101894067A (zh) * | 2010-06-04 | 2010-11-24 | 四川大学 | 一种基于arm处理器的嵌入式软件能耗统计模型 |
Non-Patent Citations (1)
Title |
---|
源程序级和算法级嵌入式软件功耗特性的分析与优化方法研究;罗刚 等;《计算机学报》;20090930;第32卷(第9期);第1869-1875页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103106131A (zh) | 2013-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jabbarvand et al. | Energy-aware test-suite minimization for android apps | |
Yoon et al. | {AppScope}: Application Energy Metering Framework for Android Smartphone Using Kernel Activity Monitoring | |
US8161461B2 (en) | Systems and methods for evaluating code usage | |
US10360140B2 (en) | Production sampling for determining code coverage | |
CN105760286A (zh) | 应用数据库动态性能检测方法及检测装置 | |
CN106528372B (zh) | 一种程序运行监视系统和方法 | |
CN103838663A (zh) | 一种应用程序的测试方法及装置 | |
CN104317709A (zh) | 软件性能测试方法和系统 | |
Smith et al. | Workload classification & software energy measurement for efficient scheduling on private cloud platforms | |
CN109344078A (zh) | 应用fpga的嵌入式实时操作系统时间性能测试方法 | |
Ehlers et al. | A self-adaptive monitoring framework for component-based software systems | |
CN113961413A (zh) | 服务器功耗测试方法及装置 | |
CN112269697B (zh) | 一种设备存储性能测试方法、系统及相关装置 | |
Tu et al. | Performance and power profiling for emulated android systems | |
CN103106131B (zh) | 系统调用功耗的测试方法与测试装置 | |
CN107977318B (zh) | 一种Android应用程序的能耗和性能测试方法 | |
Schuler et al. | Examining the energy impact of sorting algorithms on android: an empirical study | |
Zhang | Power, Performance Modeling and Optimization for Mobile System and Applications. | |
Liu et al. | NavyDroid: Detecting energy inefficiency problems for smartphone applications | |
CN107818045A (zh) | 一种平安城市的软件测试方法 | |
Schmitt et al. | Online power consumption estimation for functions in cloud applications | |
Wang et al. | Wlcleaner: Reducing energy waste caused by wakelock bugs at runtime | |
Liu et al. | NavyDroid: an efficient tool of energy inefficiency problem diagnosis for Android applications | |
CN109492868A (zh) | 一种电动汽车充电设施性能的评估方法及系统 | |
CN110795330A (zh) | 一种Monkey压力测试的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |