高优先级任务到来时如何调用调度程序

时间:2013-08-26 17:17:30

标签: linux scheduling scheduler

我有read here关于调用调度程序的情况。但是当高优先级任务到来时会发生什么?

3 个答案:

答案 0 :(得分:1)

高优先级任务的调度次数比低优先级任务更频繁,但是当高优先级任务到来时,它仍然必须等到正在运行的任务的quantum结束。

答案 1 :(得分:0)

优先级更改,并根据过去的CPU使用情况进行调整。

The longer version

  

在Linux中,进程优先级是动态的。调度程序会跟踪正在执行的进程并定期调整其优先级;以这种方式,通过动态地增加它们的优先级来提高已被拒绝长时间间隔使用CPU的进程。相应地,长时间运行的进程会因降低优先级而受到惩罚。

答案 2 :(得分:0)

Scheduler维护一组准备好在系统中运行的所有任务。在多优先级系统中,任务集通常支持优先级概念。当高优先级任务到达系统时,它将被放入按优先级排序的任务集中。

与当前正在运行的流程相比,内核中有一些点可以检查是否有更好的流程可供运行。这可能发生在时间片到期或ISR完成时或锁解锁等时。等待调用switch()或_switch()或类似的东西......这是检查任务集的例程并确定当前任务是否为最高prio。

如果当前任务不是最高prio任务,则切换当前任务,从任务集中获取最高prio任务并计划运行。