有没有办法将处理器从正常的日程安排中排除?
也就是说,使用sched_setaffinity
我可以指出一个线程应该在哪个处理器上运行,但我正在寻找一种反向的。也就是说,我想从正常的调度中排除给定的处理器,这样只有那里明确安排的进程才能在那里运行。
我也知道在启动过程中我可以限制init进程使用的处理器,因此所有继承的进程都是如此。然而,我希望有一个比这更动态的解决方案 - 我可以在启动后更改。
请注意,我正在寻找线程,而不仅仅是高级进程(在某些情况下这可能会有所不同)。
答案 0 :(得分:4)
cgroups,或者具体地说,cgroups基础结构的cpuset部分是在Linux中实现它的方法。请参阅http://www.kernel.org/doc/Documentation/cgroups/cpusets.txt中的第1.4节“独占cpusets”。
然后再次,如果你在评论中说,你的系统没有启用cpusets,那你就不走运了。
另外,你所要求的可能略显不正统;也许如果你要解释你实际上想要实现的目标,那么人们就能指出你的替代解决方案。