Изменить привязку ЦП по умолчанию

Я хотел бы знать, возможно ли сходство по умолчанию для процессов Linux. Значение по умолчанию ~ 0 (усечено до количества доступных процессоров), но я хотел бы иметь возможность установить его для всех процессов в системе. Было бы неплохо сделать это во время загрузки, чтобы я мог эффективно предотвратить использование определенных процессоров каким-либо процессом (если это явно не установлено системным вызовом).

Спасибо! Дэйвид


person David G.F.    schedule 30.09.2014    source источник
comment
Это вопрос системного администратора, попробуйте unix.stackexchange.com или serverfault.com.   -  person Barmar    schedule 30.09.2014
comment
В оболочке или в программе на C?   -  person Claudio    schedule 30.09.2014
comment
Используйте taskset, чтобы запустить новую оболочку с нужной вам привязкой. Все программы, запускаемые этой оболочкой, будут иметь одинаковое сродство.   -  person Zan Lynx    schedule 30.09.2014


Ответы (1)


Из программы C:

#define _GNU_SOURCE
#include <sched.h>

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

см. man sched_setaffinity для получения дополнительной информации.

Из оболочки:

taskset <mask> <command> <args>

or

taskset -p <pid> <mask>

где <mask> - это, например, 0x00000001 для первого процессора.

person Claudio    schedule 30.09.2014