宝安网站(建设深圳信科),网红店的营销方式,鲁斌 42450745 网站建设,dedecms网站中断处理程序在处理中断时起到了关键作用#xff0c;也是一个中断程序必不可少的部分。不过#xff0c;现如今的中断处理流程都会分为两部分#xff1a;上半部分(top half)和下半部分(bottom half)。为什么要将一个中断分为如此两部分#xff1f;下面的几个经典原因可以很好…中断处理程序在处理中断时起到了关键作用也是一个中断程序必不可少的部分。不过现如今的中断处理流程都会分为两部分上半部分(top half)和下半部分(bottom half)。为什么要将一个中断分为如此两部分下面的几个经典原因可以很好的诠释这个问题。1.中断可以随时的打断处理机对其他程序的执行如果被打断的代码对系统很重要那么此时中断处理程序的执行时间应该是越短越好。2.通过上文我们知道中断处理程序正在执行时会屏蔽同条中断线上的中断请求而更严重的是如果设置了IRQF_DISABLED那么该中断服务程序执行是会屏蔽所有其他的中断请求。那么此时应该让中断处理程序执行的越快越好。上面的几个例子都要求中断服务程序的执行时间越短越好。一般的中断处理程序会在上半部分执行。而事实上几乎所有的情况上半部分就只执行中断处理程序。因此我们可以这样认为一个完整的中断处理流程是由中断处理程序和下半部分共同完成的。这样划分是有一定原因的因为我们必须有一个快速、异步而且简单的处理程序专门来负责对硬件的中断请求做出快速响应与此同时也要完成那些对时间要求很严格的操作。而那些对时间要求相对宽松其他的剩余工作则会在稍候的任意时间执行也就是在所谓的下半部分去执行。总之这样划分一个中断处理过程主要是希望减少中断处理程序的工作量(当然了理想情况是将全部工作都抛给下半段。但是中断处理程序至少应该完成对中断请求的相应。)因为在它运行期间至少会使得同级的中断请求被屏蔽这些都直接关系到整个系统的响应能力和性能。而在下半段执行期间则会允许响应所有的中断。和上半段只能通过中断处理程序实现不同的是下半部可以通过多种机制来完成小任务(tasklet)工作队列软中断。在本博客后续的文章当中你会看到不管是那种机制它们均为下半部提供了一种执行机制比上半部灵活多了。至于何时执行则由内核负责。