软中断 tasklet 工作队列

网友投稿 686 2022-11-13

软中断 tasklet 工作队列

软中断  tasklet  工作队列

软中断

1 软中断作为下半部机制的代表, 2 是随着SMP(share memory processor)的出现应运而生的 3 软中断是tasklet实现的基础(tasklet实际上只是在软中断的基础上添加了一定的机制)。 4 软中断一般是“可延迟函数”的总称 5 软中断可以在多个CPU上并行执行 6 软中断 可以并发运行在多个CPU上(即使同一类型的也可以)。所以软中断必须设计为可重入的函数(允许多个CPU同时操作),因此也需要使用自旋锁来保其数据结构。

struct softirq_action{ void (*action)(struct softirq_action *);}; 描述每一种类型的软中断,其中void(*action)是软中断触发时的执行函数。

tasklet

1 由于软中断必须使用可重入函数,这就导致设计上的复杂度变高,作为设备驱动程序的开发者来说,增加了负担。

2 一种特定类型的tasklet只能运行在一个CPU上,不能并行,只能串行执行

3 软中断是静态分配的,在内核编译好之后,就不能改变。但tasklet就灵活许多,可以在运行时改变(比如添加模块时)。

软中断上下文能够睡眠吗?

软中断的数据结构不能 被任务调度器。 中断上下文

工作队列

1 可以执行 阻塞和睡眠 软中断跟tasklet 是不可以的。 2 并发性差,因为工作线程跟cpu是一 一绑定的。

参考于​​​Linux内核中的软中断、tasklet和工作队列详解​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:springboot全局配置文件与多环境配置的全过程
下一篇:ssh登陆 “remote host identification has changed!“ 解决方案
相关文章

 发表评论

暂时没有评论,来抢沙发吧~