新唤醒的进程不必一定由完全公平调度器处理, 如果新进程是一个实时进程, 则会立即请求调度, 因为实时进程优先极高, 实时进程总会抢占CFS进程.
2 Linux进程的睡眠
在Linux中,仅等待CPU时间的进程称为就绪进程...在Linux操作系统中, 内核的稳定性至关重要, 为了避免在Linux操作系统内核中出现无效唤醒问题, Linux内核在需要进程睡眠的时候应该使用类似如下的操作:
/* ‘q’是我们希望睡眠的等待队列...内核中有很多地方使用了避免无效唤醒的时候, 最普遍的地方是内核线程的, 因为内核线程的主要功能是辅助内核完成一定的工作的, 大多数情况下他们处于睡眠态, 当内核发现有任务要做的时候, 才会唤醒它们.
5.2...2号进程的例子-避免无效抢占
下面让我们用linux内核中的实例来看看Linux 内核是如何避免无效睡眠的, 我还记得2号进程吧, 它的主要工作就是接手内核线程kthread的创建, 其工作流程函数是..., 可以多个内核线程在同一个worker上工作, 共同完成work的工作, 有点像线程池的工作方式.