0

我想更新内核以在任务之间切换时做更多的事情,为此我需要找到每次切换的原因。

首先,当有比当前任务更高优先级的任务并且需要切换它们时,我找不到调用 schedule() 的函数,它发生在哪里?

其次,任务是否有任何理由让出CPU 而不是退出或等待某事?有没有屈服函数之类的?

谢谢!

4

1 回答 1

0
  1. 检查这个 prio_changed_fair (类似你可以参考其他调度类)
  2. 如果它处于无限循环中,任务将不会产生,但内核可以根据时间片调度另一个任务。是的linux有yield功能。
于 2014-04-15T12:22:04.193 回答