nice

Материал из Википедии — свободной энциклопедии

Утилита nice —

UNIX, разработанной фирмой AT&T[4]. Описана в стандарте IEEE Std 1003.1-2001 (POSIX.1)[4][5]. Одна из реализаций nice входит в пакет coreutils
.

Следует различать термины «утилита» и «команда». Утилита — компьютерная программа, исполняемая в отдельном процессе. Команда — встроенная команда интерпретатора команд (shell), исполняемая внутри процесса shell.

Команда nice — встроенная команда интерпретатора команд (shell), выполняющая такие же функции, как и утилита nice, но работающая внутри процесса shell. Реализована, например, интерпретаторами команд csh и tcsh.

Приоритет nice — число, указывающее

планировщику процессов ядра ОС приоритет, который пользователь хотел бы назначить процессу
.

Описание

Утилита nice, запущенная без аргументов, выводит приоритет nice, унаследованный от родительского процесса. nice принимает аргумент «смещение» в диапазоне от −20 (наивысший приоритет) до +19 (низший приоритет). Если указать смещение и путь к исполняемому файлу, утилита nice получит приоритет своего процесса, изменит его на указанное смещение и использует системный вызов семейства exec()[англ.] для замещения кода своего процесса кодом из указанного исполняемого файла. Команда nice сделает то же, но сначала выполнит системный вызов семейства fork() для запуска дочернего процесса (англ. sub-shell). Если смещение не указано, будет использовано смещение +10. Привилегированный пользователь (root) может указать отрицательное смещение.

Приоритет nice и приоритет

планировщика
 — «PRI» — сокращение от «priority». Обычно NI = PRI - 20, но это верно не всегда. По умолчанию NI=0, соответственно PRI=20.

планировщика процессов можно установить командой chrt из пакета util-linux
.

поддерживает приоритеты от −20 до +20.

В ОС Linux для получения текущего приоритета nice процесса используется системный вызов getpriority(), а для его изменения — setpriority()[7].

Планировщик процессов может работать в соответствии с выбранной пользователем политикой (англ. scheduling policy
). Некоторые политики могут игнорировать приоритет nice.

В

планировщика процесса, а с помощью sched_setscheduler() — изменить её[8]
.

Для изменения приоритета уже запущенных процессов используется утилита renice.

Синтаксис

nice [-n смещение] [--adjustment=смещение] [команда [аргумент…]]

Параметры

-n смещение
--adjustment=смещение
Установить приоритет nice, равный сумме текущего приоритета nice и указанного числа «смещение». Если этот аргумент не указан, будет использовано число 10.

Примечания

  1. CPU — англ. central processing unit, центральный процессор.
  2. IO — англ. input-output, ввод-вывод.
  3. ionice — программа из пакета util-linux. См. ionice(1) — страница справки
    GNU/Linux
     (англ.).
  4. 1 2 nice(1) — страница справки man по пользовательским командам FreeBSD  (англ.).
  5. Утилита nice. The Open Group. — The Open Group Base Specifications Issue 7. IEEE Std 1003.1, 2013 Edition. Дата обращения: 8 августа 2015. Архивировано 12 сентября 2015 года.
  6. См. исходный код ядра Linux:
  7. GNU/Linux
     (англ.)
  8. GNU/Linux
     (англ.)

Ссылки

  • nice(1) — страница справки
    GNU/Linux  (англ.) (см.: GNU Coreutils
    ).
  • nice(1) — страница справки man по пользовательским командам OpenBSD  (англ.).
  • nice(1) — страница справки man по пользовательским командам FreeBSD  (англ.).