首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调度程序能否自动将关联通过`sched_setaffinity`设置为非常繁忙的cpu的线程迁移到空闲的cpu?

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

Stack Overflow用户
提问于 2020-05-20 15:46:07
回答 1查看 86关注 0票数 0

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

sched_setaffinity 是实现“硬亲和力”还是“软亲和力”?

我称之为“软关联”的是,它告诉调度程序,线程更喜欢在特定的cpu上运行,并且在必要时可以迁移到其他cpu。

我称之为“硬关联”的是,它告诉调度程序,无论线程等待cpu资源有多长时间,线程都必须在特定的cpu上运行。

我清楚地记得,有一些api可以在windows indeed.Is下提供“软亲和力”和“硬亲和力”,任何api都可以在linux下提供“软亲和力”。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-20 16:44:45

不是的。如果一个进程只与一个CPU有关联,那么无论如何它都只能在该CPU上运行。换句话说,这符合你对“硬亲和力”的定义。

当然,如果使用不当,此特性可能是一把双刃剑:如果只将CPU专用于单个CPU,则将任务的亲和力设置为单个CPU会带来很大的好处,但如果CPU不是专用于该任务,并且在某种程度上受到沉重的负载,则会降低性能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61917281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档