linux中断底半部机制
2014-09-04 20:29
183 查看
中断处理程序
----中断处理程序ISR是在中断发生时被调用时用来处理中断的函数,在中断运行期间,不能
----执行有可能引起睡眠测操作,不能同用户空间交换数据,不能调用schedule函数,实现
----中断处理有一个原则,就是尽可能快处理并返回地,但是多数中断产生时要进行大量的
----耗时处理,为了使中断处理尽可能短并完成后续大量工作,linux引入了一种底半部机制,
----分为顶半部(top half)和底半部(buttomhalf)。
底半部机制
----Tasklet
----工作队列
Tasklet和下半部处理
----tasklet将任务延迟到安全时间执行,每个tasklet都和一个函数相关联,当tasklet运行时,
----该函数就被调用,并且tasklet可以调度自己。
Tasklet的实现
----定义一个处理函数:
----void tasklet_func(unsigned long);
----定义一个tasklet结构my_tasklet与tasklet_func(data)函数关联
----struct tasklet_struct my_tasklet;
----DECLARE_TASKLET(my_tasklet,tasklet_func,data);
----调度tasklet
----tasklet_schedule(&my_tasklet);
工作队列和下半部处理
----工作队列使用方法和tasklet非常相似
----定义一个工作队列:
----struct work_struct my_wq;
----定义一个处理函数
----void my_wq_func(struct work_struct *work);
----初始化工作队列并将其处理函数绑定
----INIT_WORK(&my_wq,my_wq_func);
----调度工作队列执行
----schedule_work(&my_wq);
Tasklet和工作队列的区别
----tasklet工作在中断上下文
----工作队列工作在进程上下文
----tasklet处理函数中不能睡眠
----工作队列中允许有睡眠
----中断处理程序ISR是在中断发生时被调用时用来处理中断的函数,在中断运行期间,不能
----执行有可能引起睡眠测操作,不能同用户空间交换数据,不能调用schedule函数,实现
----中断处理有一个原则,就是尽可能快处理并返回地,但是多数中断产生时要进行大量的
----耗时处理,为了使中断处理尽可能短并完成后续大量工作,linux引入了一种底半部机制,
----分为顶半部(top half)和底半部(buttomhalf)。
底半部机制
----Tasklet
----工作队列
Tasklet和下半部处理
----tasklet将任务延迟到安全时间执行,每个tasklet都和一个函数相关联,当tasklet运行时,
----该函数就被调用,并且tasklet可以调度自己。
Tasklet的实现
----定义一个处理函数:
----void tasklet_func(unsigned long);
----定义一个tasklet结构my_tasklet与tasklet_func(data)函数关联
----struct tasklet_struct my_tasklet;
----DECLARE_TASKLET(my_tasklet,tasklet_func,data);
----调度tasklet
----tasklet_schedule(&my_tasklet);
工作队列和下半部处理
----工作队列使用方法和tasklet非常相似
----定义一个工作队列:
----struct work_struct my_wq;
----定义一个处理函数
----void my_wq_func(struct work_struct *work);
----初始化工作队列并将其处理函数绑定
----INIT_WORK(&my_wq,my_wq_func);
----调度工作队列执行
----schedule_work(&my_wq);
Tasklet和工作队列的区别
----tasklet工作在中断上下文
----工作队列工作在进程上下文
----tasklet处理函数中不能睡眠
----工作队列中允许有睡眠
相关文章推荐
- Linux 2.6中断下半部机制分析
- linux中断下半部实现机制之软中断的实现
- linux中断--中断下半部机制的使用&中断编程
- 把握linux内核设计思想(三):下半部机制之软中断
- linux中断下半部机制
- Linux 2.6中断下半部机制分析
- 把握linux内核设计思想(三):下半部机制之软中断
- linux中断--中断下半部机制的使用 & 中断编程
- [转]Linux 2.6中断下半部机制分析
- linux中断流程以及下半部机制
- linux中断下半部实现机制之软中断
- Linux 2.6中断下半部机制分析
- Linux 2.6中断下半部机制分析
- Linux 2.6中断下半部机制分析
- Linux 中断底半部机制
- linux顶半部和底半部中断机制
- Linux 2.6中断下半部机制分析
- 《Linux设备驱动开发详解》-- Linux中断处理底半部机制(tasklet、工作队列和软中断)
- linux中断底半部机制
- linux顶半部和底半部中断机制