Linux резервирует процессор для группы процессов (динамически) - PullRequest
4 голосов
/ 25 июля 2011

Есть ли способ исключить процессор из обычного планирования?

То есть, используя sched_setaffinity, я могу указать, на каком процессоре должен работать поток, но я ищу вид обратного. То есть я хочу исключить данный процессор из обычного планирования, чтобы там могли запускаться только процессы, которые были явно запланированы там.

Я также знаю, что во время загрузки я могу ограничить процессоры, используемые процессом init, таким образом, весь унаследованный процесс. Однако я надеялся, что будет более динамичное решение, чем то, что я могу изменить после загрузки.


Обратите внимание, что я планирую планировать потоки, а не только процессы высокого уровня (в некоторых случаях это может иметь значение).

1 Ответ

4 голосов
/ 25 июля 2011

cgroups, или, в частности, часть cpuset инфраструктуры cgroups - это способ сделать это в Linux. См. Раздел 1.4 «Эксклюзивные процессоры» в http://www.kernel.org/doc/Documentation/cgroups/cpusets.txt.

Опять же, если, как вы говорите в комментарии, в вашей системе не включены процессоры, вам не повезло.

Кроме того, то, что вы просите, возможно, немного неортодоксально; возможно, если бы вы объяснили, чего вы на самом деле пытаетесь достичь, люди могли бы указать вам на альтернативные решения.

...