Linux 2.6中断下半部机制分析.docVIP

  • 3
  • 0
  • 约1.43万字
  • 约 10页
  • 2016-01-08 发布于安徽
  • 举报
摘要 本文主要从使用者的角度对Linux 2.6内核的下半部机制softirq、tasklet和workqueue进行分析,对于这三种机制在内核中的具体实现并未进行深入分析,倘若读者有兴趣了解,可以直接阅读Linux内核源代码的相关部分。 1 概述 中断服务程序往往都需要在CPU关中断的情况下运行,以避免中断嵌套而使控制复杂化,但是关中断的时间又不能太长,否则会造成中断信号的丢失。为此,在Linux中,将中断处理程序分为两部分,即上半部和下半部。上半部通常用于执行跟硬件关系密切的关键程序,这部分执行时间非常短,而且是在关中断的环境下运行的。对时间要求不是很严格,而且通常比较耗时的一些操作,则交给下半部来执行,这部分代码是在开中断中执行的。上半部处理硬件相关,称为硬件中断,这通常需要立即执行。下半部则可以延迟一定时间,在内核合适的时间段来执行程序,这就是我们这里要讨论的软中断。 本文以目前最新版本的Linux内核2.6.22为例,来讨论Linux的中断下半部机制。在2.6版本的内核中,下半部机制主要由softirq、tasklet和workqueue来实现,下面着重对这3种机制进行分析。 2 Linux 2.6内核中断下半部机制 老版本的Linux内核中,下半部是以一种叫做Bottom Half(简称为BH)的机制来实现的,最初它是借助中断向量来实现的,在系统中用一组(共32个)

文档评论(0)

1亿VIP精品文档

相关文档