第 12 章 在实时内核和解决方案中调度问题


在实时内核中的调度有时会有后果。通过使用提供的信息,您可以了解调度策略、调度程序节流和线程不足状态的问题,以及实时内核以及潜在的解决方案。

12.1. 实时内核的调度策略

实时调度策略共享一个主要特征:它们运行,直到优先级更高的线程中断线程或线程等待,或者通过睡眠或执行 I/O 来中断线程。

对于 SCHED_RR,操作系统会中断正在运行的线程,以便运行相等的 SCHED_RR 优先级的另一个线程。在这两种情形中,POSIX 规范不会进行调配,以定义允许低优先级线程获得任何 CPU 时间的策略。这种实时线程的特征意味着可轻松编写一个应用程序,这会使给定 CPU 的 100% 保持了。但是,这会导致操作系统出现问题。例如,操作系统负责管理系统范围和每个 CPU 资源,必须定期检查描述这些资源的数据结构,并执行日常活动。但是,如果某个内核由 SCHED_FIFO 线程进行单调,则无法执行其内务任务。最终,整个系统变得不稳定,并可能导致崩溃。

在 RHEL for Real Time 内核中,中断处理程序作为具有 SCHED_FIFO 优先级的线程运行。默认优先级为 50。具有 SCHED_FIFOSCHED_RR 策略高于中断处理器线程的 cpu-hog 线程可防止中断处理程序运行。这会导致程序等待这些中断信号的数据失败,并失败。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部