将正在运行的进程/线程迁移到不同的核心

时间:2016-02-23 17:46:05

标签: linux multithreading process-migration

有没有办法通过触发从另一个进程迁移来将当前正在运行的进程迁移到另一个cpu核心。

以下是我想要做的更详细的内容。 我正在研究异构处理器系统。我有一个在系统上运行的多线程应用程序。我希望每当我的经理进程决定时,将其中一个线程迁移到不同的核心(具有不同的功能)。

我的经理进程是否可以触发目标应用程序pid的特定tid的线程迁移? 如果是这样,是否可以立即完成,即在我的经理进程触发后,正在运行的线程会立即迁移到另一个核心(比如从核心0到核心1)?

1 个答案:

答案 0 :(得分:1)

我想这应该是可行的(如果你使用POSIX线程API)使用pthread_setaffinity_np(3)

  

pthread_setaffinity_np()函数设置CPU亲和性掩码   cpuset指向CPU集的线程线程。如果是电话   成功,并且该线程当前未在其中一个CPU上运行   在cpuset中,它将被迁移到其中一个CPU。