nice
— это программа, присутствующая в Unix и Unix-подобных операционных системах, таких как Linux . Он напрямую соответствует одноименному вызову ядра . используется для вызова утилиты или сценария оболочки с определенным приоритетом ЦП , что дает процессу больше или меньше времени ЦП, чем другим процессам. Приятность -20 — это самая низкая вежливость или наивысший приоритет. По умолчанию вежливость процессов наследуется от родительского процесса и обычно равна 0.nice
Системы разошлись в вопросе о том, какой приоритет является самым низким. Системы Linux документируют уровень 19 как самый низкий приоритет, [1] системы BSD документируют 20 как самый низкий приоритет. [2] В обоих случаях «самый низкий» приоритет документируется как работающий только тогда, когда ничего больше этого не требует.
Значение приятности — это число, присвоенное процессам в системах *nix, которое используется вместе с другими данными (например, объемом операций ввода-вывода , выполняемых каждым процессом) планировщиком процессов ядра для расчета «истинного приоритета» процесса, который используется для определения того, сколько процессорного времени ему будет выделено.
Название программы, nice , является намеком на ее задачу по изменению значения приятности процесса.
Сам термин «приятность» происходит от идеи, что процесс с более высоким значением «приятности» более приятен для других процессов в системе и для пользователей, поскольку требует меньше мощности ЦП — высвобождая время обработки и мощность для более требовательных программ, которые в в этом случае это будет менее благоприятно для системы с точки зрения использования ЦП. [3]
nice
становится полезным, когда несколько процессов требуют больше ресурсов, чем может предоставить процессор . В этом состоянии процесс с более высоким приоритетом будет получать большую часть процессорного времени, чем процесс с более низким приоритетом. Только суперпользователь (root) может установить более низкое значение вежливости (т.е. более высокий приоритет). В Linux можно изменить настройки, /etc/security/limits.conf
чтобы разрешить другим пользователям или группам устанавливать низкие значения nice. [4]
Если пользователь хочет сжать большой файл, не замедляя другие процессы, он может запустить следующее:
$ nice -n 19 tar cvzf archive.tgz bigfile
Точный математический эффект установки определенного значения корректности для процесса зависит от деталей того, как планировщик спроектирован в этой реализации Unix. Планировщик конкретной операционной системы также будет иметь различные встроенные эвристики (например, для предпочтения процессов, которые в основном связаны с вводом-выводом, по сравнению с процессами, привязанными к ЦП). В качестве простого примера: когда два в остальном идентичных процесса, связанных с ЦП, выполняются одновременно в однопроцессорной системе Linux, доля процессорного времени каждого из них будет пропорциональна 20 - p , где p — приоритет процесса. Таким образом, процесс, запущенный с помощью nice +15
, получит 25% процессорного времени, выделенного процессу с нормальным приоритетом: (20 – 15)/(20 – 0) = 0,25. [5] С другой стороны, в планировщике BSD 4.x соотношение в том же примере составляет примерно десять к одному. [ нужна цитата ]
Соответствующую renice
программу можно использовать для изменения приоритета уже запущенного процесса. [1]
В Linux также есть ionice
программа, которая влияет на планирование ввода-вывода, а не на время процессора. [6]
{{cite book}}
: CS1 maint: несколько имен: список авторов ( ссылка )