What is the purpose of TIF_NEED_RESCHED
in a Linux scheduler (say CFS)? In case of writing a new scheduling class, can this flag be used? If yes, where and how can this flag be used for a new scheduling class?
问问题
2326 次
5 回答
2
TIF_NEED_RESCHED
设置为表示一个通常当前正在运行的任务需要重新调度,以便任务正在运行的核心可用于其他任务。换句话说:如果已确定任务已使用其时间片并且应该被抢占,则设置 TIF_NEED_RESCHED 标志。由于某些原因,设置标志和实际抢占任务是在两个不同的场合和时间点完成的。例如,可以在中断的处理程序中设置标志,但实际重新调度是在稍后完成的。
侧节点:TIF 代表“线程信息标志”。
于 2019-11-29T13:42:53.843 回答
0
TIF_NEED_RESCHED 设置为需要抢占以便从队列中调度另一个进程(或空闲进程)的活动进程。在每个系统滴答声中,都会调用 check_preempt_tick() 来检查任务是否运行了足够长的时间,以便为另一个需要的进程提供公平的机会。然后它调用 resched_curr 来设置标志。但是,任务不能突然被抢占。抢占发生在某些点,例如中断退出。因此,当计时器退出时,会检查标志并调用调度程序入口 schedule()。
于 2020-07-15T08:10:29.700 回答
-1
TIF_NEED_RESCHED 是与 Linux 内核中的每个任务一起存储的众多“线程信息标志”之一。对抢占工作至关重要的标志之一是 TIF_NEED_RESCHED
于 2020-12-02T10:04:58.587 回答
-2
我认为如果你重写调度器,你可以使用这个标志作为值,但你将实现你所做的。
于 2013-09-02T18:30:36.303 回答