01-实时系统概述
实时系统概述:什么是实时?硬实时与软实时有什么区别?
本系列教程将带领大家从零开始学习 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_RT 和 Xenomai
下一篇文章我们将详细介绍 Xenomai 的发展历史和系统架构。
思考题:
你现在的项目对实时性有什么要求?硬实时还是软实时?
欢迎在评论区留言讨论!
下篇预告: Xenomai 简介:发展历史、架构(Dovetail/I-pipe)、应用场景
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐


所有评论(0)