Как назначить один ЦП одному процессу, чтобы никакой другой процесс не мог использовать этот ЦП, пока процесс с этим PID выполняется на этом ЦП?
Из man taskset
:
taskset используется для установки или извлечения привязки к ЦП запущенного процесса по заданному PID или для запуска новой КОМАНДЫ с указанным ЦП. сродства. Сродство к процессору - это свойство планировщика, которое «связывает» процесс с заданным набором процессоров в системе. Планировщик Linux будет учитывать заданную привязку к процессору, и процесс не будет выполняться на других процессорах. Обратите внимание, что планировщик Linux также поддерживает естественную привязку к процессору: планировщик пытается сохранить процессы на одном и том же процессоре настолько долго, насколько это практически возможно из соображений производительности. Поэтому форсирование определенного сродства ЦП полезно только в определенных приложениях.
blockquote>Хотя это гарантирует, что процесс будет выполняться только на определенном ЦП (или на наборе ЦП), настройка соответствия не гарантирует, что никакие другие процессы не будут выполняться на этих ЦП. Я думаю, что для достижения этого вы можете изменить правильность (или хороший уровень ) процесса до его самого низкого значения (1) - подробности см. В
man nice
иman renice
.Установка наименьшего приятного уровня гарантирует, что процесс не передаст ЦП другой задаче во время работы - однако гарантия не равна 100% (например, если у вас есть другой процесс с таким же приоритетом в система, оба процесса могут быть запланированы для совместного использования процессора)