【问题标题】:Difference between CONFIG_RT_GROUP_SCHED and PREEMPT_RT?CONFIG_RT_GROUP_SCHED 和 PREEMPT_RT 之间的区别?
【发布时间】:2020-11-06 00:19:39
【问题描述】:

我刚刚开始使用实时 Linux 系统,似乎有两种不同的方法可用:

  1. 在“普通”Linux 内核中配置 CONFIG_RT_GROUP_SCHED 参数
  2. 将 PREEMPT_RT 补丁应用于“普通”Linux 内核

我似乎无法掌握两者之间的区别。他们是否为同一问题提供替代解决方案?它们甚至处于同一逻辑级别吗?

提前谢谢你。

【问题讨论】:

    标签: linux-kernel real-time scheduling


    【解决方案1】:

    CONFIG_RT_GROUP_SCHED 为每个组中的进程保留一定比例的 CPU 时间。调度间隔、每组进程、CPU时间等都是可配置的。

    Group Sched

    PREEMPT_RT 补丁使通常不可抢占的代码(如自旋锁和中断处理程序)可以被更高优先级的事件抢占。这减少了实时处理的延迟。

    RT Patch

    所以两者完全不同。您可以根据自己的需要申请其中一个或两个。请注意,在没有充分理由的情况下使用其中任何一个都类似于过早优化代码。它将降低通用代码的性能,以提高其特定要求(延迟或 CPU 分配)的性能。

    【讨论】:

    • 看了第一本手册后,我很纳闷,为什么rt调度是基于组的?为什么它不是基于过程的? (对不起,蹩脚的问题,只是想学习)
    • 每组有一个进程是完全有效的。更灵活地允许多个。
    • 我不确定 2016 年是否已经如此,但至少在 5.4 和 5.10 内核中 RT_GROUPS_SCHED 取决于 !PREEMPT_RT,因此不能同时选择它们。
    猜你喜欢
    • 1970-01-01
    • 2021-12-25
    • 2020-05-10
    • 2014-09-20
    • 2010-10-28
    • 2015-10-04
    • 2012-08-12
    • 2011-02-18
    • 2019-12-21
    相关资源
    最近更新 更多