当前位置: 首页 > 面试题库 >

如何在Linux中的C或C ++中为进程设置CPU亲和力?

聂炜
2023-03-14
问题内容

是否有一种编程方法来为Linux操作系统的c / c ++设置进程的CPU关联性?


问题答案:

您需要使用sched_setaffinity(2)

例如,仅在CPU 0和2上运行:

#define _GNU_SOURCE
#include <sched.h>

cpu_set_t  mask;
CPU_ZERO(&mask);
CPU_SET(0, &mask);
CPU_SET(2, &mask);
int result = sched_setaffinity(0, sizeof(mask), &mask);

0第一个参数表示当前进程,如果要控制其他进程,则提供PID)。

另请参阅sched_getcpu(3)



 类似资料:
  • 问题内容: 如何在C或C ++代码中以编程方式设置一个断点,该断点将在Linux上适用于gdb? 即: 问题答案: 一种方法是发出中断信号: 在C中: 更新 :MSDN指出 Windows并不真正支持,因此,如果考虑到可移植性,最好使用。

  • 问题内容: 我想以编程方式[在C中]为Linux中给定进程ID计算CPU使用率%。 如何获得给定进程的实时CPU使用率%? 为了进一步说明: 我应该能够确定所提供的processid或进程的CPU使用率。 该进程不必是子进程。 我想要“ C”语言的解决方案。 问题答案: 您需要从中解析出数据。这些是前几个字段(来自内核源代码): 您可能在和/或之后。您还需要从中读取行,如下所示: 这将告诉您已在各

  • 问题内容: 通过使用strace和ifconfig,我发现可以通过以下方式设置IP地址: 但是我对这种解决方案不是很满意: 这样做的“正确”方法是什么? 问题答案: 没有魔术+2的IPv4的“正确”方式: 要使用IPv6,请将其强制转换为

  • 本文向大家介绍如何在Windows中的Eclipse上设置C / C ++?,包括了如何在Windows中的Eclipse上设置C / C ++?的使用技巧和注意事项,需要的朋友参考一下 步骤1-安装MinGW GCC或Cygwin GCC 要将Eclipse用于C / C ++编程,您需要一个C / C ++编译器。在Windows上,您可以安装MinGW GCC或Cygwin GCC。如果不确

  • 问题内容: 我想知道是否有某种方法可以在运行某个应用程序之前强制将某些特定进程ID运用于Linux。我需要提前知道进程ID。 问题答案: 实际上,有一种方法可以做到这一点。由于设置了CONFIG_CHECKPOINT_RESTORE的内核3.3(在大多数发行版中已设置),因此存在/ proc / sys / kernel / ns_last_pid,其中包含内核生成的最后一个pid。因此,如果要为

  • 问题内容: 我正在编写一个跨平台程序。我希望这个程序可以在Windows和Linux上运行,所以对于两个平台,我有两个不同的代码段。如果操作系统是Windows,则我希望第一个代码段可以运行;如果是Linux,那么我要运行第二个代码段。 所以我写了下面的代码,但是在Windows和Linux上构建时都会出错。我该怎么解决? 问题答案: 通常是这样完成的(或多或少): 这样,只有在Linux平台上才