中断处理程序下部(软中断、tasklet、工作队列).docxVIP

  • 10
  • 0
  • 约2.02万字
  • 约 26页
  • 2019-03-18 发布于江苏
  • 举报

中断处理程序下部(软中断、tasklet、工作队列).docx

中断处理程序下半部 下半部综述 使用下半部的目的 linux将中断处理程序分为上半部和下半部,目的是尽量减少上半部需要完成的工作,因为在上半部执行的时候,当前的中断线在所有处理器上都会被屏蔽。而且,如果一个处理程序是IRQF_DISABLED类型,它执行的时候会禁止所有本地中断。而缩短中断被屏蔽的时间对系统的响应能力和性能都至关重要。因此需要把一些工作放到下半部去做。 不仅是Linux,许多操作系统也把处理硬件中断的过程分为两个部分。上半部分简单快速,执行的时候禁止一些或全部中断。下半部分稍后执行,而且执行期间可以响应所有的中断。这种设计可使系统处于中断屏蔽状态的时间尽可能的短,以此来提高系统的响应能力。 Linux中的下半部发展 和上半部只能通过中断处理程序实现不同,下半部可以通过多种机制实现。最早的Linux只提供“bottom half”这种机制用于实现下半部。它提供了一个静态创建、由32个bottom halves组成的链表。上半部通过一个32位整数中的一个位来标识出哪个bottom half可以执行。每个BH都在全局范围内进行同步。即使分属于不同的处理器,也不允许任何两个bottom half同时执行。 不久,内核开发者们就引入了任务队列机制来实现工作的推后执行,并用它来代替BH机制。内核为此定义了一组队列,其中每个队列都包含一个由等待调用的函数组成链表。根据其所处队列

文档评论(0)

1亿VIP精品文档

相关文档