CN1508683A - 一种在多任务实时操作系统中检测cpu占用率的方法 - Google Patents
一种在多任务实时操作系统中检测cpu占用率的方法 Download PDFInfo
- Publication number
- CN1508683A CN1508683A CNA021576904A CN02157690A CN1508683A CN 1508683 A CN1508683 A CN 1508683A CN A021576904 A CNA021576904 A CN A021576904A CN 02157690 A CN02157690 A CN 02157690A CN 1508683 A CN1508683 A CN 1508683A
- Authority
- CN
- China
- Prior art keywords
- task
- time
- cpu usage
- cpu
- statistics
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种在多任务实时操作系统中检测CPU占用率的方法,在嵌入式开发的多任务实时操作系统环境中,与多任务实时操作系统内核紧密结合,利用多任务实时操作系统提供的系统调用、任务管理和中断定时来实现对CPU占用率的检测统计,提高了系统的灵活性,克服了现有技术中多任务实时操作系统自身提供的对CPU占用率检测统计方法复杂和不可更改的缺陷。用于多任务实时操作系统之中。
Description
技术领域
本发明属于计算机领域,尤其涉及多任务实时操作系统。
背景技术
VxWorks是windriver公司的一种嵌入式商用操作系统产品,也是目前应用比较广泛的高性能多任务实时操作系统内核,具有先进的网络功能,支持多种不同的处理器上软件的开发研制。在嵌入式软件开发过程中,多个任务运行在一块目标板上,各个任务根据一定的规则占用CPU运行。
VxWorks系统中CPU忙闲情况如图1所示,任务间进行切换时需要VxWorks内核处理,内核处理会占用CPU执行时间。同时由于实时系统的特征,会有外部中断请求打断任务执行的情况发生,这部分时间也应该算在CPU忙的时间中。空闲任务指的是在VxWorks任务优先级范围内,相对其它所有应用任务的优先级较低的一个任务,以估计CPU相对较闲的时间。
根据在实际采用的摩托罗拉PowerPC芯片系列-PowerPC850、PowerPC860和PowerPC8260芯片的目标板上运行实验的结果和参考VxWorks的在线帮助等技术文档中关于CPU使用情况统计方面的描述,由于VxWorks提供的统计任务在指定时间段内执行情况的信息量过多,包含了中断和内核切换的时间数统计,比较复杂难懂,而且不可更改。当采样的时间点正处于内核切换过程中时,得到的CPU占用率值与其它情况下的值相差很大。应用者一般只需要简单明了的知道大概的CPU占用率情况即可,不必进行这么多的统计工作,浪费计算机宝贵的资源。
发明内容
本发明所要解决的技术问题是,适应一般应用者的需要,在VxWorks内核驻留的系统中,简化检测CPU占用率方法。
一种在多任务实时操作系统中检测CPU占用率的方法,包括:
首先在系统初启时初始化本方法相关的统计空闲任务出入时间的数组,将统计空闲任务运行时间的函数作为钩子函数添加到VxWorks任务切换系统调用中,并启动空闲任务开始运行。
在系统中维护一个与系统时钟同步变化的全局变量,将操作系统本身定义的计时单位,设置为对CPU占用率检测统计的时间间隔基准。
当CPU相对闲时,操作系统内核切换到空闲任务执行,记录进入空闲任务的当前系统时间。
当CPU开始忙时,系统内核切换到其它应用任务执行,记录退出空闲任务的当前系统时间。
定义CPU占用率检测统计采样时间。
计算CPU占用率的值,统计CPU占用率的峰值,并打印对CPU占用率的检测统计结果。
有益效果
采用本发明所述技术方案,在嵌入式开发的多任务实时操作系统环境中,与多任务实时操作系统内核紧密结合,利用多任务实时操作系统提供的系统调用、任务管理和中断定时来实现对CPU占用率的检测统计,提高了系统的灵活性,克服了现有技术中多任务实时操作系统自身提供的对CPU占用率检测统计方法复杂和不可更改的缺陷,且统计的结果与VxWorks本身提供的检测工具得出的结果基本一致。
并且采用所述方法编写的程序代码非常短,实现的代码不超过200行,通用性强:作为一个独立的单元,可随时加入系统或从系统中剥离,节约了使用多任务实时操作系统提供工具时的较大额外空间开销,通常使用VxWorks提供的方法会使最终生成的版本增加100K左右,其计算过程对整个系统性能的影响较小,不会在内核切换时打印信息从而降低执行效率。
附图说明
图1实时系统CPU忙闲情况
图2空闲任务执行时间统计流程
图3CPU占用率计算流程
具体实施方式
下面结合附图,以多任务实时操作系统内核VxWorks为例,对实施本发明所述的技术方案进行详细描述。
VxWorks系统的CPU忙闲情况如图1所示,任务间进行切换时需要VxWorks内核处理,内核处理会占用CPU执行时间。同时由于实时系统的特征,会有外部中断请求打断任务执行的情况发生,这部分时间也应该算在CPU忙的时间中。空闲任务指的是在VxWorks任务优先级范围内,相对其它所有应用任务的优先级较低的一个任务,以估计CPU相对较闲的时间。
采用本发明所述方法,在VxWorks系统中检测CPU占用率的操作步骤如下:
1、首先在VxWorks系统初启时初始化本方法相关的统计空闲任务出入时间的数组,将统计空闲任务运行时间的函数作为钩子函数添加到VxWorks任务切换系统调用中,并启动空闲任务开始运行。
2、在VxWorks系统中维护一个与系统时钟同步变化的全局变量,将操作系统VxWorks本身定义的计时单位,设置为对CPU占用率检测统计的时间间隔基准。
3、当CPU相对闲时,即在CPU无其它应用任务执行时,VxWorks系统内核切换到空闲任务执行,记录进入空闲任务的当前系统时间。
在空闲任务中,只执行无限循环。在循环中执行读取当前系统时间的VxWorks系统调用。
当CPU开始忙时,即在开始执行其它应用任务或处理中断等情况下,VxWorks系统内核切换到其它应用任务执行,记录退出空闲任务的当前系统时间。
4、根据实际需要自定义CPU占用率检测统计采样时间。
5、计算CPU占用率的值,统计CPU占用率的峰值,并打印对CPU占用率的检测统计结果。
若采样时间未到,则退出计算CPU占用率:
采样时间到时,根据记录的进入和退出空闲任务的系统时间计算出在该采样时间段内空闲任务执行的时间数。
由此可间接得到CPU忙时的总执行时间数,按比率公式1000-(空闲任务执行时间/总执行时间数)*1000可得出CPU占用率的值,此处以1000表示100.0%,即计算的值精确到小数点后1位。
打印对CPU占用率的检测统计结果。
在应用设置的打印信息时间间隔到时,打印出该时间点的CPU占用率和系统运行至今的累计CPU占用率峰值。打印信息时间间隔一般为采样时间间隔的整数倍。
采用所述的基于VxWorks系统中对CPU占用率的检测统计方法,在VxWorks内核驻留的系统中,可以实现检测系统中CPU在某一时间段内忙闲情况的功能,从而调整任务自身的属性、减少任务间的相互影响,使系统达到理想的吞吐量值。
在具体项目中,试用本发明所述的对CPU占用率的检测统计方法和VxWorks自身提供的检测工具进行比较,在采用相同采样时间时,两者得到的CPU忙闲情况值基本相同,说明使用本发明所述的对CPU占用率检测统计方法能够比较真实的反映出CPU的使用情况。由于采用所述方法编制计算CPU占用率的程序代码量不到200行,对设备也没有提出额外的要求,通常使用VxWorks提供的方法会使最终生成的版本增加100K左右,不会在内核切换时打印信息从而降低执行效率,作为独立的代码易于使用和维护。
Claims (3)
1.一种在多任务实时操作系统中检测CPU占用率的方法,包括:
首先在系统初启时初始化本方法相关的统计空闲任务出入时间的数组,将统计空闲任务运行时间的函数作为钩子函数添加到VxWorks任务切换系统调用中,并启动空闲任务开始运行;
在系统中维护一个与系统时钟同步变化的全局变量,将操作系统本身定义的计时单位,设置为对CPU占用率检测统计的时间间隔基准;
当CPU相对闲时,操作系统内核切换到空闲任务执行,记录进入空闲任务的当前系统时间;
当CPU开始忙时,系统内核切换到其它应用任务执行,记录退出空闲任务的当前系统时间;
定义CPU占用率检测统计采样时间;
计算CPU占用率的值,统计CPU占用率的峰值,并打印对CPU占用率的检测统计结果。
2.如权利要求1所述的在多任务实时操作系统中检测CPU占用率的方法,其特征是:所述启动空闲任务开始运行,在空闲任务中,只执行无限循环;在循环中执行读取当前系统时间的系统调用。
3.如权利要求1所述的在多任务实时操作系统中检测CPU占用率的方法,其特征是:所述打印信息时间间隔为采样时间间隔的整数倍。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA021576904A CN1508683A (zh) | 2002-12-17 | 2002-12-17 | 一种在多任务实时操作系统中检测cpu占用率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA021576904A CN1508683A (zh) | 2002-12-17 | 2002-12-17 | 一种在多任务实时操作系统中检测cpu占用率的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1508683A true CN1508683A (zh) | 2004-06-30 |
Family
ID=34236649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA021576904A Pending CN1508683A (zh) | 2002-12-17 | 2002-12-17 | 一种在多任务实时操作系统中检测cpu占用率的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1508683A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009000122A1 (fr) * | 2007-06-25 | 2008-12-31 | Zte Corporation | Dispositif et procédé pour mesurer le taux d'utilisation d'un processeur |
CN101067758B (zh) * | 2007-06-14 | 2010-05-19 | 华南理工大学 | 一种嵌入式系统的能耗管理方法 |
CN101216792B (zh) * | 2008-01-14 | 2010-06-09 | 中兴通讯股份有限公司 | 实时操作系统的任务管理方法、装置 |
CN101221528B (zh) * | 2008-01-22 | 2010-06-16 | 中兴通讯股份有限公司 | 一种嵌入式操作系统调度性能的测试方法 |
CN101441595B (zh) * | 2007-11-21 | 2010-11-03 | 英业达股份有限公司 | 负载监控装置及测试装置及负载监控方法及测试方法 |
CN102236528A (zh) * | 2010-04-21 | 2011-11-09 | 乐金电子(中国)研究开发中心有限公司 | 一种调整触摸屏采样间隔的方法、装置和数字终端 |
CN104572414A (zh) * | 2014-12-23 | 2015-04-29 | 深圳市邦彦信息技术有限公司 | 一种用于vxWorks的CPU占用率检测方法和系统 |
CN106528318A (zh) * | 2016-11-29 | 2017-03-22 | 迈普通信技术股份有限公司 | 线程死循环检测方法和装置 |
CN106776272A (zh) * | 2016-11-11 | 2017-05-31 | 西北工业大学 | 嵌入式系统实时性能测试方法 |
CN106897203A (zh) * | 2017-03-29 | 2017-06-27 | 北京经纬恒润科技有限公司 | 一种cpu负载率计算方法及装置 |
CN109976989A (zh) * | 2016-08-18 | 2019-07-05 | 北京并行科技股份有限公司 | 跨节点应用性能监测方法、装置及高性能计算系统 |
-
2002
- 2002-12-17 CN CNA021576904A patent/CN1508683A/zh active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101067758B (zh) * | 2007-06-14 | 2010-05-19 | 华南理工大学 | 一种嵌入式系统的能耗管理方法 |
WO2009000122A1 (fr) * | 2007-06-25 | 2008-12-31 | Zte Corporation | Dispositif et procédé pour mesurer le taux d'utilisation d'un processeur |
CN101441595B (zh) * | 2007-11-21 | 2010-11-03 | 英业达股份有限公司 | 负载监控装置及测试装置及负载监控方法及测试方法 |
CN101216792B (zh) * | 2008-01-14 | 2010-06-09 | 中兴通讯股份有限公司 | 实时操作系统的任务管理方法、装置 |
CN101221528B (zh) * | 2008-01-22 | 2010-06-16 | 中兴通讯股份有限公司 | 一种嵌入式操作系统调度性能的测试方法 |
CN102236528A (zh) * | 2010-04-21 | 2011-11-09 | 乐金电子(中国)研究开发中心有限公司 | 一种调整触摸屏采样间隔的方法、装置和数字终端 |
CN104572414A (zh) * | 2014-12-23 | 2015-04-29 | 深圳市邦彦信息技术有限公司 | 一种用于vxWorks的CPU占用率检测方法和系统 |
WO2016101740A1 (zh) * | 2014-12-23 | 2016-06-30 | 邦彦技术股份有限公司 | 一种用于vxWorks的CPU占用率检测方法和系统 |
CN109976989A (zh) * | 2016-08-18 | 2019-07-05 | 北京并行科技股份有限公司 | 跨节点应用性能监测方法、装置及高性能计算系统 |
CN109976989B (zh) * | 2016-08-18 | 2023-05-12 | 北京并行科技股份有限公司 | 跨节点应用性能监测方法、装置及高性能计算系统 |
CN106776272A (zh) * | 2016-11-11 | 2017-05-31 | 西北工业大学 | 嵌入式系统实时性能测试方法 |
CN106776272B (zh) * | 2016-11-11 | 2019-11-05 | 西北工业大学 | 嵌入式系统实时性能测试方法 |
CN106528318A (zh) * | 2016-11-29 | 2017-03-22 | 迈普通信技术股份有限公司 | 线程死循环检测方法和装置 |
CN106897203A (zh) * | 2017-03-29 | 2017-06-27 | 北京经纬恒润科技有限公司 | 一种cpu负载率计算方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10572301B2 (en) | Extract CPU time facility | |
CN102314391B (zh) | 一种基于硬件基础工具监视虚拟化系统性能的架构及方法 | |
CN1508683A (zh) | 一种在多任务实时操作系统中检测cpu占用率的方法 | |
Carothers et al. | Efficient execution of Time Warp programs on heterogeneous, NOW platforms | |
EP0636985A1 (en) | Process monitoring in a multiprocessing server | |
EP3588288B1 (en) | A multithreaded processor core with hardware-assisted task scheduling | |
CN115269196A (zh) | 线程池动态创建方法、装置、设备及存储介质 | |
Kundu et al. | Improving Android performance and energy efficiency | |
CN103197971A (zh) | Windows操作系统Pentium Ⅳ架构下高精度低CPU占用率定时器的实现方法 | |
CN1400529A (zh) | 一种实时嵌入系统的故障定位方法 | |
CN1740973A (zh) | 一种实时任务管理与调度方法 | |
EP2159686A1 (en) | Information processor | |
CN1367432A (zh) | 防止多处理器计算机中各处理器间进程发生冲突的方法 | |
CN1311349C (zh) | 计算环境中多任务处理的方法与系统 | |
Li et al. | Fault-aware runtime strategies for high-performance computing | |
CN1324477C (zh) | 一种检测实时操作系统cpu占用率的方法 | |
CN107153604B (zh) | 基于pmu的并行程序性能监测分析方法 | |
CN1851651A (zh) | 嵌入式sram操作系统进程优先权调度的实现方法 | |
CN1825288A (zh) | 嵌入式sram操作系统进程多队列调度的实现方法 | |
CN110209631A (zh) | 大数据处理方法及其处理系统 | |
CN101349975A (zh) | 实现中断底半部机制的方法及嵌入式系统 | |
CN1940886A (zh) | 概况分析系统及方法 | |
Hui et al. | Supporting Hot-Swappable Components for System Software. | |
CN1766861A (zh) | 多中断处理单元的中断处理的装置和方法 | |
GB2440216A (en) | Computer program for calculating the (accumulated) processing time for tasks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |