操作系统(二):实时系统介绍与实例分析

目录

一.概念

1.1 分类

1.2 主要指标 

二.实现原理

三.主流实时系统对比


一.概念

        实时系统(Real-Time System, RTS)是一类以时间确定性为核心目标的计算机系统,其设计需确保在严格的时间约束内完成任务响应。

1.1 分类

        根据时间约束的严格程度,实时系统可分为以下两类,见下表。

实时系统分类
序号类别定义示例
1

硬实时系统

(Hard Real-Time)

要求任务必须在绝对截止时间前完成,超时将导致系统失效或严重后果。

1.汽车安全气囊控制系统

        传感器触发后,系统需在毫秒级时间内完成气囊展开操作。
2.飞行器导航系统

        姿态控制指令的延迟可能导致坠机风险。

2

软实时系统

(Soft Real-Time)

允许偶发性延迟,但需保证整体性能达标

1.视频流处理

        单帧丢失可能引起画面卡顿,但不影响整体功能。
2.在线交易系统

        短暂延迟可能导致用户体验下降,但不会引发系统性崩溃。

1.2 关键指标 

关键指标
序号指标描述
1中断响应时间从接收中断信号到执行中断服务程序的时间(硬实时系统通常要求<10μs)
2任务切换时间不同优先级任务间CPU控制权转移的耗时(如VxWorks为3.8μs,RT-Linux为25μs)

二.实现原理

        实时系统的设计围绕确定性调度资源控制展开,其实现原理包含以下关键技术。

关键技术
序号关键技术描述
1任务调度机制

1.优先级抢占式调度

        高优先级任务可立即抢占低优先级任务资源。例如VxWorks采用256级优先级,支持动态优先级调整。
2.时间片轮转(Round-Robin)

        在相同优先级任务间分配固定时间片,避免单一任务长时间占用CPU。

2内核架构优化

1.可抢占内核

        允许中断内核代码执行以响应高优先级任务,减少不可抢占区域(如Linux的PREEMPT-RT补丁通过优化自旋锁实现微秒级延迟)。
2.中断管理

        采用中断嵌套和快速中断服务程序(Fast ISR),避免长时间关闭中断。例如QNX的中断处理层仅关闭部分中断。

3同步与通信机制

1.优先级继承协议

        防止低优先级任务持有高优先级任务所需资源时引发的优先级反转问题(如FreeRTOS的互斥量设计)。
2.实时信号量与邮箱

        提供任务间高效通信方式,确保数据传递的时效性。

4资源预留与隔离

1.CPU核隔离

        通过isolcpus参数将特定CPU核心专用于实时任务,避免非实时任务干扰。
2.内存管理优化

        采用静态内存分配或实时内存池(如VxWorks的memPartLib库),减少动态内存分配的不确定性。

注:isolcpus 是 Linux 内核提供的一种 CPU 核心隔离机制,用于将指定的 CPU 核心从系统默认调度中排除,确保这些核心仅运行用户显式指定的进程或线程。其核心目标是为关键任务提供独占的 CPU 资源,减少干扰(如上下文切换、中断),提升性能稳定性。

三.主流实时系统对比

主流实时系统对比
序号实时系统类型特点应用领域
1VxWorks硬实时高可靠性、支持动态加载模块、NASA火星探测器采用航空航天、国防
2QNX硬实时微内核架构、容错性强、符合ISO 26262汽车安全标准汽车电子、医疗设备
3FreeRTOS软/硬实时开源轻量、支持多种处理器架构、Amazon FreeRTOS集成AWS物联网服务嵌入式设备、IoT
4RT-Linux软实时基于Linux内核改造(如PREEMPT-RT补丁)、保留生态兼容性工业自动化、音视频处理
5uC/OS-II硬实时代码精简(<10KB)、可移植性强、适合资源受限场景智能家居、小型控制器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/75455.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Golang的消息中间件选型

