【问题标题】:Interaction between taskset and sched_setaffinity任务集和 sched_setaffinity 之间的交互
【发布时间】:2015-01-12 13:17:09
【问题描述】:

谁能告诉我如果我跑了会发生什么

taskset -c 7 ./fred.x

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

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

【问题讨论】:

  • 我发誓我应该编写一个脚本来挑选新帖子并更改或重新格式化随机选择。我的意思是,3分钟并不是一个快速的转变。就好像人们甚至没有在看。

标签: linux affinity


【解决方案1】:

taskset 本身调用sched_setaffinity() 然后execve 来运行你的命令。所以这个问题归结为“如果我在同一个线程中调用sched_setaffinity() 两次会发生什么?”答案是,第二个调用会覆盖第一个。

所以在您的具体示例中,调用sched_setaffinity() 的线程确实会绑定到核心6,并且可以运行。

【讨论】:

  • 感谢您的及时回复。据我了解,taskset 会影响进程,而 sched_setaffinity 会影响线程。只要你向我保证,这两个事情不会发生两个不重叠的核心亲和力,你就明白了!
  • taskset 只是为您调用sched_setaffinity()。它“影响进程”,因为当你的程序启动时它只有一个线程。之后你在程序中所做的事情与taskset 无关,也不可能,因为一旦taskset 调用execvetaskset 代码就不再运行——你的进程正在运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 2012-09-06
  • 2016-11-11
  • 2016-05-15
  • 2015-03-31
  • 2014-06-28
  • 2015-07-17
相关资源
最近更新 更多