- 等待队列
- 用来实现进程的阻塞
- 1.定义等待队列
- wait_queue_head_t my_queue
- 2.初始化等待队列
- init_waitqueue_head(&my_queue)
- 3.定义并初始化等待队列
- DECLARE_WAIT_QUEUE_HEAD(my_queue)
- 4.有条件睡眠
- wait_ecent(queue, condition)
- condition为真时不会睡眠,立即返回
- 进程进入TASk_UNINTERRUPTIBLE
- wait_event_interruptible(queue, condition)
- 进程进入TASk_INTERRUPTIBLE
- wait_event_killable(queue, condition)
- 进程进入TASk_KILLABLE
- 5.无条件睡眠
- sleep_on(wait_queue_head *q)
- 进入不可中断的睡眠
- interruptible_sleep_on(wait_queue_head_t *q)
- 进入不可中断的睡眠
- 6.从等待队列中唤醒进程
- wake_up(wait_queue_t *q)
- 从进程队列q中唤醒状态为TASK_UNINTERRUPTIBLE,TASK_INTERRUPTIBLE,TASK_KILLABLE的所有进程
- wake_up_interruptible(wait_queue_t *q)
- 从进程队列q中唤醒状态为TASK_INTERRUPTIBLE的所有进程