- 博客(5)
- 收藏
- 关注
原创 linux 等待队列
Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。 在这个链表中,有两种数据结构:等待队列头(wait_queue_head_t)和等待队列项(wait_queue_t)。等待队列头和等待队列项中都包含一个list_head类型的域作为"连接件"。它通过一个双链表和把等待tast的头,和等待的进程列表链接起来。从上图可以清晰看到
2013-07-10 14:02:13 263
转载 LDD3源码分析之llseek分析
作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz 编译环境:Ubuntu 10.10 内核版本:2.6.32-38-generic-pae LDD3源码路径:examples/scull/main.c 本文分析LDD3第6章的llseek函数。 一、用户空间的lseek函数 要理解驱动中llseek函数的实现,必须先
2013-07-10 14:00:56 356
转载 巧夺天工的kfifo
Linux kernel里面从来就不缺少简洁,优雅和高效的代码,只是我们缺少发现和品味的眼光。在Linux kernel里面,简洁并不表示代码使用神出鬼没的超然技巧,相反,它使用的不过是大家非常熟悉的基础数据结构,但是kernel开发者能从基础的数据结构中,提炼出优美的特性。 kfifo就是这样的一类优美代码,它十分简洁,绝无多余的一行代码,却非常高效。关于kfifo信息如下: 本文分
2013-07-10 11:19:53 284
转载 Poll机制分析
最近看了一下Linux Poll 机制的实现,看了韦老师的分析文档,总结如下: int poll(struct pollfd *fds,nfds_t nfds, int timeout); 总的来说,Poll机制会判断fds中的文件是否可读,如果可读则会立即返回,返回的值就是可读fd的数量,如果不可读,那么就进程就会休眠timeout这么长的时间,然后再来判断是否有文件可读,如果有,返
2013-07-10 10:23:10 339
转载 内核同步--信号量,互斥体,自旋锁
在驱动编程中,这三个是用来管理竞态的有用工具。差别简述如下: 信号量:允许使用它的代码休眠,持有锁的时间可相对较长。 互斥体(锁):信号量的特殊形式。只有0、1两种状态 自旋锁: 优点:低开销; 注意:持有锁的时间应尽量短,不允许使用它的代码休眠 详见下面分析: 在
2013-07-10 09:45:08 366
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人