FIFO调度仍然被切换的过程?

时间:2013-06-20 09:06:07

标签: linux centos real-time scheduling redhat

$ 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

有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

即使没有其他能够运行调度程序的进程,每次切片仍会运行一次。它将直接返回到您的流程,但是您的流程在短时间内已经被计划好了。

FTRACE非常好,请查看this页面,尤其是第3.3.1节。该页面正在谈论OMAP ARM设备,但它在其他linux上运行良好。该查看器显示有关系统内部工作的大量信息!