9.2.4. Приоритет процесса: команды nice и renice
9.2.4. Приоритет процесса: команды nice и renice
Каждому процессу в системе назначен определённый приоритет, который учитывается планировщиком процессов при выделении процессу процессорного времени. Значение приоритета находится в диапазоне от -20 (наивысший приоритет) до 19 (наименьший: процесс выполняется только тогда, когда нет других претендентов на время процессора). Значение, обратное приоритету, называется показателем уступчивости (nice).
По умолчанию все процессы запускаются с базовым приоритетом, равным 0. Владелец процесса может в любой момент повысить его показатель уступчивости (понизить приоритет). Суперпользователь имеет право установить для любого процесса любое значение приоритета.
Если процесс отъедает слишком много ресурсов, то для нормального функционирования системы не обязательно его убивать: достаточно назначить ему низкий приоритет. Тогда планировщик предоставит ему меньше циклов процессора, и его выполнение займет больше времени, зато в течение этого времени можно будет выполнять другие задачи.
Для запуска процесса с приоритетом, отличным от базового, служит команда nice:
nice [ -n <приоритет> ] [командная_строка]
Например, копирование образа компакт-диска, будучи запущено с обычным приоритетом, может заблокировать остальные процессы. Поэтому запускать его нужно так:
$ nice -n 19 dd if=/media/cdrecorder of=~/my_cdrom.iso
Значение нового приоритета по умолчанию равно 10. Команда nice без аргументов выводит текущее значение базового приоритета.
Для изменения приоритета уже запущенного процесса служит команда renice:
renice -n <показатель_уступчивости> [-p PID] [-u UID]
Суперпользователь имеет право назначать процессу (или всем процессам указанного пользователя) отрицательный показатель уступчивости, то есть повышать их приоритет. Если указанное значение уступчивости выходит за границы диапазона [-20...19], то вместо него применяется соответствующее крайнее значение.
Данный текст является ознакомительным фрагментом.