7.1 下半部和推后执行的工作_下半部

来源:互联网 发布:网络机顶盒的软件 编辑:程序博客网 时间:2024/05/20 04:50

    下半部的任务就是执行与中断处理密切相关但中断处理程序本身不执行的工作。记住,中断处理程序会异步执行,并且在最好的情况下它也会锁定当前的中断线。对于在上半部和下半部直接按划分工作,尽管不存在某种严格的规则,但还是有一些提示可供借鉴:

  • 如果一个任务对时间非常敏感,将其放在中断处理程序中执行。
  • 如果一个任务和硬件相关,将其放在中断处理程序中执行。
  • 如果一个任务要保证不被其他中断(特别是相同的中断)打断,将其放在中断处理程序中执行。
  • 其他所有任务,考虑放置在下半部执行。

 

7.1.1 为什么要用下半部

    我们希望尽量减少中断处理程序中需要完成的工作量,因为在它运行的时候当前的中断线在所有处理器上都会被屏蔽。更糟糕的是如果一个处理程序是SA_INTERRUPT类型,它执行的时候会禁止所有本地中断(而且吧本地中断线全局地屏蔽掉)。

    下半部执行的关键在于它们运行的时候,允许响应所有的中断。

 

7.1.2 下半部的环境

    在2.6这个当前版本中,内核提供了三种不同形式的下半部实现机制:软中断、tasklet和工作队列。

 

内核定时器

    另一个可以用于将工作推后执行的机制是内核定时器。

原创粉丝点击