linux中断流程以及下半部机制

    本文将介绍中断处理流程以及下半部机制(软中断、tasklet、工作队列)。其中会有参考《深入Linux设备驱动程序内核机制》中的图片。

1. 中断处理流程

 

2. 软中断

3. tasklet

4. 工作队列

    关于工作队列,推荐两篇文章:

http://blog.csdn.net/dog250/article/details/6118419

http://blog.csdn.net/zzhere2007/article/details/9290909

    在此简单总结下工作队列,“新内核中的所有工作队列被排队到一个global_cwq的每cpu的队列中,你仍然可以调用create_workqueue创建很多的具体的工作队列,但是这样创建的工作队列除了其参数中的flag起作用外,对排队其中的具体动作没有任何约束性,所有的工作都排队到了一个每cpu队列中,然后原则上按照排队的顺序进行执行,期间受到排队workqueue的flag进行微调。”

    使用int queue_work(struct workqueue_struct *wq, struct work_struct *work):

        1. 将work_struct添加到练笔1中,其中work_struct->func就是待处理的函数。

        2. weak_up_process(worker->task),唤醒链表2中的线程task,task(worker_thread)会处理链表1中待处理的work_struct。

   

    使用工作队列workqueue:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值