在等待队列中唤醒进程

我正在编写一个Linux内核模块。 有两个进程A,B和两个队列WQA和WQB。 目前stream程A正在WQA上睡觉。

当B在WQB上睡觉的时候,我想让A被唤醒,这样当A开始时,B已经在WQB上等待了。 我怎么能自动唤醒A,并把WQB?

怎么样使用2个信号灯?

进程A在信号量A处睡觉。然后进程B将会提升信号量A并向信号量B请求向下(),这将使他睡眠。 再次,一旦A完成他的工作,它可以提高信号量B(并唤醒B),然后在信号量A上睡觉。