多核和亲和性

本文介绍了进程和线程的绑定技术,包括进程绑定的sched_setaffinity和sched_getaffinity函数,线程绑定的pthread_setaffinity_np和pthread_getaffinity_np函数,以及内核态和proc绑定的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,进程绑定

#include <sched.h> 
cpu_set_t  set;
void CPU_ZERO(cpu_set_t *set);
void CPU_SET(int cpu, cpu_set_t *set);
void CPU_CLR(int cpu, cpu_set_t *set);
int CPU_ISSET(int cpu, cpu_set_t *set);

int sched_setaffinity(pid_t pid, size_t cpusetsize,cpu_set_t *mask);   
int sched_getaffinity(pid_t pid, size_t cpusetsize,cpu_set_t *mask);   


2,线程绑定

int pthread_setaffinity_np(pthread_t thread, size_t cpusetsize, const cpu_set_t *cpuset);
int pthread_getaffinity_np(pthread_t thread, size_t cpusetsize, cpu_set_t *cpuset);


3,内核态

void kthread_bind (struct task_struct *k, unsigned int  cpu);
int set_cpus_allowed(struct task_struct *k, cpumask_t new_mask);


4,proc绑定

echo 0x3 /proc/irq/24/smp_affinity

cat /proc/irq/24/smp_affinity



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值