linux - Linux 上的处理器亲和性

标签 linux multithreading multicore

感谢您到目前为止的所有回答!

我有一个双核处理器,我希望所有进程都在运行 在 core1 但一个。我现在知道我可以使用 taskset 将所有当前运行的设置为 例如,绑定(bind)到处理器 1。现在我希望我的 OWN 应用程序被安排 用于在启动应用程序后立即在处理器 2 上执行。换句话说, 有什么方法可以告诉我的应用程序中的操作系统我想让这个特定程序在 2 号处理器上执行吗?

非常感谢, 马雷卡

最佳答案

看看这篇文章:

http://www.linuxjournal.com/article/6799

详细介绍了主题。

简而言之,确保“init”开始时对一个过程有亲和性(它的 child 将继承),然后你会想要使用:

// (Declaration got via 'man sched_setaffinity')
int sched_setaffinity(pid_t pid, size_t cpusetsize,
                         cpu_set_t *mask);

在程序启动后立即设置进程亲和性。

关于linux - Linux 上的处理器亲和性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2149463/

相关文章:

java - 如何将数据从单独的线程类传递到 Android 中的 Activity

OpenCV 多核支持

linux - CPU_ZERO "undefined symbol"在 NASM 中使用 pthread_setaffinity_np

linux - bochs 从软盘启动 FLOPPY : read() on floppy image returns 0

c# - 任何人都可以看到我重定向这些进程的输出的方式有问题吗?

linux - linux调度进程还是线程?

algorithm - 多核 - 如何合并在每个核心上找到的本地数据组?

multithreading - Spark 如何在多核或超线程机器上实现一项任务内的并行性

linux - 在 Google Ghrome Ubuntu 14.04 上安装自定义插件

C++ boost : is it included by default in most Linux distros?