12 Linux驱动之阻塞IO

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了12 Linux驱动之阻塞IO相关的知识,希望对你有一定的参考价值。

阻塞IO机制:使用等待队列

1.定义等待队列头

wait_queue_head_t read_wait;

2.初始化等待队列头

init_waitqueue_head(wait_queue_head_t *q);

3.让进程等待
int wait_event(wait_queue_head_t wq ,bool condition); //条件为假的时候,设为不可中断的等待
int wait_event_interruptible(wait_queue_head_t wq,bool condition)//条件为假的时候,设为可中断等待
返回值:
正常唤醒返回0,被信号唤醒返回非0

注意:condition提供的条件,为假的时候,才睡眠


4.唤醒等待进程
wake_up(wait_queue_head_t *q);//唤醒的等待队列中所有进程
wake_up_interruptible(wait_queue_head_t *q) //唤醒等待队列中可中断的进程

 

schedule()










以上是关于12 Linux驱动之阻塞IO的主要内容,如果未能解决你的问题,请参考以下文章

Linux设备驱动基础03之阻塞与非阻塞IO

Linux设备驱动基础03之阻塞与非阻塞IO

Linux设备驱动基础03之阻塞与非阻塞IO

Linux设备驱动基础03之阻塞与非阻塞IO

Linux驱动之同步互斥阻塞的应用

字符设备驱动程序之同步互斥阻塞