微前端架构如何改变企业的开发模式与效率提升
686
2022-11-13
软中断 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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~