1:等待队列就相当于一个容器;存放暂时无法进行的进程(可以使自己不让进程继续执行下去,也可以是客观条件达不到进程必须要停下)。
步骤:先定义一个等待队列,再初始化。有具体函数(查资料)
2:进入等待队列:如何让一个进程进入等待队列(假设有等待队列wq),采用函数wait_event(wq,condition) wait_event_interrupttible(wq,condition)等函数。当condition为0时,访问该驱动的进程便进入等待队列。进入睡眠模式。
3:唤醒进程:如何唤醒在等待队列中的进程。使用wake_up(*wq)等函数,唤醒后,进程将推出等待队列,继续接着执行。
注:等待队列是驱动里面的东西,一个驱动程序里定义的等待队列可以存放不一样的进程,不同的进程也可以互相唤醒。 |