实时系统概述:什么是实时?硬实时与软实时有什么区别?

本系列教程将带领大家从零开始学习 Xenomai 实时系统,本文是第1篇。

什么是实时系统?

大家在日常生活中经常听到"实时"这个词,比如"实时聊天"、“实时路况”。但在计算机领域,"实时"有着完全不同的含义。

实时系统(Real-Time System) 是指那些能够在确定的时间内对外部事件作出响应的系统。这里的"确定"意味着可预测的、最坏情况下的响应时间,而不是"快速"。

举一个例子:

  • 普通操作系统:平均响应时间 10ms,但可能突然抖动到 500ms
  • 实时系统:保证最坏情况下响应时间不超过 100ms

硬实时 vs 软实时

实时系统主要分为两类:

硬实时系统(Hard Real-Time)

硬实时系统要求任务必须在严格的时间期限内完成,逾期视为系统失败。

典型应用场景:

  • 汽车安全气囊控制器(必须在事故发生后 10ms 内弹出)
  • 工业控制系统的紧急制动
  • 航空航天飞行控制

特点:

  • 逾期后果严重
  • 确定性高
  • 通常需要专用硬件
    在这里插入图片描述

软实时系统(Soft Real-Time)

软实时系统希望任务在期限内完成,但逾期不会导致系统崩溃,只是体验下降。

典型应用场景:

  • 视频播放(偶尔卡顿可以接受)
  • 网络语音通话(VOIP)
  • 游戏渲染

特点:

  • 逾期后果可接受
  • 允许一定程度的抖动
  • 可以在通用硬件上运行
特性硬实时软实时
时间约束严格,必须满足宽松,尽量满足
逾期后果系统失败性能下降
抖动要求极低可接受
硬件成本

Linux 实时方案

标准 Linux 内核最初设计目标是吞吐量最大化,而非时间确定性。因此需要额外补丁来实现实时性。

方案一:PREEMPT_RT

PREEMPT_RT 是 Linux 内核的一个补丁,将 Linux 转变为可抢占的实时内核。

特点:

  • 单内核方案(无需额外微内核)
  • 2015 年后部分功能合并入主线内核
  • 6.12 版本后完全合并

优点:

  • 社区支持好
  • 与标准 Linux 兼容性好

缺点:

  • 无法做到严格的实时隔离

在这里插入图片描述

方案二:Xenomai

Xenomai 是双内核方案,在 Linux 之外增加一个实时微内核(Cobalt)。

特点:

  • 实时任务运行在独立的 Cobalt 内核
  • Linux 作为低优先级背景运行
  • 支持 I-pipe 和 Dovetail 两种接口

优点:

  • 实时性更高、更确定
  • 适合工业控制等严苛场景

缺点:

  • 架构复杂
  • 需要额外学习

在这里插入图片描述

方案三:RTLinux / RTAI

这两个是更早期的方案,现在较少使用。

如何选择?

场景推荐方案
简单控制,预算有限PREEMPT_RT
工业控制,硬实时要求Xenomai
学习研究两者都可以

总结

本文介绍了实时系统的基本概念:

  • 实时 = 可预测的响应时间
  • 硬实时 = 逾期即失败
  • 软实时 = 逾期可接受
  • Linux 实现实时有两种主要方案:PREEMPT_RTXenomai

下一篇文章我们将详细介绍 Xenomai 的发展历史和系统架构。


思考题:
你现在的项目对实时性有什么要求?硬实时还是软实时?

欢迎在评论区留言讨论!

下篇预告: Xenomai 简介:发展历史、架构(Dovetail/I-pipe)、应用场景

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