cpu使用率计算方法_第1页
cpu使用率计算方法_第2页
cpu使用率计算方法_第3页
cpu使用率计算方法_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

cpu使用率计算方法cpu使用率计算方法一 使用cpu的处理能力基准计算实时cpu占用率具体描述:在rtos系统启动前,使用tick中断测试cpu的处理能力基准cpuperformancebase;在系统进入运行后,使用空闲任务执行与测试cpu处理能力基准完全相同的算法,得到rtcpuperformance.周期地计算cpu占用率,并清除rtcpuperformance的值,一般每秒钟计算一次:realtimecpuload= 1 -(rtcpuperformance/cpuperformancebase)*100%优点:实现简单所得到的cpu占用率非常准确,误差只取决于cpuperformancebase的测试结果和整除时的余数,通常误差小于1%不占用硬件资源缺点:cpu必须一直全速运行,不能修改cpu主频,也不能使cpu进入掉电保护模式不能得到系统中每个任务对cpu占用率的贡献必须有一个空闲任务才能计算评价:这个算法只适用于工控,电信等对不需要使cpu进入掉电保护模式的领域.在tick中断中对rtos中的任务进行采样具体描述:系统进入运行后,每次tick中断发生时,采样一下当前正在执行的任务,如果cpu处于halt态,累加halttimes周期性地计算cpu占用率,一般每秒钟计算一次,并清除halttimes:(tickintfrequance表示tick中断的发生频率)realtimecpuload=halttimes/tickintfrequance某个任务对cpu占用率的贡献=一个周期内该任务被采样到的次数/tickintfrequance*100%优点:实现简单支持cpu掉电模式可以大致得到每个任务对cpu占用率的贡献缺点:(1)误差取决于tick的频率和os中每个任务的运行时长,因此误差非常大评价:这个算法适用于对cpu占用率精度要求不高的消息电子产品.精确计算每个任务对cpu占用率的贡献具体描述:除tick中断外,另开一个比tick中断频率快若干倍的周期中断(就叫auxtimer中断吧),这个中断只对一个计数器执行一次累加.在os每次执行任务切换时读取该计数器的值(auxtimer),并保存到tcb中,比如,从任务task1切换到任务task2,算法如下:task1,换出动作:task1的结束运行时间=auxtimer的当前值task1的总运行时间=task1的总运行时间+task1的结束运行时间-task1的开始运行时间task2,换入动作:task2的开始运行时间=auxtimer的当前值(以上算法中没有考虑数字回绕,在工程实现时应当考虑,发生回绕后任务的结束运行时间小于任务的开始运行时间.周期性地计算cpu占用率,一般每秒钟计算一次,并清除每个任务的总运行时间,下面的公式中,一个周期内的总时间等于auxtimer周期除以tick周期得到的倍数:某个任务对cpu占用率的贡献=一个周期内该任务的总运行时间/一个周期内的总时间realtimecpuload=所有任务的cpu占用率之和对这个方法进行简单改进,就可以实现对cpu占用率进行实时测量,看官自己动动脑筋吧.优点:(1)误差取决于auxtimer中断的频率,可以非常精确地得到每个任务对cpu占用率的贡献缺点:复杂,加大了任务切换时的开销和前两种算法相比,这个算法要多占用一个硬件资源cpu使用率计算方法二 需要两个进程,一个为idle进程;一个为统计进程。idle进程在系统空闲时执行,每执行一次为一个计数器count加一。统计进程每秒执行一次负责计算cpu使用率,并把count清零。首先要求出没有其它进程时count一秒中内由零开始的累加值max,这通常在系统初始化时完成。有其它进程时idle进程执行的次数减少,count的累加值也小于maxo统计进程计算cpu使用率时采用以下公式:usage=(1-count/max)*100。再来介绍下cpu使用率:cpu使用率其实就是运行的程序占用的cpu资源,表示机器在某个时间点的运行程序的情况。使

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论