等待队列
在Linux驱动程序设计中,可以使用等待队列来实现进程的阻塞,等待队列可以看作
进程的容器,在进程时,将进程放入等待队列,当唤醒进程时,从等待队列中取出进程。
第一种方法
1)定义等待队列
Wait_queue_head_tmy_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参数所制定的等待队列上。
Intwait_event_killable(wait_queue_tqueue,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 LED字符设备进行改进,在原来的基础上将驱动进行分层设计,拆分出通用的部分作为系统级驱动,剩余的跟芯片相关的部分作为芯片级驱动,以后系统级驱动和芯片级驱动可单独维护,互不影响。...
13.Linux驱动--等待队列&poll接口 14.Linux内核定时器、工作队列、tasklet 15.Linux字符设备驱动--原子操作、信号量 16.Linux字符设备驱动--平台驱动模型 17.LCD应用程序编程 18.LCD移植 19.LCD驱动 20.input...
博客http://blog.csdn.net/qq_30951423/article/details/76071333中的字符设备驱动,调试通过的。
操作系统专题实验,用文件模拟字符设备,编写字符设备驱动
第三步:insmod加载模块,并生成设备节点mknod。(此步有两种方法); 第四步:编写测试文件test.c并编译成a.out后即可进行设备的读写测试。 在此,希望各位读者不要直接复制我的代码,至少按照我的代码敲一遍,关键...
Linux设备驱动程序学习(1)-字符设备驱动程序 - Linux设备驱动程序
本例子是一个linux字符设备驱动的最简单的例子,有详细的说明,适合初次接触者。
高级字符设备驱动,重点详解等待队列这方面的内容
Linux下支持阻塞操作的字符设备驱动Linux下支持阻塞操作的字符设备驱动Linux下支持阻塞操作的字符设备驱动Linux下支持阻塞操作的字符设备驱动Linux下支持阻塞操作的字符设备驱动Linux下支持阻塞操作的字符设备驱动...
详细介绍了linux字符设备驱动程序,对各个名词做了自己的理解,在学习中的笔记,有错误还请海涵
-第6章、字符设备驱动 -第7章、Linux设备驱动中的并发控制 -第8章、Linux设备驱动中的阻塞与非阻塞IO -第9章、Linux设备驱动中的异步通知与异步IO -第10章、中断与时钟 -第11章、内存与I-O访问 -第12章、Linux字符...
本文深入探讨了Linux设备驱动程序的内核机制,并提供了一个简单的字符设备驱动程序示例。通过源码示例,详细讲解了驱动程序注册与注销、文件操作函数的实现、设备号分配等关键概念和操作方法。 通过学习本文,您将...
做驱动的经典文档,假如理解了本文档,就可以写出其他的驱动程序!
嵌入式LINUX内核驱动进阶班第7天(高级字符设备驱动)
字符设备驱动 按字节来访问的设备驱动 它被组织为一组完成不同任务的函数集合 通过这些函数使得Linux的字符设备操作犹如文件一样 从应用程序的角度看,硬件设备是一个设备文件 对于应用程序工程师来说,使用设备...
linux 字符设备驱动 字符设备是指在I/O传输过程中以字符为单位进行传输的设备,例如键盘,打印机等。请注意,以字符为单位并不一定意味着是以字节为单位,因为有的编码规则规定,1个字符占16比特,合2个字节。 在...
嵌入式全套视频-10-课程(高级字符设备驱动)(硬件访问).rar 嵌入式全套视频-10-课程(高级字符设备驱动)(硬件访问).rar 嵌入式全套视频-10-课程(高级字符设备驱动)(硬件访问).rar
字符设备驱动程序 操作系统OS的课程设计 附带完整课程设计报告