Chinaunix

标题: 工作队列中添加的任务是依次执行 , 还是并发执行?? [打印本页]

作者: pcl001    时间: 2009-01-03 13:09
标题: 工作队列中添加的任务是依次执行 , 还是并发执行??
工作队列中添加的任务是依次执行 , 还是并发执行?? 请教大侠??
作者: dreamice    时间: 2009-01-03 13:28
标题: 回复 #1 pcl001 的帖子
如果所有工作队列中的任务都被唤醒了,那么他们将竞争获得被调度,就是说所有的任务状态都变为running,当然可以说是并发执行的。
互斥任务只能被唤醒一个,所以,多个等待的互斥任务是无法并发执行的。
作者: pcl001    时间: 2009-01-03 13:56
标题: 斑主能来个详细点的代码吗?
简单一说有点迷糊
作者: pcl001    时间: 2009-01-03 13:58
标题: 添加到工作队列的任务 ,也不知道怎么删除 , 或者释放
LDD3不详细呀
作者: dreamice    时间: 2009-01-03 14:30
标题: 回复 #4 pcl001 的帖子
你结合ULK看一下吧,过两天我写个实例出来大家分享
作者: pcl001    时间: 2009-01-03 14:35
标题: ULK是那本书哦 , 抱歉 ,问的比较低档!
早日期待dreamice 实例
作者: dreamice    时间: 2009-01-03 14:51
原帖由 pcl001 于 2009-1-3 14:35 发表
早日期待dreamice 实例


深入理解linux内核 第三版
作者: pcl001    时间: 2009-01-03 15:01
标题: 谢谢!!
还没开始看内核 ,打算把驱动和应用先熟悉到一定程度那 ,再看内核!!
作者: vn42    时间: 2009-01-03 15:05
似乎就是内核线程
作者: dreamice    时间: 2009-01-03 15:07
原帖由 dreamice 于 2009-1-3 13:28 发表
如果所有工作队列中的任务都被唤醒了,那么他们将竞争获得被调度,就是说所有的任务状态都变为running,当然可以说是并发执行的。
互斥任务只能被唤醒一个,所以,多个等待的互斥任务是无法并发执行的。


不好意思,我这里把工作队列和等待队列弄混淆了
工作队列是由内核线程调度的,如果是single CPU的情况,他是串行执行的。
作者: emmoblin    时间: 2009-01-03 20:03
如果是多cpu的话,是并行执行的
作者: pcl001    时间: 2009-01-03 22:06
标题: 现在单处理器的话 ,是怎么个串行执行法?
先插入的先执行?

后插入等先插入的执行完成那 ,再执行??

还有怎么删除一个已经执行完成的任务?大侠指点
作者: dreamice    时间: 2009-01-03 22:27
标题: 回复 #12 pcl001 的帖子
给你看个例子,自己跑一下,会有比较直观的印象。
http://blog.chinaunix.net/u2/74189/showart_1771314.html
后面我会分析关于工作队列的内核实现机制。
作者: pcl001    时间: 2009-01-03 23:01
标题: 谢谢 dreamice 大侠的帮助
我好好看看!!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2