中断占用CPU的时间分析
2016-09-20 21:09
369 查看
本篇从一道题目出发理清楚这类题目想表达的意思。这类题目很有趣的一点在于,从不同的角度思考,复杂度是不一样的。也就是,用正确的思路去想,就很简单且自然。
假设一个计算机系统具有如下性能特征:处理一次中断平均需要500us,一次进程调度平均需要花费1ms,进程的切换平均需要花费2ms。若该计算机系统的定时器每秒发出120次时钟中断,忽略其他中断的影响,请问:
1)操作系统将百分之几的CPU时间分配给时钟中断处理程序?
2)如果操作系统采用时间片轮转调度算法,24个时钟中断算一个时间片,操作系统每进行一次进程的切换需要花费百分之几的CPU时间?
虽然你也可能非常明确每一个步骤的进行,或许你和我一样但是一到如何计算占用CPU时间比例,就有些迷惑。
1) 这里,每秒发出120次时钟中断和中断处理联系怎么理解?
可以这样:每秒发出120个时钟中断,且每个中断都必须要处理。留给每个中断的处理时间便是:1/120s,再这样去考虑处理一次中断的用时500us,那么就很容易求出所有的中断处理程序占用CPU的时间比例是:500us÷(1/120)=6%.
2) 同样我们用1)的思路去分析问题:24个时钟中断算一个时间片,每一个时间片结束就会进行进程的调度。所以每一个调度的CPU时间段是24个时间片大小。而在24个时钟中断中,调度一次进程用时1ms+2ms=3ms,所以占用百分比是3ms÷一个时间片=1.5%.
应该指出,我们计算一段时间就能判断总体的原因在于:用的是平均,因此可以将时间化为相等的段。
假设一个计算机系统具有如下性能特征:处理一次中断平均需要500us,一次进程调度平均需要花费1ms,进程的切换平均需要花费2ms。若该计算机系统的定时器每秒发出120次时钟中断,忽略其他中断的影响,请问:
1)操作系统将百分之几的CPU时间分配给时钟中断处理程序?
2)如果操作系统采用时间片轮转调度算法,24个时钟中断算一个时间片,操作系统每进行一次进程的切换需要花费百分之几的CPU时间?
虽然你也可能非常明确每一个步骤的进行,或许你和我一样但是一到如何计算占用CPU时间比例,就有些迷惑。
1) 这里,每秒发出120次时钟中断和中断处理联系怎么理解?
可以这样:每秒发出120个时钟中断,且每个中断都必须要处理。留给每个中断的处理时间便是:1/120s,再这样去考虑处理一次中断的用时500us,那么就很容易求出所有的中断处理程序占用CPU的时间比例是:500us÷(1/120)=6%.
2) 同样我们用1)的思路去分析问题:24个时钟中断算一个时间片,每一个时间片结束就会进行进程的调度。所以每一个调度的CPU时间段是24个时间片大小。而在24个时钟中断中,调度一次进程用时1ms+2ms=3ms,所以占用百分比是3ms÷一个时间片=1.5%.
应该指出,我们计算一段时间就能判断总体的原因在于:用的是平均,因此可以将时间化为相等的段。
相关文章推荐
- stm32串口占用时间、消耗CPU及最大中断时间的深度分析
- stm32串口占用时间、消耗CPU及最大中断时间的深度分析,探寻一种更有效的串口发送方式
- stm32串口占用时间、消耗CPU及最大中断时间的深度分析,探寻一种更有效的串口发送方式
- 分析占用了大量 CPU 处理时间的是Java 进程中哪个线程
- 分析占用了大量 CPU 处理时间的是Java 进程中哪个线程
- 分析占用了大量 CPU 处理时间的是Java 进程中哪个线程
- 历史执行Sql语句性能分析 CPU资源占用时间分析
- 历史执行Sql语句性能分析 CPU资源占用时间分析
- 历史执行Sql语句性能分析 CPU资源占用时间分析
- 解决并分析mysqld-nt.exe大量占用CPU问题
- php-cgi进程占用cpu资源过多负载高的原因分析及解决步骤
- Mysql 占用cpu资源高的分析
- 分析java程序中cpu占用过高的线程
- DBA案例分析:如何解决CPU占用100%的问题
- php-cgi进程占用cpu资源过多负载高的原因分析及解决步骤
- 使用 ksar 工具分析10个方面系统性能 ——磁盘 I/O、网络、CPU 、内存、NFS 、系统中断、内存分页
- windbg分析进程CPU占用
- weblogich占用高CPU详细分析方法
- Mysql 占用cpu资源高的分析
- 服务器上w3wp.exe占用cpu过多有时候超过50%的原因分析