$ sudo time -f '%c %w' chrt -f 99 ./ft 1234567890
26 1
我很好奇为什么我的进程会不由自主地(因为时间片已过期)上下文切换 26 次,即使我将调度程序设置为 FIFO,最大优先级为 99:
$ chrt -m
SCHED_OTHER min/max priority : 0/0
SCHED_FIFO min/max priority : 1/99
SCHED_RR min/max priority : 1/99
SCHED_BATCH min/max priority : 0/0
SCHED_IDLE min/max priority : 0/0
$ uname -a
Linux localhost.localdomain 2.6.32-358.2.1.el6.x86_64 #1 SMP Wed Mar 13 00:26:49 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
有什么想法吗?
提前致谢。
最佳答案
即使没有其他进程能够运行,调度程序仍然会在每个时间片运行一次。它将直接返回到您的流程,但您的流程已经在短时间内取消了安排。
FTRACE很不错,看看this页,尤其是第 3.3.1 节。该页面讨论的是在 OMAP ARM 设备上,但在其他 Linux 上一切正常。该查看器揭示了大量有关系统内部工作的信息!
关于linux - 使用 FIFO 调度的进程仍处于关闭状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17209568/