# Golang的消息中间件选型 消息中间件的作用 消息中间件是一种用于分布式系统中应用程序之间进行通信的基础架构工具&#xff0c;它能够有效地解耦发送者和接收者&#xff0c;并提供高可用性和可靠性的消息传递机制。在Golang应用程序中&#xff0c;选择适合的消息中间件对于构…

大模型中的参数规模与显卡匹配

在大模型训练和推理中&#xff0c;显卡&#xff08;GPU/TPU&#xff09;的选择与模型参数量紧密相关&#xff0c;需综合考虑显存、计算能力和成本。以下是不同规模模型与硬件的匹配关系及优化策略&#xff1a; 一、参数规模与显卡匹配参考表 模型参数量训练阶段推荐显卡推理阶…

带头结点 的单链表插入方法(头插法与尾插法)

带头结点的单链表插入方法&#xff08;头插法与尾插法&#xff09; 在单链表的操作中&#xff0c;插入是最常见的操作之一&#xff0c;本文介绍 带头结点的单链表 如何实现 后插法 和 前插法&#xff08;包括 插入法 和 后插数据交换法&#xff09;&#xff0c;并提供完整的 C …

Prometheus的工作流程

Prometheus 是一个开源的监控和告警系统&#xff0c;专为监控分布式系统而设计。它的工作流程主要包括以下几个关键步骤&#xff1a; 1. 数据采集 (Scraping) 目标发现 (Service Discovery)&#xff1a; Prometheus 自动或手动配置监控目标&#xff0c;通过 DNS、Kubernetes、…

软件工程面试题(二十二)

1、常用的设计模式有哪些&#xff1f;并写出一段程序代码 Factory(工厂模式)&#xff0c;Adapter(适配器模式)&#xff0c;Singleton(单例模式)&#xff0c;State(状态模式)&#xff0c;Observer(观察者模式) 等。 单例模式 public class Singleton{ private static Singleton …

【Pandas】pandas DataFrame select_dtypes

Pandas2.2 DataFrame Attributes and underlying data 方法描述DataFrame.index用于获取 DataFrame 的行索引DataFrame.columns用于获取 DataFrame 的列标签DataFrame.dtypes用于获取 DataFrame 中每一列的数据类型DataFrame.info([verbose, buf, max_cols, …])用于提供 Dat…

如何利用ATECLOUD测试平台的芯片测试解决方案实现4644芯片的测试?

作为多通道 DC-DC 电源管理芯片的代表产品&#xff0c;4644 凭借 95% 以上的转换效率、1% 的输出精度及多重保护机制&#xff0c;广泛应用于航天航空&#xff08;卫星电源系统&#xff09;、医疗设备&#xff08;MRI 梯度功放&#xff09;、工业控制&#xff08;伺服驱动单元&a…

Python 编程实战:打造高效便捷的目录结构生成器

Python 编程实战&#xff1a;打造高效便捷的目录结构生成器 相关资源文件已经打包成EXE文件&#xff0c;可双击直接运行程序&#xff0c;且文章末尾已附上相关源码&#xff0c;以供大家学习交流&#xff0c;博主主页还有更多Python相关程序案例&#xff0c;秉着开源精神的想法&…

移动端六大语言速记:第6部分 - 错误处理与调试

移动端六大语言速记:第6部分 - 错误处理与调试 本文将对比Java、Kotlin、Flutter(Dart)、Python、ArkTS和Swift这六种移动端开发语言在错误处理与调试方面的特性,帮助开发者理解和掌握各语言的异常处理机制。 6. 错误处理与调试 6.1 异常处理 各语言异常处理的语法对比:…

PyTorch优化器

PyTorch 提供了多种优化算法用于神经网络的参数优化。以下是对 PyTorch 中主要优化器的全面介绍&#xff0c;包括它们的原理、使用方法和适用场景。 一、基本优化器 1. SGD (随机梯度下降) torch.optim.SGD(params, lr0.01, momentum0, dampening0, weight_decay0, nesterov…

C++的UDP连接解析域名地址错误

