论文部分内容阅读
通用Linux内核中的等待队列及其操作是内核实现进程睡眠与唤醒机制的关键。当一个运行中的进程因操作受阻而不得不进入睡眠状态时,进程把自己标志成睡眠状态,并把自己从可执行队列中移出,放入等待队列,然后调用函数schedule()让内核选择另一个进程投入运行;当与等待队列相关的事件发生时,等待队列中的进程将被唤醒,被唤醒的进程会被重新设置成可执行状态,并从等待队列中移入可执行队列接受内核调度。下面以Linux-2.6.10内核为例,剖析等待队列操作在内核中的代码实现。