相关函数:
sched_setaffinity, sched_getaffinity, CPU_CLR, CPU_ISSET, CPU_SET, CPU_ZERO - set and get a process's CPU affinity mask
#define _GNU_SOURCE
#include <sched.h>
int sched_setaffinity(pid_t pid, unsigned int cpusetsize,
cpu_set_t *mask);
int sched_getaffinity(pid_t pid, unsigned int cpusetsize,
cpu_set_t *mask);
void CPU_CLR(int cpu, cpu_set_t *set);
int CPU_ISSET(int cpu, cpu_set_t *set);
void CPU_SET(int cpu, cpu_set_t *set);
void CPU_ZERO(cpu_set_t *set);
#include <sched.h>
int sched_setaffinity(pid_t pid, unsigned int cpusetsize,
cpu_set_t *mask);
int sched_getaffinity(pid_t pid, unsigned int cpusetsize,
cpu_set_t *mask);
void CPU_CLR(int cpu, cpu_set_t *set);
int CPU_ISSET(int cpu, cpu_set_t *set);
void CPU_SET(int cpu, cpu_set_t *set);
void CPU_ZERO(cpu_set_t *set);
CPU_ZERO(&mask);
CPU_SET(cpu_id, &mask);
sched_setaffinity(pid, sizeof(mask), &mask);
本文深入探讨了Linux内核中用于管理进程在CPU核心上的运行的sched_setaffinity、sched_getaffinity等关键函数。通过示例展示了如何设置和获取进程的CPU亲和性掩码,实现更精细的资源分配与负载均衡。
1224

被折叠的 条评论
为什么被折叠?



