Подтвердить что ты не робот

Принципы подобия и приоритета в системе Linux

Я ищу способ изменить приоритет процесса через командную строку. Я нашел встроенный (bash) nice и команду renice, которые позволяют изменять тонкость процесса, но не фактический приоритет, который вычисляется ядром.

Есть ли команда, которая позволяет установить приоритет? (Или меня путают между достоинством и приоритетом?)

4b9b3361

Ответ 1

Приоритет процесса в Linux динамичен: чем дольше он работает, тем ниже его приоритет. Процесс выполняется, когда он фактически использует CPU - большинство процессов на типичном Linux-боксе просто ждут ввода-вывода и, следовательно, не считаются запущенными.

Приоритет учитывается при наличии большего количества процессов, чем ядра ЦП: выигрывает наивысший приоритет. Но поскольку выигрышный процесс теряет свою способность со временем, другие процессы в какой-то момент возьмут процессор.

nice и renice добавят/удаляют некоторые "точки" из приоритета. Процесс с более высоким значением nice получит меньшее процессорное время. Корень также может установить отрицательное значение nice - процесс получает больше времени процессора.

Пример. Существует два процесса (1 и 2), вычисляющие проблему остановки и одно ядро ​​ЦП в системе. Значение по умолчанию nice 0, поэтому оба процесса получают примерно половину процессорного времени каждый. Теперь давайте отредактируем процесс 1 до значения 10. Результат: процесс 2 получает значительно большее количество процессорного времени в качестве процесса 1.

Примечание. В современных настольных компьютерах доступно много процессорного времени - они быстрые в эти дни. К сожалению, жесткие диски по-прежнему слишком медленны при случайном вводе-выводе, поэтому даже хороший процесс может генерировать достаточный трафик ввода-вывода для значительного замедления работы системы.