$ sudo time -f '%c %w' chrt -f 99 ./ft 1234567890
26 1
我很好奇为什么我的进程被非自愿地(因为时间片过期)上下文切换了26次,即使我将调度程序设置为最大优先级为99的fifo:
$ 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设备,但在其他Linuxes上一切正常。这个查看器显示了大量关于系统内部工作的信息!
关于linux - FIFO调度是否仍处于关闭状态?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17209568/