nice
内核似乎独立于分配给这些进程的值来处理通过命名管道(FIFO)在两个进程之间传输的数据。这在以下情况下尤其明显,其中系统因需要处理大量并发进程而过载。
进程 A 和 B 通过 FIFO 进行通信;它们比所有其他需要高 CPU 使用率的进程具有更高的任务优先级(较低的 nice)。系统永久过载;当 A 和 B 之间没有通过 FIFO 进行通信时,这两个进程会牺牲较低优先级的进程来获得大部分 CPU。但是当 FIFO 通信开始时,仍然需要大量 CPU 的 A 和 B 被内核分开,并且具有更高 nice(nice 高 10 个单位)的进程几乎获得了所有 CPU。
似乎内核无法根据使用它们的进程的好坏来安排对 FIFO 的处理,并且当系统过载时,内核处理 FIFO 时没有特殊优先级。
是这样吗?