Bing's Blog

胡言乱语,不必当真。

中断占用CPU的时间分析

本篇从一道题目出发理清楚这类题目想表达的意思。这类题目很有趣的一点在于,从不同的角度思考,复杂度是不一样的。也就是,用正确的思路去想,就很简单且自然。

假设一个计算机系统具有如下性能特征:处理一次中断平均需要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%.

应该指出,我们计算一段时间就能判断总体的原因在于:用的是平均,因此可以将时间化为相等的段。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011240016/article/details/52599955
文章标签: OS CPU 中断
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