nice
Утилита nice — компьютерная программа в UNIX-подобных ОС, предназначенная для запуска процессов с изменённым приоритетом nice. Приоритет nice (целое число) процесса используется планировщиком процессов ядра ОС при распределении процессорного времени между процессами. Утилита появилась в 4‑й версии ОС UNIX, разработанной фирмой AT&T[1]. Описана в стандарте IEEE Std 1003.1-2001 (POSIX.1)[1][2]. Одна из реализаций 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 и приоритет планировщика процессов ядра ОС — разные числа. Число nice — приоритет, который пользователь хотел бы назначить процессу. Приоритет планировщика — действительный приоритет, назначенный процессу планировщиком. Планировщик может стремиться назначить процессу приоритет, близкий к nice, но это не всегда возможно, так как в системе может выполняться множество процессов с разными приоритетами. Приоритет nice является атрибутом процесса и, как и другие атрибуты, наследуется дочерними процессами. В выводе утилит top, ps, htop и др. приоритет nice называется «NI» — сокращение от «nice», а приоритет планировщика — «PRI» — сокращение от «priority». Обычно, NI = PRI - 20, но это верно не всегда. По умолчанию NI=0, соответственно PRI=20.
Планировщик процессов ядра ОС Linux поддерживает приоритеты от 0 (реальное время) до 139 включительно[3]. Приоритеты -20…+19 утилиты или команды nice соответствуют приоритетам 100…139 планировщика процессов. Другие приоритеты планировщика процессов можно установить командой chrt из пакета util-linux.
Планировщик процессов ядра ОС FreeBSD поддерживает приоритеты от -20 до +20.
В ОС Linux для получения текущего приоритета nice процесса используется системный вызов getpriority()
, а для его изменения — setpriority()
[4].
Планировщик процессов может работать в соответствии с выбранной пользователем политикой (англ. scheduling policy). Некоторые политики могут игнорировать приоритет nice.
В ОС Linux с помощью системного вызова sched_getscheduler()
можно узнать применяемую для текущего процесса политику планировщика процесса, а с помощью sched_setscheduler()
— изменить её[5].
Для изменения приоритета уже запущенных процессов используется утилита renice.
Синтаксис
nice [-n смещение] [--adjustment=смещение] [команда [аргумент…]]
Параметры
- -n смещение
- --adjustment=смещение
- Установить приоритет nice, равный сумме текущего приоритета nice и указанного числа «смещение». Если этот аргумент не указан, будет использовано число 10.
Напишите отзыв о статье "Nice"
Примечания
- ↑ 1 2
[www.freebsd.org/cgi/man.cgi?query=nice&sektion=1 nice(1)]
— страница справки man по пользовательским командам FreeBSD (англ.). - ↑ [pubs.opengroup.org/onlinepubs/9699919799/utilities/nice.html Утилита nice]. The Open Group. — The Open Group Base Specifications Issue 7. IEEE Std 1003.1, 2013 Edition. Проверено 8 августа 2015.
- ↑
См. исходный код ядра Linux:
- [www.tamacom.com/tour/kernel/linux/S/40104.html#L23 kernel/sched/sched.h];
- [www.tamacom.com/tour/kernel/linux/S/38104.html#L4 include/linux/sched/rt.h].
- ↑
[linux.die.net/man/2/getpriority getpriority(2)]
— страница справки man по системным вызовам GNU/Linux (англ.) - ↑
[linux.die.net/man/2/sched_getscheduler sched_getscheduler(2)]
— страница справки man по системным вызовам GNU/Linux (англ.)
Ссылки
-
[linux.die.net/man/1/nice nice(1)]
— страница справки man по пользовательским командам GNU/Linux (англ.) (см.: GNU Coreutils). -
[www.openbsd.org/cgi-bin/man.cgi?query=nice&sektion=1 nice(1)]
— страница справки man по пользовательским командам OpenBSD (англ.). -
[www.freebsd.org/cgi/man.cgi?query=nice&sektion=1 nice(1)]
— страница справки man по пользовательским командам FreeBSD (англ.).
Отрывок, характеризующий Nice
Но несмотря на то, что он твердо верил в то, что он был неаполитанский король, и что он сожалел о горести своих покидаемых им подданных, в последнее время, после того как ему ведено было опять поступить на службу, и особенно после свидания с Наполеоном в Данциге, когда августейший шурин сказал ему: «Je vous ai fait Roi pour regner a maniere, mais pas a la votre», [Я вас сделал королем для того, чтобы царствовать не по своему, а по моему.] – он весело принялся за знакомое ему дело и, как разъевшийся, но не зажиревший, годный на службу конь, почуяв себя в упряжке, заиграл в оглоблях и, разрядившись как можно пестрее и дороже, веселый и довольный, скакал, сам не зная куда и зачем, по дорогам Польши.Увидав русского генерала, он по королевски, торжественно, откинул назад голову с завитыми по плечи волосами и вопросительно поглядел на французского полковника. Полковник почтительно передал его величеству значение Балашева, фамилию которого он не мог выговорить.
– De Bal macheve! – сказал король (своей решительностью превозмогая трудность, представлявшуюся полковнику), – charme de faire votre connaissance, general, [очень приятно познакомиться с вами, генерал] – прибавил он с королевски милостивым жестом. Как только король начал говорить громко и быстро, все королевское достоинство мгновенно оставило его, и он, сам не замечая, перешел в свойственный ему тон добродушной фамильярности. Он положил свою руку на холку лошади Балашева.
– Eh, bien, general, tout est a la guerre, a ce qu'il parait, [Ну что ж, генерал, дело, кажется, идет к войне,] – сказал он, как будто сожалея об обстоятельстве, о котором он не мог судить.
– Sire, – отвечал Балашев. – l'Empereur mon maitre ne desire point la guerre, et comme Votre Majeste le voit, – говорил Балашев, во всех падежах употребляя Votre Majeste, [Государь император русский не желает ее, как ваше величество изволите видеть… ваше величество.] с неизбежной аффектацией учащения титула, обращаясь к лицу, для которого титул этот еще новость.
Лицо Мюрата сияло глупым довольством в то время, как он слушал monsieur de Balachoff. Но royaute oblige: [королевское звание имеет свои обязанности:] он чувствовал необходимость переговорить с посланником Александра о государственных делах, как король и союзник. Он слез с лошади и, взяв под руку Балашева и отойдя на несколько шагов от почтительно дожидавшейся свиты, стал ходить с ним взад и вперед, стараясь говорить значительно. Он упомянул о том, что император Наполеон оскорблен требованиями вывода войск из Пруссии, в особенности теперь, когда это требование сделалось всем известно и когда этим оскорблено достоинство Франции. Балашев сказал, что в требовании этом нет ничего оскорбительного, потому что… Мюрат перебил его:
– Так вы считаете зачинщиком не императора Александра? – сказал он неожиданно с добродушно глупой улыбкой.
Балашев сказал, почему он действительно полагал, что начинателем войны был Наполеон.
– Eh, mon cher general, – опять перебил его Мюрат, – je desire de tout mon c?ur que les Empereurs s'arrangent entre eux, et que la guerre commencee malgre moi se termine le plutot possible, [Ах, любезный генерал, я желаю от всей души, чтобы императоры покончили дело между собою и чтобы война, начатая против моей воли, окончилась как можно скорее.] – сказал он тоном разговора слуг, которые желают остаться добрыми приятелями, несмотря на ссору между господами. И он перешел к расспросам о великом князе, о его здоровье и о воспоминаниях весело и забавно проведенного с ним времени в Неаполе. Потом, как будто вдруг вспомнив о своем королевском достоинстве, Мюрат торжественно выпрямился, стал в ту же позу, в которой он стоял на коронации, и, помахивая правой рукой, сказал: – Je ne vous retiens plus, general; je souhaite le succes de vorte mission, [Я вас не задерживаю более, генерал; желаю успеха вашему посольству,] – и, развеваясь красной шитой мантией и перьями и блестя драгоценностями, он пошел к свите, почтительно ожидавшей его.
Балашев поехал дальше, по словам Мюрата предполагая весьма скоро быть представленным самому Наполеону. Но вместо скорой встречи с Наполеоном, часовые пехотного корпуса Даву опять так же задержали его у следующего селения, как и в передовой цепи, и вызванный адъютант командира корпуса проводил его в деревню к маршалу Даву.
Даву был Аракчеев императора Наполеона – Аракчеев не трус, но столь же исправный, жестокий и не умеющий выражать свою преданность иначе как жестокостью.
В механизме государственного организма нужны эти люди, как нужны волки в организме природы, и они всегда есть, всегда являются и держатся, как ни несообразно кажется их присутствие и близость к главе правительства. Только этой необходимостью можно объяснить то, как мог жестокий, лично выдиравший усы гренадерам и не могший по слабости нерв переносить опасность, необразованный, непридворный Аракчеев держаться в такой силе при рыцарски благородном и нежном характере Александра.
Балашев застал маршала Даву в сарае крестьянскои избы, сидящего на бочонке и занятого письменными работами (он поверял счеты). Адъютант стоял подле него. Возможно было найти лучшее помещение, но маршал Даву был один из тех людей, которые нарочно ставят себя в самые мрачные условия жизни, для того чтобы иметь право быть мрачными. Они для того же всегда поспешно и упорно заняты. «Где тут думать о счастливой стороне человеческой жизни, когда, вы видите, я на бочке сижу в грязном сарае и работаю», – говорило выражение его лица. Главное удовольствие и потребность этих людей состоит в том, чтобы, встретив оживление жизни, бросить этому оживлению в глаза спою мрачную, упорную деятельность. Это удовольствие доставил себе Даву, когда к нему ввели Балашева. Он еще более углубился в свою работу, когда вошел русский генерал, и, взглянув через очки на оживленное, под впечатлением прекрасного утра и беседы с Мюратом, лицо Балашева, не встал, не пошевелился даже, а еще больше нахмурился и злобно усмехнулся.