Все приложения запускаются с обычным приоритетом на системном мониторе?

Я заметил, что на моем системном мониторе один из моих процессов, названный pulseaudio, имел очень высокий приоритет, в то время как все другие мои работающие приложения имели нормальный приоритет. Я не помню, чтобы когда-нибудь менял его, так что, должно быть, это был приоритет по умолчанию, верно? Есть ли другие подобные приложения?

2 ответа

Решение

Технически, да. В Linux - ядре Ubuntu - все программы запускаются со значением приоритета или "добротности", равным 0. Они могут при выполнении запроса запросить более высокий или более низкий приоритет, сделав системный вызов nice(int niceness) от unistd.h,

Как правило, программы, которые запускает пользователь, имеют право только снизить свой приоритет до положительного niceНесс. Это полезно для некритических вспомогательных задач, которые ваш компьютер выполняет время от времени.

Тем не менее, Ubuntu также использует платформу под названием AppArmor, которая предоставляет определенные пользовательские программы права администратора ("root") уровня. AppArmor в Ubuntu настроен так, что некоторые важные программы могут запрашивать высокий приоритет niceNess), прежде всего PulseAudio. Это предотвращает перерывы в воспроизведении аудио, когда ваша система находится под большой нагрузкой.

Таким образом, да, все приложения запускаются с обычным приоритетом. Однако на практике многие приложения запрашивают другой приоритет сразу после запуска.

И как немного отвратительное дополнение

Вы можете запустить (или быть технически точным, разветвить) свои собственные программы с низким / высоким приоритетом в командной строке, например:

nice -n 10 my_app                 # this application is low priority, very nice
sudo nice -n -10 my_other_app     # this application is high priority, very mean

Конечно, нет никаких гарантий, что они сохранят это.

Обычно есть довольно веская причина, по которой некоторые процессы имеют повышенный приоритет - PulseAudio обрабатывает микширование звука, высокий приоритет уменьшает выпадение звука.

Однако PulseAudio в большинстве случаев является исключением. Вам нужны права суперпользователя, чтобы повысить приоритет процесса, поэтому вы, вероятно, не увидите других подобных процессов, принадлежащих обычному пользователю.

Существует много системных процессов и потоков, работающих с максимальным приоритетом (вы можете увидеть их в системном мониторе, переключившись на "Просмотр"> "Все процессы"), но об этом не нужно беспокоиться.

Другие вопросы по тегам