【问题标题】:Process With FIFO Scheduling Still Being Switched off?FIFO调度的进程仍然被关闭?
【发布时间】:2013-06-17 01:40:05
【问题描述】:
$ 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

有什么想法吗?

提前致谢。

【问题讨论】:

    标签: linux centos real-time scheduling redhat


    【解决方案1】:

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

    FTRACE 很好,看看this 页面,尤其是3.3.1 部分。该页面在 OMAP ARM 设备上进行讨论,但在其他 linux 上一切正常。该查看器揭示了大量有关系统内部运作的信息!

    【讨论】:

    • 虽然 3.10 内核中的新 timerless multitasking 可能有助于实现这种效果。
    • @bazza,如果操作系统会根据时间片换出我的进程,那么几分钟内 26 次上下文切换似乎有点太少了。
    • @Hei,是的,你是对的,几分钟内 26 次听起来不像操作系统时间片。我建议你试试 FTRACE,它很有启发性。第 3.3.1 节是我上面给出的链接,非常值得一试,您可以通过图形视图准确了解系统中运行的内容和时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多