Я не уверен, хотите ли вы ограничить процесс определенным количеством ядер ЦП или хотите выделить этому процессу ядра ЦП.
Выделение процессорного времени
Насколько мне известно, невозможно "предоставить" процессу эксклюзивный доступ к процессору, или, по крайней мере, это очень трудно сделать. Если другие процессы используют процессорное время, которое вы предпочли бы отдать другому процессу, вам следует использовать nice
. Nice - это система приоритетов для процессов, представляющая собой число от -20 до 19 (по умолчанию 0). См. man nice
. Более высокое значение "приятности" означает, что процесс получает меньше процессорного времени, он "приятнее" для других процессов. Если уменьшить значение nice, процесс будет менее приятным и будет потреблять больше процессорного времени. Например, вы можете запустить ls
с наивысшим приоритетом: nice -20 ls
Ограничение ядер процессора
В Linux вы можете использовать cgroups
для ограничения процесса. Я не уверен насчет BSD и других вариантов Unix, но я предполагаю, что они имеют аналогичную функциональность.