答案1
Linux 内核是多线程的,许多进程同时执行。当您收到当前进程的 PID 时,它可能不再是“当前”进程。
非抢占式内核可能会运行一个进程直至完成,但通常情况下不会。您可以为每个进程设置良好级别。好的级别 -20(不是很好)会将整个系统投入到该过程中,直到它完成,但是以一种智能的方式。
如果进程必须执行磁盘读取,并且系统能够直接读取内存,则内核可能会允许另一个进程使用几百万个 cpu 周期。
但对于桌面系统,没有多少用户进程设置为 -20 的良好级别。它们在 -10 到 10 之间。如果启动,top
您可以查看最重要的进程,并且每个进程都会显示良好的级别。
Linux 是按照 UNIX 方式工作的,它使用多线程内核。每个线程可以属于同一个进程,也可以属于不同的进程。通常,桌面系统需要响应用户交互,因此它使用可抢占式内核和快速定时器。
除非内核是不可抢占的,否则服务器很多时候都会遭受严重的性能下降。线程、抢占和锁定的概念相当复杂。但这提供了一些概述: