0

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

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

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

4

1 回答 1

1

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

pthread_setaffinity_np() 函数将线程线程的CPU 亲和掩码设置为cpuset 指向的CPU 集。如果调用成功,并且线程当前未在 cpuset 中的一个 CPU 上运行,则将其迁移到这些 CPU 之一。

于 2016-02-23T17:57:04.353 回答