- 论坛徽章:
- 0
|
本帖最后由 pkw888 于 2010-08-17 15:29 编辑
// 绑定CPU0
CPU_ZERO(&set);
CPU_SET(0, &set);
ret1=sched_setaffinity(pid_a, sizeof(cpu_set_t), &set);
// 绑定CPU1
CPU_ZERO(&set);----------------------------这个函数将&set又清空了,pid_a还在CPU0上运行吗?还是说进程一旦被绑定某个CPU以后就不在被迁移了?
CPU_SET(1, &set);
ret1=sched_setaffinity(pid_b, sizeof(cpu_set_t), &set);
seaquester 不解啊?
第一个是绑定了CPU0,但绑定CPU1时的CPU_ZERO(&set)改变了&set,pid_a将会运行在哪个CPU呢?还是说进程一旦被绑定某个CPU以后就不在被迁移了?
就是说,我希望进程a和b分别同时运行在CPU0和CPU1上?
另外,函数sched_setaffinity(pid_b, sizeof(cpu_set_t), &set)一次只能绑定一个进程吗?比如现在我希望进程1、2、3绑定在CPU0上运行,该怎么办?以下这种方式可以吗?
ret1=sched_setaffinity(pid_1, sizeof(cpu_set_t), &set);
ret2=sched_setaffinity(pid_2, sizeof(cpu_set_t), &set);
ret3=sched_setaffinity(pid_3, sizeof(cpu_set_t), &set);
期待您的回复~~谢谢~~ |
|