调度程序能否自动将亲缘关系设置为非常繁忙 cpu 到 `sched_setaffinity` 的线程迁移到空闲 cpu?

Could scheduler automatically migrate the thread whose affinity has been set to a very busy cpu through `sched_setaffinity` to a free cpu?

调度程序能否自动将亲缘关系设置为非常繁忙 cpu 到 sched_setaffinity 的线程迁移到空闲 cpu?

sched_setaffinity 实现了 "hard affinity" 还是 "soft affinity"?

我所说的 "soft affinity" 是它告诉调度程序线程更喜欢 运行 在特定 cpu 上,并且可以在必要时迁移到其他 cpu。

我所说的 "hard affinity" 是它告诉调度程序线程必须 运行 在特定的 cpu 上,无论线程必须等待 cpu 资源多长时间.

我清楚的记得在windowsindeed.Is下面有api可以提供"soft affinity"和"hard affinity"[= =38=] 可以在 linux?

下提供 "soft affinity"

没有。如果一个进程只对一个 CPU 有亲和力,那么无论如何它只会对那个 CPU 运行。换句话说,这符合您对 "hard affinity".

的定义

如果使用不当,此功能当然是一把双刃剑:如果 CPU 仅专用于该任务,则将任务的亲和力设置为单个 CPU 会带来很大好处,但如果 CPU 不是,它会降低性能,并且它会以某种方式承受重负载。