强制调度程序将线程分配给特定的处理器

时间:2013-02-20 11:44:26

标签: linux multithreading multiprocessing scheduling multicore

考虑我们有多个处理器/核心和两个线程的情况。是否有可能强制linux调度程序始终在每个执行实例上将特定线程(两者)调度到特定处理器。在创建时为线程设置处理器亲和性,足以达到此目的

1 个答案:

答案 0 :(得分:3)

如果查看taskset的手册页,您可以看到以下声明:

  

Linux调度程序将遵循给定的CPU关联,并且该进程不会在任何其他CPU上运行。

这意味着为特定进程设置CPU关联性将确保它始终在该CPU上运行。

存在允许您为特定线程设置线程关联的API,我想这也将受到OS调度程序的尊重。

如果你看sched_setaffinity,你会看到一行说:

  

内核默默地强制执行对进程运行的实际CPU集的限制。

这意味着这将确保您的线程仅在此函数设置的CPU上运行。