导航:首页 > 器材知识 > 硬件设备使用率如何计算

硬件设备使用率如何计算

发布时间:2024-12-10 07:00:18

Ⅰ CPU的使用率是如何计算的

方法1: 使用CPU的处理能力基准计算实时CPU占用率 具体描述: (1) 在RTOS系统启动前, 使用Tick中断测试CPU的处理能力基准 CPUPerformanceBase; (2) 在系统进入运行后, 使用空闲任务执行与测试CPU处理能力基准完全相同的算法, 得到RTCPUPerformance. (3) 周期地计算CPU占用率, 并清除RTCPUPerformance的值, 一般每秒钟计算一次: RealTime CPU Load = 1 - (RTCPUPerformance/CPUPerformanceBase) * 100% 优点: (1) 实现简单 (2) 所得到的CPU占用率非常准确, 误差只取决于CPUPerformanceBase的测试结果和整除时的余数, 通常误差小于1% (3) 不占用硬件资源 缺点: (1) CPU必须一直全速运行, 不能修改CPU主频, 也不能使CPU进入掉电保护模式 (2) 不能得到系统中每个任务对CPU占用率的贡献 (3) 必须有一个空闲任务才能计算 评价: 这个算法只适用于工控, 电信等对不需要使CPU进入掉电保护模式的领域. 方法2: 在Tick中断中对RTOS中的任务进行采样 具体描述: (1) 系统进入运行后, 每次Tick中断发生时, 采样一下当前正在执行的任务, 如果CPU处于HALT态, 累加haltTimes (2) 周期性地计算CPU占用率, 一般每秒钟计算一次, 并清除haltTimes:(tickIntFrequance表示Tick中断的发生频率) RealTime CPU Load = haltTimes / tickIntFrequance 某个任务对CPU占用率的贡献 = 一个周期内该任务被采样到的次数 / tickIntFrequance * 100% 优点: (1) 实现简单 (2) 支持CPU掉电模式 (3) 可以大致得到每个任务对CPU占用率的贡献 缺点: (1) 误差取决于Tick的频率和OS中每个任务的运行时长, 因此误差非常大 评价: 这个算法适用于对CPU占用率精度要求不高的消息电子产品. 方法3: 精确计算每个任务对CPU占用率的贡献 具体描述: (1) 除Tick中断外,另开一个比Tick中断频率快若干倍的周期中断(就叫AUXTimer中断吧), 这个中断只对一个计数器执行一次累加. (2) 在OS每次执行任务切换时读取该计数器的值(AUXTimer), 并保存到TCB中, 比如, 从任务Task1切换到任务Task2, 算法如下: Task1, 换出动作: task1的结束运行时间 = AUXTimer的当前值 task1的总运行时间 = task1的总运行时间 + task1的结束运行时间 - task1的开始运行时间 Task2, 换入动作: task2的开始运行时间 = AUXTimer的当前值 (以上算法中没有考虑数字回绕, 在工程实现时应当考虑, 发生回绕后任务的结束运行时间小于任务的开始运行时间. (3) 周期性地计算CPU占用率, 一般每秒钟计算一次, 并清除每个任务的总运行时间, 下面的公式中, 一个周期内的总时间等于AUXTimer周期除以Tick周期得到的倍数: 某个任务对CPU占用率的贡献 = 一个周期内该任务的总运行时间 / 一个周期内的总时间 RealTime CPU Load = 所有任务的CPU占用率之和 对这个方法进行简单改进, 就可以实现对CPU占用率进行实时测量, 看官自己动动脑筋吧. 优点: (1) 误差取决于AUXTimer中断的频率, 可以非常精确地得到每个任务对CPU占用率的贡献 缺点: (1) 复杂, 加大了任务切换时的开销 (2) 和前两种算法相比, 这个算法要多占用一个硬件资源

Ⅱ CPU使用率是如何计算的

当我们的程序开得多了,CPU的使用率就会上升,那CPU使用率是如何计算的呢?下面就让我给大家说一下CPU使用率是如何计算的。

CPU使用率的算法

方法 1: 使用CPU的处理能力基准计算实时CPU占用率

具体描述:

(1) 在RTOS系统启动前, 使用Tick中断测试CPU的处理能力基准 CPUPerformanceBase;

(2) 在系统进入运行后, 使用空闲任务执行与测试CPU处理能力基准完全相同的算法, 得到RTCPUPerformance.

(3) 周期地计算CPU占用率, 并清除RTCPUPerformance的值, 一般每秒钟计算一次:

RealTime CPU Load = 1 - (RTCPUPerformance/CPUPerformanceBase) * 100%

优点:

(1) 实现简单

(2) 所得到的CPU占用率非常准确, 误差只取决于CPUPerformanceBase的测试结果和整除时的余数, 通常误差小于

1%

(3) 不占用硬件资源

缺点:

(1) CPU必须一直全速运行, 不能修改CPU主频, 也不能使CPU进入掉电保护模式

(2) 不能得到系统中每个任务对CPU占用率的贡献

(3) 必须有一个空闲任务才能计算

评价:

这个算法只适用于工控, 电信等对不需要使CPU进入掉电保护模式的领域.

方法2: 在Tick中断中对RTOS中的任务进行采样

具体描述:

(1) 系统进入运行后, 每次Tick中断发生时, 采样一下当前正在执行的任务, 如果CPU处于HALT态, 累加haltTimes

(2) 周期性地计算CPU占用率, 一般每秒钟计算一次, 并清除haltTimes:(tickIntFrequance表示Tick中断的发生频率)

RealTime CPU Load = haltTimes / tickIntFrequance

某个任务对CPU占用率的贡献 = 一个周期内该任务被采样到的次数 / tickIntFrequance * 100%

优点:

(1) 实现简单

(2) 支持CPU掉电模式

(3) 可以大致得到每个任务对CPU占用率的贡献

缺点:

(1) 误差取决于Tick的频率和OS中每个任务的运行时长, 因此误差非常大

评价:

这个算法适用于对CPU占用率精度要求不高的消息电子产品.

方法3: 精确计算每个任务对CPU占用率的贡献

具体描述:

(1) 除Tick中断外,另开一个比Tick中断频率快若干倍的周期中断(就叫AUXTimer中断吧), 这个中断只对一个计数器执

行一次累加.

(2) 在OS每次执行任务切换时读取该计数器的值(AUXTimer), 并保存到TCB中, 比如, 从任务Task1切换到任务Task2,

算法如下:

Task1, 换出动作:

task1的结束运行时间 = AUXTimer的当前值

task1的总运行时间 = task1的总运行时间 + task1的结束运行时间 - task1的开始运行时间

Task2, 换入动作:

task2的开始运行时间 = AUXTimer的当前值

(以上算法中没有考虑数字回绕, 在工程实现时应当考虑, 发生回绕后任务的结束运行时间小于任务的开始运行时间.

(3) 周期性地计算CPU占用率, 一般每秒钟计算一次, 并清除每个任务的总运行时间, 下面的公式中, 一个周期内的总时

间等于AUXTimer周期除以Tick周期得到的倍数:

某个任务对CPU占用率的贡献 = 一个周期内该任务的总运行时间 / 一个周期内的总时间

RealTime CPU Load = 所有任务的CPU占用率之和

对这个方法进行简单改进, 就可以实现对CPU占用率进行实时测量, 看官自己动动脑筋吧.

优点:

(1) 误差取决于AUXTimer中断的频率, 可以非常精确地得到每个任务对CPU占用率的贡献

缺点:

(1) 复杂, 加大了任务切换时的开销

(2) 和前两种算法相比, 这个算法要多占用一个硬件资源

CPU使用率是如何计算的相关 文章 :

1. cpu使用率如何计算

2. cpu正常使用率多少

3. 如何查看cpu使用率

4. 服务器cpu使用率多少算正常

5. CPU是如何进行运算的

.

阅读全文

与硬件设备使用率如何计算相关的资料

热点内容
加气的车加气阀门不关 浏览:893
机械师2复活用的是什么狙击枪 浏览:835
暖气管道总阀门怎么开图解 浏览:309
dnf女机械为什么不玩引爆流 浏览:59
大风天气起重设备行怎么做 浏览:493
中山小榄家具五金批发市场 浏览:62
周黑鸭制作需要哪些设备 浏览:346
医生戴耳朵上听心跳的仪器叫什么 浏览:630
江西哪里处理二手化工设备 浏览:215
无锡海天机械公司怎么样 浏览:389
机械硬盘怎么贴硅脂 浏览:463
不关阀门可以给暖气片放气吗 浏览:718
永嘉县阀门厂刘 浏览:466
空调显示送风怎么调成制冷 浏览:892
电脑登录qq怎么找登录设备 浏览:553
德龙汽车空调怎么开制冷视频 浏览:278
简易带式输送机传动装置设计 浏览:133
信息系统都有哪些设备 浏览:246
实验室应急喷淋装置及洗眼器 浏览:811
照明工程需要哪些机械设备 浏览:773