9 嵌入式系统软件之实时系统与非实时系统
系列进度
嵌入式系统入门 · 第 9 / 18 篇
整理说明
这篇内容怎么整理
郭震 · 2026-06-04
阅读路线
先按这条路线读
先抓住主线,再回到代码、配置和图文细节,读起来会更稳。
嵌入式系统学习要把硬件限制、软件任务、外设接口和运行稳定性一起看。阅读时可以按「实时系统与非实时系统的定义 -> 实时系统 -> 非实时系统 -> 实时系统的关键特性」建立结构,再回到正文里的代码、案例或指标做验证。
读完后,用一个真实小任务复查:输入是什么,处理环节在哪里,输出是否可验收;失败时先查「实时系统与非实时系统的定义」,再查「实时系统」。
在上一篇中,我们探讨了嵌入式系统的软件开发,特别是驱动程序的开发。今天,我们将深入了解嵌入式系统中的两个关键概念:实时系统和非实时系统。
实时系统与非实时系统的定义
区分实时与非实时系统时,先看任务截止时间、调度策略、延迟波动、故障后果和测试方法。
实时系统
实时系统是指那些在指定时间内必须完成特定任务的系统。换句话说,实时系统不仅关注计算的结果,还关注任务产生结果的时间。它们被广泛应用于诸如航天、医疗、汽车等领域,因为在这些场景中,任务的时效性是至关重要的。
实时系统可进一步分为硬实时系统和软实时系统:
-
硬实时系统:在这个系统中,任何时间上的失约都是不可接受的。例如,在飞行控制系统中,如果数据处理的延迟导致飞机无法及时响应,可能会导致严重后果。
-
软实时系统:在这种系统中,虽然时间上有些松弛,但任何延迟都会对系统的性能造成影响。例如,在视频会议系统中,尽管偶尔的延迟不会造成致命问题,但持续的延迟会影响用户体验。
非实时系统
与实时系统相对,非实时系统则不强调执行时间的严格性,它们可以在任意时间完成任务,系统的响应时间并不影响整体的功能实现。许多嵌入式应用程序,例如数码相机中的图片处理,往往可以被归类为非实时系统。
实时系统的关键特性
在设计和实现实时系统时,开发者需要考虑以下几个关键特性:
读《嵌入式系统软件之实时系统与非实时系统》时,可以先看配图里的任务、概念、练习和判断点,再回到正文补细节。这样更容易判断这篇内容能放到哪个真实场景里。
- 确定性:系统在处理请求时,必须能够达到可预测的响应时间。
- 优先级:实时任务通常被赋予不同的优先级,以确保重要任务能够及时执行。
- 任务调度:实时系统需要有效的调度算法,例如
优先级调度、轮询调度等。
案例分析:实时与非实时系统的对比
让我们通过一个简单的案例来对比实时系统与非实时系统的不同:
实时系统案例
假设我们有一个汽车防碰撞系统,要求在检测到可能的碰撞时立即发出警报并启动制动程序。在这种情况下,系统的响应时间是至关重要的,必须在毫秒级别内完成任务以保护司机和乘客的安全。
以下是一个伪代码示例,展示了如何利用任务调度确保系统的实时性:
void alarm_system() {
while (true) {
if (detect_collision()) {
activate_brakes();
send_alert();
}
delay(10); // 等待10毫秒重新检测
}
}
非实时系统案例
而对于非实时系统,可以考虑一个数码相机的图像处理功能。用户拍摄照片后,图像可以在数秒内处理,此时并不要求立即完成。
以下是与图像处理相关的伪代码示例:
void process_image() {
load_image();
filter_image();
save_image();
// 处理过程中可以有较长的延时,用户可以等待
}
实时系统中的调度算法
在实时系统中,任务调度是一个至关重要的部分。几种常见的调度算法如下:
- 最早截止时间优先(EDF):任务根据其截止时间进行调度,最紧急的任务优先执行。
- 固定优先级调度:系统在运行时对任务设定固定优先级,高优先级任务优先执行。
在以下的伪代码中,我们展示了如何实现最早截止时间优先调度策略:
void scheduler() {
while (true) {
Task next_task = get_next_earliest_deadline();
run_task(next_task);
}
}
复习《嵌入式系统软件之实时系统与非实时系统》时,建议把关键概念、操作步骤和可见结果放在同一页里回看。
练习《嵌入式系统软件之实时系统与非实时系统》时,建议把输入条件、处理动作和可见结果写在一起,方便下次复查。
总结
在嵌入式系统软件开发中,理解实时系统与非实时系统之间的区别是非常重要的。实时系统需要关注任务的时效性和响应时间,而非实时系统则相对灵活。随着技术的发展,实时操作系统在嵌入式设备中的应用也愈加普遍。
在下一篇中,我们将进一步深入探讨实时操作系统(RTOS)的概念及其在嵌入式系统中的重要性。这将为我们构建更加灵活和强大的嵌入式解决方案奠定基础。请继续关注!
继续阅读
从这篇继续找到相关教程
常见问题
读前先确认这三点
嵌入式系统软件之实时系统与非实时系统适合谁读?
这是 嵌入式系统入门 系列第 9 / 18 篇,适合正在学习嵌入式系统入门,并且需要把概念落到操作步骤或判断标准里的读者。
读这篇嵌入式系统入门教程要多久?
按中文技术文章阅读速度估算,通读大约 4 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。
这篇文章里的图文节点怎么用?
正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。
分享文章
转发到常用平台
微信/朋友圈可先复制链接
相关教程
从相近问题继续读
继续阅读