背景 使用c开发一个udp连接功能的脚本&#xff0c;可以接收发送数据&#xff0c;而且地址是经过内网穿透到外网的 经过 通常发送数据给目标地址&#xff0c;需要把目的地址结构化&#xff0c;要么使用inet_addr解析ip地址&#xff0c;要么使用inet_pton sockaddr_in target…

Spark,上传文件

上传文件 1.上传 先使用命令打开HDFS的NameNode [roothadoop100 hadoop-3.1.3]$ sbin/start-dfs.sh [roothadoop100 hadoop-3.1.3]$ sbin/stop-dfs.sh 和YARN的Job [roothadoop101 hadoop-3.1.3]$ sbin/start-yarn.sh [roothadoop101 hadoop-3.1.3]$ sbin/stop-yarn.sh 在Nam…

如何为Linux/Android Kernel 5.4和5.15添加 fuse passthrough透传功能 ?

背景 参考&#xff1a;Google文档 FUSE 透传 参考此文档&#xff0c;目前kernel.org提供的fuse passthrough补丁在6.9版本之后&#xff0c;但想要在5.4和5.15版本内核做移植应该如何简单点呢&#xff1f;文档中提到 Android的内核为5.4 和 5.15版本内核做了fuse passthrough功…

Ubuntu 防火墙配置

Ubuntu 的防火墙配置可以参考文章&#xff1a;Firewall - Ubuntu Server documentation 22 端口 需要注意的是&#xff0c;在启动防火墙之前&#xff0c;需要先开放 22 端口。 否则 SSH 将会拒绝你连接防火墙。 开放 22 端口的命令为&#xff1a;sudo ufw allow 22 添加端…

Jetson 设备卸载 OpenCV 4.5.4 并编译安装 OpenCV 4.2.0

‌一、卸载 OpenCV 4.5.4‌ 清除已安装的 OpenCV 库‌ sudo apt-get purge libopencv* python3-opencv # 卸载所有APT安装的OpenCV包‌:ml-citation{ref"1,3" data"citationList"}sudo apt autoremove # 清理残留依赖‌:ml-citation{ref"1,4"…

《AI大模型应知应会100篇》第57篇:LlamaIndex使用指南:构建高效知识库

第57篇&#xff1a;LlamaIndex使用指南&#xff1a;构建高效知识库 摘要 在大语言模型&#xff08;LLM&#xff09;驱动的智能应用中&#xff0c;如何高效地管理和利用海量知识数据是开发者面临的核心挑战之一。LlamaIndex&#xff08;原 GPT Index&#xff09; 是一个专为构建…

Sentinel[超详细讲解]-4

&#x1f693; 主要讲解流控模式的 三种方式中的两种&#xff1a; 直接、链路&#x1f680; 1️⃣ 直接模式 &#x1f68e; 直接模式&#xff1a;对资源本身进行限流&#xff0c;例如对某个接口进行限流&#xff0c;当该接口的访问频率超过设定的阈值时&#xff0c;直接拒绝新的…

工作记录 2017-03-24

工作记录 2017-03-24 序号 工作 相关人员 1 修改了邮件上的问题。 更新RD服务器。 郝 更新的问题 1、修改了New User时 init的保存。 2、文件的查询加了ID。 3、加了 patient insurance secondary 4、修改了payment detail的处理。 识别引擎监控 Ps (iCDA LOG :剔除…

裴蜀定理:整数解的奥秘

裴蜀定理&#xff1a;整数解的奥秘 在数学的世界里&#xff0c;裴蜀定理&#xff08;Bzout’s Theorem&#xff09;是数论中一个非常重要的定理&#xff0c;它揭示了二次方程和整数解之间的关系。它不仅仅是纯粹的理论知识&#xff0c;还在计算机科学、密码学、算法优化等多个…

python之 “__init__.py” 文件

提示&#xff1a;python之 “init.py” 文件 文章目录 前言一、Python 中 __init__.py 文件的理解1. What&#xff08;是什么&#xff09;2. Why&#xff08;为什么需要&#xff09;3. Where&#xff08;在哪里使用&#xff09;4. How&#xff08;如何使用&#xff09; 二、问题…