高级字符设备驱动-内核等待队列笔记
来源:互联网 发布:韦小宝结局知乎 编辑:程序博客网 时间:2024/06/05 11:03
等待队列
在Linux驱动程序设计中,可以使用等待队列来实现进程的阻塞,等待队列可以看作
进程的容器,在进程时,将进程放入等待队列,当唤醒进程时,从等待队列中取出进程。
第一种方法
1)定义等待队列
Wait_queue_head_t my_queue
2)初始化等待队列
Init_waitqueue_head(&my_queue)
第二种方法
定义并初始化等待队列
宏:DECLARE_WAIT_QUEUE_HEAD(my_queue)
3)有条件睡眠
Wait_event(queue,condition)
当condition(一个布尔表达式)为真时,立即返回;
否则为假时让进程进入TASK_UNINTERRUPTIBLE模式的睡眠(不可中断),
并挂在queue参数所制定的等待队列上。
Wait_event_interruptible(queue,condition)
当condition(一个布尔表达式)为真时,立即返回;
否则为假时让进程进入TASK_INTERRUPTIBLE模式的睡眠,
并挂在queue参数所制定的等待队列上。
Int wait_event_killable(wait_queue_t queue,condition)
当condition(一个布尔表达式)为真时,立即返回;
否则为假时让进程进入TASK_KILLABLE模式的睡眠,
并挂在queue参数所制定的等待队列上。
4)无条件睡眠(老版本,建议不再使用)
Sleep_on(wait_queue_head_t *q) 不可中断睡眠
Interruptible_sleep_on(wait_queue_head_t *q) 可终端睡眠
5)从等待队列中唤醒进程
Wake_up(wait_queue_t *q) 唤醒所有进程
Wake_up_interruptible(wait_queue_t *q) 唤醒TASK_INTERRUPTIBLE的进程
- 高级字符设备驱动-内核等待队列笔记
- linux高级字符设备驱动之 二 内核等待队列
- linux驱动开发--字符设备:内核等待队列
- Linux 设备驱动--- 内核等待队列
- 字符设备驱动之Buttons-等待队列
- 字符设备驱动第九课---等待队列
- 高级字符设备驱动-阻塞型字符设备驱动笔记
- linux设备驱动--内核等待队列知识点---结合中断使用
- 字符设备驱动之循环缓冲队列+读写等待
- 内核等待队列(笔记)
- 内核模块编程笔记 - 字符设备驱动
- Linux设备驱动,等待队列
- 高级字符设备驱动
- 高级字符设备驱动-Ioctl设备控制笔记
- 高级字符设备驱动-Poll设备方法笔记
- 高级字符设备驱动-自动创建设备文件笔记
- 高级字符设备驱动-Ioctl设备控制笔记
- 高级字符设备驱动01
- 像FBI谈判专家一样讨论薪酬(转)
- Rsync命令参数详解
- JavaEE程序员必读图书大推荐
- c++面向对象编程必备“良方”(欢迎大家来补充!)
- 丝丝记忆
- 高级字符设备驱动-内核等待队列笔记
- Android 自定义标题栏
- 日本手机开发之一——运营商判别和手机种类名获取
- AVG杀毒软件添加信任程序
- Delegate & Event
- 关于Human-based computing(基于人的计算,人本计算)的一篇好文章
- [iphone开发]关于程序里面“Review in AppStore”的问题
- 关于UltraEdit打开文件按提示转换成dos格式
- 使用批处理+WMI获取指定文件或目录所在的物理磁盘信息