在linux调度程序中,它是否跟踪当前的睡眠任务或被杀死的任务?

时间:2012-07-07 15:41:24

标签: linux sleep scheduler

我知道任务运行时,它会排入正在运行的队列中。当它休眠时,它从正在运行的队列中出列。但是有睡眠任务的队列吗?我在源代码中没有看到这一点。

即使我要创建这样一个队列,我怎么知道任务何时被杀死并且应该从睡眠队列中删除?

任何人都可以给我一个提示吗?谢谢,

1 个答案:

答案 0 :(得分:1)

在Linux中,阻塞(休眠)任务在称为等待队列的结构中排队。每个事件(或对象)都有一个可以等待的等待队列。

因此,没有单个等待队列(或每个核心),而是每个事件等待队列。内核代码显式地将任务放在等待队列上,并在特定事件到达时将其删除。例如,请参阅wait_event()内核API。