linux下管理线程和cpu及核的分配
之前在windows下问过类似问题,现在需要在linux下做。
有一个程序,1个主线程和5个子线程
机器配置:ubuntu, 6个cpu, 2个cpu每个都是强大双核, 4个cpu每个都是普通4核
我使用
CPU_ZERO (&cpuset);
CPU_SET (0, &cpuset);
rc = sched_setaffinity (pid, size_cpu_set, &cpuset);
来做实验
有一些问题:
1. 上面的似乎只能指定第几个CPU,而不能指定CPU的第几个核,如何指定第几个核?
2. 我将所有的6个线程,都分配到了第0个cpu上,但是程序执行后,看cpu状态的时候,6个cpu全都被调用起来了,正常情况不应该是只调用我分配的cpu吗,6个线程里面,我这里都是写的0. CPU_SET (0, &cpuset);