====== nice и renice. Приоритет выполнения ======
----
===== Введение =====
Фактор "уступчивости" — это число, по которому ядро определяет свою политику в отношении процессов, конкурирующих за право доступа к центральному процессору. Чем выше фактор уступчивости, тем ниже приоритет процесса и наоборот, отсюда и название термина. Низкое или отрицательное значение означает использование высокого приоритета: процесс ведет себя не слишком уступчиво. \\
Диапазон допустимых значений фактора уступчивости зависит от используемой системы, и обычно он лежит в пределах **от -20 до +19**. В некоторых системах используется диапазон такого же размера, но со смещением в область неотрицательных чисел (как правило, от 0 до 39). Диапазоны допустимых значений фактора уступчивости, используемые в наших примерах систем, приведены ниже. \\
Если пользователь не предпринимает специальных мер, **дочерний процесс наследует приоритет своего родительского процесса**. **Владелец процесса может увеличить фактор уступчивости, но не может уменьшить его, даже чтобы вернуться к стандартному значению**. Это не позволяет процессам с низким приоритетом порождать высокоприоритетных потомков. Суперпользователь может устанавливать произвольные значения фактора уступчивости. \\
**Фактор уступчивости никак не влияет на подсистемы управления памятью и вводом-выводом**, поэтому даже низкоприоритетный процесс способен монополизировать эти ресурсы или захватить непропорционально большую их часть.
----
===== nice =====
==== Синтаксис ====
nice [КЛЮЧ] [КОМАНДА [АРГ]…]
==== Описание ====
Запускает КОМАНДУ с изменённым значением nice, что влияет на приоритет
при планировании. Если КОМАНДА не задана, печатает текущее значение
nice. Значения nice лежат в диапазоне от -20 (наибольший приоритет) до 19
(наименьший).
==== Параметры ====
^ Опция ^ Значение ^
| **%%-n, --adjustment=N%%** | увеличить nice на целое число N (по умолчанию 10) |
| **%%--help%%** | показать эту справку и выйти |
| **%%--version%%** | показать информацию о версии и выйти |
----
===== renice =====
==== Синтаксис ====
renice [-n] [-p|--pid] ...
renice [-n] -g|--pgrp ...
renice [-n] -u|--user ...
==== Описание ====
Позволяет изменить приоритет выполняемого процесса.
==== Параметры ====
^ Опция ^ Значение ^
| **%%-g, --pgrp %%** | interpret argument as process group ID |
| **%%-n, --priority %%** | указать новое значение показателя nice |
| **%%-p, --pid %%** | изменить приоритет по ID процессов (по умолчанию) |
| **%%-u, --user %%** | изменить приоритет процессов пользователя по его имени или ID |
| **%%-h, --help%%** | показать эту справку и выйти |
| **%%-V, --version%%** | показать информацию о версии и выйти |
----
===== Приоритеты в различных версиях команд nice и renice =====
^ Система ^ Диапазон ^
| **Linux** | -20 - 19 |
| **Solaris** | 0 - 39 |
| **HP-UX** | 0 - 39 |
| **AIX** | -20 - 19 |
----
===== Примеры использования =====
* Понизить приоритет (увеличить фактор уступчивости) нового процесса на 5:
nice -n 5 /usr/bin/gimp
* Задать фактор уступчивости равным -5:
renice -5 8829
* Задать фактор уступчивости процессов пользователя **username** равным 5:
renice 5 -u username