
linux work queue
剥丝机器人
这个作者很懒,什么都没留下…
展开
-
Linux 工作队列和等待队列的区别
work queue是一种bottom half,中断处理的后半程,强调的是动态的概念,即work是重点,而queue是其次。wait queue是一种「任务队列」,可以把一些进程放在上面睡眠等待某个事件,强调静态多一些,重点在queue上,即它就是一个queue,这个queue如何调度,什么时候调度并不重要。对这2个容易混淆的队列做简单概念上的区别,怎么用? 等待队列在内核中有很多用途,尤其适合...转载 2018-05-24 11:26:33 · 2311 阅读 · 0 评论 -
全面解析Linux内核的同步与互斥机制--同步篇
【摘要】本文分析了内核的同步及互斥的几种机制:原子运算符(atomic operator)、自旋锁Spinlock、等待队列Waitqueue、事件Event、completion、信号量Semaphore及其优化版互斥锁,详细分析了其实现流程。Event及Semaphore本质上都是基于Waitqueue和自旋锁实现的。本文还探讨了每种机制最适合应用到哪些地方,以及如何构建安全高效的内核及驱动代...转载 2018-05-24 14:07:32 · 825 阅读 · 0 评论 -
schedule_work 工作队列
工作队列一般用来做滞后的工作,比如在中断里面要做很多事,但是比较耗时,这时就可以把耗时的工作放到工作队列。说白了就是系统延时调度的一个自定义函数。1、定义struct work_struct irq_queue;2、初始化INIT_WORK(&irq_queue,do_irq_queuework);3、调用方法:schedule_work(&rq_queue);注,调用完毕后系统会...转载 2018-05-29 18:12:49 · 7563 阅读 · 0 评论