所有应用程序在系统监视器上都以正常优先级启动吗?

所有应用程序在系统监视器上都以正常优先级启动吗?

我注意到,在我的系统监视器上,我的一个进程(名为 pulseaudio)具有非常高的优先级,而我所有其他正在运行的应用程序都具有正常优先级。我不记得曾经更改过它,所以它一定是它的默认优先级,对吧?还有其他应用程序也这样吗?

答案1

从技术上讲,是的。在 Linux(Ubuntu 的内核)中,所有程序的优先级或“优先级”值都是 0。它们在执行时可以通过从 发出系统调用来请求更高或更低的优先nice(int niceness)unistd.h

通常情况下,用户运行的程序仅有权将其优先级降低至正值nice。这对于您的计算机不时执行的非关键清洁任务非常有用。

然而,Ubuntu 还使用一个名为应用装甲,授予特定用户程序管理(“根”)级别权限。Ubuntu 的 AppArmor 配置为允许某些重要程序请求高优先级(负优先nice级),最明显的是 PulseAudio。这可以防止系统负载过重时播放音频中断。

总之是的,所有应用程序都以正常优先级启动。然而,实际上,许多应用程序在启动后立即请求不同的优先级。

补充一点

您可以在命令行中启动(或者从技术上准确地说,fork)具有低/高优先级的您自己的程序,如下所示:

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

当然,没有人能保证他们会保留它。;)

答案2

通常,某些进程具有较高优先级是有充分理由的 - PulseAudio 处理音频混合,高优先级可减少音频丢失。

然而 PulseAudio 基本上是个例外。您需要 root 权限才能提升进程的优先级,因此您可能看不到普通用户拥有的任何其他此类进程。

有许多系统进程和线程以最高优先级运行(您可以通过切换到“查看”>“所有进程”在系统监视器中看到它们),但无需担心这些。

相关内容