我了解进程(父级)可以使用sched_setaffinity
固定到核心,然后分叉进程会继承关联,也会被固定在同一个核心上。但是,我不想永远将它们固定在同一个核心上。理想情况下,我想要的是让他们在同一个 CPU 上保持在一起,即如果父调度程序迁移了父级,则子级应该跟随父级并转移到与父级相同的CPU。
一种可能的方法是让shared variable
父级定期更新其当前CPU。然后,子节点可以定期查找此变量,并sched_setaffinity
迁移到与父节点相同的CPU。但是,这看起来有点hacky,并且可能涉及它们在不同的CPU上运行的时段。有没有更好的方法来实现这个目标?
答案 0 :(得分:1)
是否可以在线程中而不是在自己的进程中运行子进程?
答案 1 :(得分:0)
Gang计划会有帮助吗?然后父母和孩子将共同安排。