首先明确一点,我们日常电脑上的CPU只做两件事情 : 处理中断 和 处理进程
这里主要讲将CPU中断。
1.CPU为什么要有中断?
CPU的处理速度远远快于外设的处理速度。如果CPU要和外设进行通信,CPU可以采用两种方式。
(1)轮训方式,但是这种方式会让CPU的资源无法得到更好地利用,CPU只会干一件事情,也会做很多的无用功(在网上看到一个比较有意思的比喻,比如你在厨房烧开水的时候,采用轮训的方式就好比一直盯着这个水壶,直到它烧开为止,中间会浪费很多的时间)。
(2)中断方式,CPU可以在外设没有准备就绪的时候,可以干别的任务(处理进程,处理中断)。一旦外设准备就绪,外设会给CPU发送一个中断信号,CPU处理完毕,接着执行之前被打断的任务,保证了CPU的资源得到更好的利用。(比如在厨房烧开水的时候,别人来敲门了,你可以去开门,或者去看会电视,等到水壶发出水烧开的声音的时候,再回头去处理它)
2.中断的优先级,中断的硬件触发流程
还是拿烧开水为例子,在烧开水的时候,我可以做其他事情,我判断哪个事情比较重要,我就先做哪个。比如我觉得我在水烧开之前能够做两件事情。取快递和看电视,那我觉得取快递比烧开水重要,我就选择先去取快递,之后再回来看电视,最后水烧开了再去厨房处理它。中断优先级就好比这个例子,比较形象。那中断优先级的处理由专门的中断控制器来判断。
硬件外设产生硬件的电信号变化,这个电信号首先发送给中断控制器(中断控制器:能够打开、关闭中断,能够指定中断的优先级,还能够判断是否发生),中断控制器判断是否使能,判断优先级,最终决定是否给CPU发送电信号。CPU一旦检测到这个电信号以后,CPU后续就要处理这个中断。
阅读(2263) | 评论(0) | 转发(0) |