内核设计与实现
文章平均质量分 75
wujiangguizhen
这个作者很懒,什么都没留下…
展开
-
工作队列、tasklet、软中断的用法总结
下面把API罗列一下,每个函数的解释可参考之前版本的介绍或者之后的实作:1234567891011INIT_WORK(struct work_struct *work, work_func_t func);INIT_DELAYED_WORK(str原创 2013-12-10 15:11:07 · 1556 阅读 · 0 评论 -
linux 工作队列
NIT_DELAYED_WORK()是一个宏,我们给它传递了两个参数.&hub->leds和led_work.对设备驱动熟悉的人不会觉得INIT_DELAYED_WORK()很陌生,其实鸦片战争那会儿就有这个宏了,只不过从2.6.20的内核开始这个宏做了改变,原来这个宏是三个参数,后来改成了两个参数,所以经常在网上看见一些同志抱怨说最近某个模块编译失败了,说什么make的时候遇见这么一个错误:转载 2013-12-10 15:25:58 · 711 阅读 · 0 评论 -
Linux中的工作队列
工作队列(work queue)是Linux kernel中将工作推后执行的一种机制。这种机制和BH或Tasklets不同之处在于工作队列是把推后的工作交由一个内核线程去执行,因此工作队列的优势就在于它允许重新调度甚至睡眠。工作队列是2.6内核开始引入的机制,在2.6.20之后,工作队列的数据结构发生了一些变化,因此本文分成两个部分对2.6.20之前和之后的版本分别做介绍。转载 2013-12-10 15:38:21 · 578 阅读 · 0 评论 -
ubuntu交叉编译环境配置
折腾了一下午,终于在Debian下弄好了交叉编译环境,在网上查了一大堆的资料,大都是乱七八糟的,总是出现这样那样的问题,经过尝试和探索,终于搞定了,现将我构建的过程总结一下,作个记录,UBUNTU下也类似。本文地址:http://blog.sina.com.cn/s/blog_5a155e330100bqjc.html1. 安装标准的C开发环境,由于Linux安装默认是不安装的,所以需转载 2013-12-10 14:48:06 · 1183 阅读 · 0 评论 -
Linux 开机脚本启动顺序--inittab脚本启动解析
Linux 开机脚本启动顺序: 第一步:启动内核第二步:执行init (配置文件/etc/inittab)第三步:启动相应的脚本,执行inittab脚本,并且执行里面的脚本/etc/init.d rc.sysinit rc.d rc.local。。。第四步:启动login登录界面 login第五步:在用户登录的时候执行sh脚本的顺序:每次登录的时候都会完转载 2013-12-10 14:26:14 · 6675 阅读 · 0 评论 -
Linux 工作队列和等待队列的区别
work queue是一种bottom half,中断处理的后半程,强调的是动态的概念,即work是重点,而queue是其次。wait queue是一种「任务队列」,可以把一些进程放在上面睡眠等待某个事件,强调静态多一些,重点在queue上,即它就是一个queue,这个queue如何调度,什么时候调度并不重要。对这2个容易混淆的队列做简单概念上的区别,怎么用?转载 2013-12-05 15:04:22 · 2928 阅读 · 0 评论 -
linux内核工作队列讲解和源码详细注释
1. 前言 工作队列(workqueue)的Linux内核中的定义的用来处理不是很紧急事件的回调方式处理方法。 以下代码的linux内核版本为2.6.19.2, 源代码文件主要为kernel/workqueue.c. 2. 数据结构 /* include/linux/workqueue.h */ // 工作节点结构struct work_struct { /转载 2013-12-05 15:01:52 · 1839 阅读 · 0 评论 -
tasklet、工作队列 - [linux内核]
注:软中断、tasklet、工作队列、等待队列、完成量关系tasklet 依靠 软中断实现工作队列[工作者线程可能睡眠在该cpu的工作队列->wait_queue_head_t中]、完成量 依靠 等待队列实现工作队列[queue_delayed_work]、等待队列[等待资源指定时间]、完成量[等待操作指定时间] 依靠 时间管理1 tasklet原理和执行切入点tasklet转载 2013-12-05 14:59:58 · 1340 阅读 · 0 评论