任务集与 sched_setaffinity 之间的交互

Interaction between taskset and sched_setaffinity

谁能告诉我如果我 运行

会发生什么
taskset -c 7 ./fred.x

但是在 fred.x 内部有一个线程正在调用 sched_setaffinity 绑定到核心 6?

该线程会获得任何 cpu 时间,还是会无限期地保持空闲状态?

taskset 本身调用 sched_setaffinity() 然后 execve 到 运行 你的命令。所以这个问题归结为 "What happens if I call sched_setaffinity() twice in the same thread?" 答案是,第二个调用覆盖了第一个。

因此在您的具体示例中,调用 sched_setaffinity() 的线程确实会绑定到核心 6,并且它将 运行nable。