4

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?

4

5 回答 5

2

TIF_NEED_RESCHED是线程信息标志之一。它告诉schedule需要在中断和用户空间返回路径时调用。请参阅此处__schedule的功能说明...

于 2013-09-02T19:16:16.457 回答
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 回答