日期:2014-05-16  浏览次数:20597 次

linux内核--中断下半部和推后执行的工作

    由于本身存在一些局限,中断只能完成整个中断处理流程的上半部分,归根结底的局限为时间,需要中断处理程序应该执行得越快越好。

    下半部的任务就是执行与中断处理密切相关但中断处理程序本身不执行的工作。内核开发者引入任务队列机制来实现工作的推后执行,并用它来代替BH机制,内核为此定义了一组队列,其中每个队列都包含了一个由等待调用的函数组成链表。根据其所处队列的位置们这些函数会在某个时刻执行;后来还引入了软中断和tasklet来应付这个问题。

    下半部是一个操作系统通用词汇,用于指代中断处理流程中推后执行的那一部分,之所以这么命名,是因为它表示中断处理方案一半的第二部分或者下半部。所有用于实现将工作推后执行的内核机制被称为“下半部机制”。当前,有三种机制可以用来将工作推后执行:软中断、tasklet和工作队列。其中tasklet是通过软中断来实现的。而工作队列是另一种实现形式。