文档章节

软中断,tasklet和工作队列的区别与联系

z
 zsaniu
发布于 2017/05/16 11:21
字数 491
阅读 8
收藏 0

为了让中断处理运行的快,同时要完成相应的全部工作。根据具体的内容将中断分为两个部分:上半部分(中断处理程序)和下半部分(推后处理程序)。上半部分需要立即执行,并且有严格的时间限制,这些工作是在所有中断被禁止的情况下完成的,剩余部分工作推迟到下半部分。
下半部分的任务就是执行与中断处理密切相关但中断处理程序本身不执行的工作。在Linux2.6的内核中存在三种不同形式的下半部实现机制:软中断,tasklet和工作队列。
下面将比较三种机制的差别与联系。
软中断: 1、软中断是在编译期间静态分配的。
         2、最多可以有32个软中断。
         3、软中断不会抢占另外一个软中断,唯一可以抢占软中断的是中断处理程序。
         4、可以并发运行在多个CPU上(即使同一类型的也可以)。所以软中断必须设计为可重入的函数(允许多个CPU同时操作),
            因此也需要使用自旋锁来保护其数据结构。
         5、目前只有两个子系直接使用软中断:网络和SCSI。
         6、执行时间有:从硬件中断代码返回时、在ksoftirqd内核线程中和某些显示检查并执行软中断的代码中。
tasklet: 1、tasklet是使用两类软中断实现的:HI_SOFTIRQ和TASKLET_SOFTIRQ。
          2、可以动态增加减少,没有数量限制。
          3、同一类tasklet不能并发执行。
          4、不同类型可以并发执行。
          5、大部分情况使用tasklet。
工作队列: 1、由内核线程去执行,换句话说总在进程上下文执行。
          2、可以睡眠,阻塞。

本文转载自:http://sunxinrui.blog.sohu.com/120659923.html

共有 人打赏支持
z
粉丝 0
博文 38
码字总数 20723
作品 0
深圳
程序员
linux内核设计与实现 —— 中断和中断处理(第7章,第8章)

中断和中断处理 中断的目的:让处理器最快地响应外部硬件的请求。 中断本质上是一种特殊的电信号,由硬件设备发向处理器,处理器反映到操作系统中,最后由操作系统处理这个中断电信号。 不同...

u010503121
05/29
0
0
linux中断处理原理分析

Tasklet作为一种新机制,显然可以承担更多的优点。正好这时候SMP越来越火了,因此又在tasklet中加入了SMP机制,保证同种中断只能在一个cpu上执行。在软中断时代,显然没有这种考虑。因此同一...

石沉大海
2016/08/27
10
0
高级字符设备驱动--中断下半部机制之tasklet(一)

综述 Linux把中断处理例程分两部分: 上半分:实际响应中断的例程。 下半分:被顶部分调用,通过开中断的方式进行。 两种机制实现: Tasklet 工作队列work queue 上半部的功能是"登记中断",...

长平狐
2012/09/03
94
0
Linux中断(interrupt)子系统之五:软中断(softIRQ)

软中断(softIRQ)是内核提供的一种延迟执行机制,它完全由软件触发,虽然说是延迟机制,实际上,在大多数情况下,它与普通进程相比,能得到更快的响应时间。软中断也是其他一些内核机制的基...

nothingfinal
2012/06/27
0
0
[arm 驱动]linux内核驱动之中断下半部编程

本文部分参考华清远见文档 中断上半部要求执行时间间隔段,所以往往将处理时间较长的代码放在中断下半部来处理 中断下半部的应用:网卡驱动上半部初始化网卡驱动等短时间的事件,下半部收发数...

lilin9105
2014/05/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 放假前期焦虑症晚期

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @andonny :分享Matteo的单曲《Panama》: 《Panama》- Matteo 手机党少年们想听歌,请使劲儿戳(这里) @新垣吉衣OSC :我发现只要去有小朋友...

小小编辑
7分钟前
3
3
wait()被notify()后,接着执行wait()后面的语句

wait()被notify()后,接着执行wait()后面的语句

noteman
39分钟前
1
0
Ubuntu集群-使用MAAS开始裸机安装

Ubuntu使用MAAS装机的七个步骤。 1、Setup your hardware You need one small server for MAAS and at least one server which can be managed with a BMC. It is recommended to have the M......

openthings
52分钟前
3
0
OSX | SafariBookmarksSyncAgent意外退出解决方法

1. 启动系统, 按住⌘-R不松手2. 在实用工具(Utilities)下打开终端,输入csrutil disable, 然后回车; 你就看到提示系统完整性保护(SIP: System Integrity Protection)已禁用3. 输入reboot回车...

云迹
今天
4
0
面向对象类之间的关系

面向对象类之间的关系:is-a、has-a、use-a is-a关系也叫继承或泛化,比如大雁和鸟类之间的关系就是继承。 has-a关系称为关联关系,例如企鹅在气候寒冷的地方生活,“企鹅”和“气候”就是关...

gackey
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部