当前位置: 首页 > news >正文

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

目录

一.概念

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)、可移植性强、适合资源受限场景智能家居、小型控制器

相关文章:

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

目录 一.概念 1.1 分类 1.2 主要指标 二.实现原理 三.主流实时系统对比 一.概念 实时系统&#xff08;Real-Time System, RTS&#xff09;是一类以时间确定性为核心目标的计算机系统&#xff0c;其设计需确保在严格的时间约束内完成任务响应。 1.1 分类 根据时间约束的严…...

虚拟电商-话费充值业务(六)话费充值业务回调补偿

一、话费充值回调业务补偿 业务需求&#xff1a;供应商对接下单成功后充吧系统将订单状态更改为&#xff1a;等待确认中&#xff0c;此时等待供应商系统进行回调&#xff0c;当供应商系统回调时说明供应商充值成功&#xff0c;供应商回调充吧系统将充吧的订单改为充值成功&…...

加密解密工具箱 - 专业的在线加密解密工具

加密解密工具箱 - 专业的在线加密解密工具 您可以通过以下地址访问该工具&#xff1a; https://toolxq.com/static/hub/secret/index.html 工具简介 加密解密工具箱是一个功能强大的在线加密解密工具&#xff0c;支持多种主流加密算法&#xff0c;包括 Base64、AES、RSA、DES…...

印度股票实时数据API接口选型指南:iTick.org如何成为开发者优选

在全球金融数字化浪潮中&#xff0c;印度股票市场因其高速增长潜力备受关注。对于量化交易开发者、金融科技公司而言&#xff0c;稳定可靠的股票报价API接口是获取市场数据的核心基础设施。本文将深度对比主流印度股票API&#xff0c;并揭示iTick在数据服务领域的独特优势。 一…...

使用python实现视频播放器(支持拖动播放位置跳转)

使用python实现视频播放器&#xff08;支持拖动播放位置跳转&#xff09; Python实现视频播放器&#xff0c;在我早期的博文中介绍或作为资料记录过 Python实现视频播放器 https://blog.csdn.net/cnds123/article/details/145926189 Python实现本地视频/音频播放器https://bl…...

Python星球日记 - 第2天:数据类型与变量

&#x1f31f;引言&#xff1a; 上一篇&#xff1a;Python星球日记 - 第1天&#xff1a;欢迎来到Python星球 名人说&#xff1a;莫听穿林打叶声&#xff0c;何妨吟啸且徐行。—— 苏轼《定风波莫听穿林打叶声》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和…...

CyclicBarrier、Semaphore、CountDownLatch的区别,适用场景

CyclicBarrier、Semaphore 和 CountDownLatch 是 Java 并发包中用于线程协作的工具类&#xff0c;它们虽然都与线程同步相关&#xff0c;但设计目的和使用场景有显著差异。以下是它们的核心区别和典型应用场景&#xff1a; 1. CountDownLatch 核心机制 一次性计数器&#xf…...

【愚公系列】《高效使用DeepSeek》050-外汇交易辅助

🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…...

java短连接,长连接

在网络通信中&#xff0c;短连接&#xff08;Short Connection&#xff09;是指客户端与服务器建立连接后&#xff0c;仅完成一次或几次数据交互就立即断开连接的通信方式。以下是关于短链接的详细说明&#xff1a; 一、短链接的核心特点 连接短暂 数据传输完成后立即关闭连接…...

从零开始训练Codebook:基于ViT的图像重建实践

完整代码在文末&#xff0c;可以一键运行。 1. 核心原理 Codebook是一种离散表征学习方法&#xff0c;其核心思想是将连续特征空间映射到离散的码本空间。我们的实现方案包含三个关键组件&#xff1a; 1.1 ViT编码器 class ViTEncoder(nn.Module):def __init__(self, codebo…...

每日一题洛谷P8664 [蓝桥杯 2018 省 A] 付账问题c++

P8664 [蓝桥杯 2018 省 A] 付账问题 - 洛谷 (luogu.com.cn) 思路&#xff1a;要使方差小&#xff0c;那么钱不能一下付的太多&#xff0c;可以让钱少的全付玩&#xff0c;剩下还需要的钱再让钱多的付&#xff08;把钱少的补上&#xff09;。 将钱排序&#xff0c;遍历一遍&…...

蓝桥杯真题——传送阵

原题连接&#xff1a;蓝桥杯2024年第十五届省赛真题-传送阵 - C语言网 知识点&#xff1a;并查集 题目描述 小蓝在环球旅行时来到了一座古代遗迹&#xff0c;里面并排放置了 n 个传送阵&#xff0c;进入第 i 个传送阵会被传送到第 ai 个传送阵前&#xff0c;并且可以随时选择…...

解释回溯算法,如何应用回溯算法解决组合优化问题?

一、回溯算法核心原理 回溯算法本质是暴力穷举的优化版本&#xff0c;采用"试错剪枝"策略解决问题。其核心流程如下&#xff1a; ​路径构建&#xff1a;记录当前选择路径​选择列表&#xff1a;确定可用候选元素​终止条件&#xff1a;确定递归结束时机​剪枝优化…...

opencv连接vs2015

需要改的地方&#xff1a; 1.debug x64 2.vc目录 包含目录&#xff1a;D:\softword\opencv\opencv3416\opencv\build\include 3.vc目录 库目录&#xff1a;D:\softword\opencv\opencv3416\opencv\build\x64\vc14\lib 4.链接器——输入&#xff1a;D:\softword\ope…...

用matlab搭建一个简单的图像分类网络

文章目录 1、数据集准备2、网络搭建3、训练网络4、测试神经网络5、进行预测6、完整代码 1、数据集准备 首先准备一个包含十个数字文件夹的DigitsData&#xff0c;每个数字文件夹里包含1000张对应这个数字的图片&#xff0c;图片的尺寸都是 28281 像素的&#xff0c;如下图所示…...

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

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

【数据库】达梦arm64安装

话不多说&#xff0c;快速开始~ 1.下载 进入官网&#xff1a; 产品下载 | 达梦在线服务平台 下载安装包。 选飞腾、鲲鹏都可以&#xff0c;都是arm架构的。我选择的是&#xff1a; 直接下载地址是https://download.dameng.com/eco/adapter/DM8/202502/dm8_20250117_HWarm920…...

QTableWidget 中insertRow(0)(头插)和 insertRow(rowCount())(尾插)的性能差异

一、目的 在 Qt 的 QTableWidget 中&#xff0c;insertRow(0) &#xff08;头插&#xff09;和 insertRow(rowCount())&#xff08;尾插&#xff09;在性能上存在显著差异。 二、QAbstractItemModel:: insertRows 原文解释 QAbstractItemModel Class | Qt Core 5.15.18 AI 解…...

使用MFC ActiveX开发KingScada控件(OCX)

最近有个需求&#xff0c;要在KingScada上面开发一个控件。 原来是用的WinCC&#xff0c;WinCC本身是支持调用.net控件&#xff0c;就是winform控件的&#xff0c;winform控件开发简单&#xff0c;相对功能也更丰富。奈何WinCC不是国产的。 话说KingScada&#xff0c;国产组态软…...

大模型学习二:DeepSeek R1+蒸馏模型组本地部署与调用

一、说明 DeepSeek R1蒸馏模型组是基于DeepSeek-R1模型体系&#xff0c;通过知识蒸馏技术优化形成的系列模型&#xff0c;旨在平衡性能与效率。 1、技术路径与核心能力 基础架构与训练方法‌ ‌DeepSeek-R1-Zero‌&#xff1a;通过强化学习&#xff08;RL&#xff09;训练&…...

通过 Markdown 改进 RAG 文档处理

通过 Markdown 改进 RAG 文档处理 作者&#xff1a;Tableau 原文地址&#xff1a;https://zhuanlan.zhihu.com/p/29139791931 通过 Markdown 改进 RAG 文档处理https://mp.weixin.qq.com/s/LOBOKNA71dANXHuwxe7yxw 如何将 PDF 转换为 Markdown 以获得更好的 LLM RAG 结果 Mar…...

Java学习总结-IO流

什么IO流&#xff1f; 以内存为主体。input&#xff1a;磁盘向内存输入内容。output&#xff1a;内存向磁盘输入内容。 IO流的分类&#xff1a;...

python发送qq邮件

1.发送邮件的前提是你的qq邮箱设置能够用程序访问 这个服务点打开 就在 设置->账号 中 可以找到 # 导入 smtplib 库&#xff0c;用于实现 SMTP 协议&#xff0c;可实现邮件的发送功能 import smtplib # 从 email.mime.multipart 模块导入 MIMEMultipart 类&#xff0c;用…...

使用Deployment运行无状态应用

使用Deployment运行无状态应用 文章目录 使用Deployment运行无状态应用[toc]一、工作负载资源与控制器二、ReplicationController、ReplicaSet和Deployment1. ReplicationController&#xff08;已淘汰&#xff09;2. ReplicaSet&#xff08;ReplicationController 的增强版&am…...

QT Quick(C++)跨平台应用程序项目实战教程 6 — 弹出框

目录 1. Popup组件介绍 2. 使用 上一章内容完成了音乐播放器程序的基本界面框架设计。本小节完成一个简单的功能。单击该播放器顶部菜单栏的“关于”按钮&#xff0c;弹出该程序的相关版本信息。我们将使用Qt Quick的Popup组件来实现。 1. Popup组件介绍 Qt 中的 Popup 组件…...

Design Compiler:库特征分析(ALIB)

相关阅读 Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482 简介 在使用Design Compiler时&#xff0c;可以对目标逻辑库进行特征分析&#xff0c;并创建一个称为ALIB的伪库&#xff08;可以被认为是缓存&#xff09;&…...

2025高频面试设计模型总结篇

文章目录 设计模型概念单例模式工厂模式策略模式责任链模式 设计模型概念 设计模式是前人总结的软件设计经验和解决问题的最佳方案&#xff0c;它们为我们提供了一套可复用、易维护、可扩展的设计思路。 &#xff08;1&#xff09;定义&#xff1a; 设计模式是一套经过验证的…...

41. 评论日记

越复杂的结构越脆弱&#xff0c;你不能因为有智驾有只能&#xff0c;你就全交给它了&#xff0c;手机永久了还发热呢&#xff0c;你全交给它那你要死了也怪不了谁。 这年头的手机基本都有防水&#xff0c;但是你天天拿着这个在泳池里玩&#xff0c;哪天炸了我都只能说炸的响炸的…...

Python第七章09:自定义python包.py

# 自定义python包# 从物理上看&#xff0c;包就是一个文件夹&#xff0c;在该文件夹下包含了一个_init_.py文件&#xff0c;该文件夹可用于包含多个模块文件 # 从逻辑上看&#xff0c;包的本质依然是模块 # _init_.py 标识python包&#xff0c;没有就是普通文件夹&#xff0…...

基于大模型预测升主动脉瘤的多维度诊疗研究报告

目录 一、引言 1.1 研究背景 1.2 研究目的与意义 二、升主动脉瘤概述 2.1 定义与分类 2.2 发病原因与机制 2.3 流行病学现状 三、大模型技术原理及应用现状 3.1 大模型基本原理 3.2 在医疗领域的应用进展 3.3 针对升主动脉瘤预测的独特价值 四、术前大模型预测方案…...

Lua中table函数使用详解

目录 1. table.concat(list [, sep [, i [, j]]])2. table.insert(list, [pos,] value)3. table.move(src, a, b, dest [, dest_pos]) (Lua 5.3)4. table.pack(...) (Lua 5.2)5. table.remove(list [, pos])6. table.sort(list [, comp])7. table.unpack(list [, i [, j]])总结…...

如何在Windows上找到Python安装路径?两种方法快速定位

原文&#xff1a;如何在Windows上找到Python安装路径&#xff1f;两种方法快速定位 | w3cschool笔记 在 Windows 系统上找到 Python 的安装路径对于设置环境变量或排查问题非常重要。本文将介绍两种方法&#xff0c;帮助你找到 Python 的安装路径&#xff1a;一种是通过命令提…...

图形库 EasyX - EasyX 初识(EasyX 概述、EasyX 下载与安装、打开一个窗口、打开一个彩色窗口、绘制简易图形、输出文字)

一、EasyX 概述 EasyX 是一款专为 C 开发者设计的轻量级图形库&#xff0c;主要面向 Windows 平台&#xff0c;它有如下特点 EasyX 的 API 设计简洁直观&#xff0c;易学易用&#xff0c;绘图效果所见即所得 二、EasyX 下载与安装 1、EasyX 下载 官方网址&#xff1a;https…...

《深度探秘:SQL助力经典Apriori算法实现》

在数据的广袤世界里&#xff0c;隐藏着无数有价值的信息&#xff0c;等待着我们去挖掘和发现。关联规则挖掘算法&#xff0c;作为数据挖掘领域的关键技术&#xff0c;能够从海量数据中找出事物之间潜在的关联关系&#xff0c;为商业决策、学术研究等诸多领域提供有力支撑。其中…...

AVR128单片机红外遥控8*8LED点阵屏显示

1&#xff09;将接收到的红外解码信号用LCD液晶显示屏显示。 2&#xff09;将接收到的5种红外解码信号分别控制88的液晶点阵屏MATRIX-88-GREEN (颜色可以自定)进行不同的显示&#xff1a;整行从上到下、从下到上轮流显示&#xff1b;整列从左到右、从右到左轮流显示&#xff1b…...

前端Uniapp接入UviewPlus详细教程!!!

相信大家在引入UviewPlusUI时遇到很头疼的问题&#xff0c;那就是明明自己是按照官网教程一步一步的走&#xff0c;为什么到处都是bug呢&#xff1f;今天我一定要把这个让人头疼的问题解决了&#xff01; 1.查看插件市场 重点&#xff1a; 我们打开Dcloud插件市场搜素uviewPl…...

【c++深入系列】:类与对象详解(中)

&#x1f525; 本文专栏&#xff1a;c &#x1f338;作者主页&#xff1a;努力努力再努力wz &#x1f4aa; 今日博客励志语录&#xff1a; 不是因为看到希望才坚持&#xff0c;而是坚持了才能看到希望 那么上一篇博客我讲解了什么是类和对象以及类和对象是怎么定义的&#xff0…...

【Linux】远程登录时,使用图形界面报错:MoTTY X11 proxy: Unsupported authorisation protocol

1、问题描述 使用 MobaXterm 远程登录Ubuntu后,使用sudo权限运行图形界面程序报错: MoTTY X11 proxy: Unsupported authorisation protocol (gpartedbin:10518): Gtk-WARNING **: 22:01:34.377: cannot open display: localhost:10.02、查看SSH配置 修改 SSH 服务端配置,…...

作用域与上下文:JavaScript魔法森林探秘

在JavaScript的魔法森林里&#xff0c;作用域和上下文是两位神秘的守护者&#xff0c;它们掌控着代码的逻辑流向和变量的生杀大权。今天&#xff0c;就让我们一起踏入这片神奇的土地&#xff0c;揭开全局作用域、函数作用域和闭包的神秘面纱&#xff0c;看它们如何影响我们的代…...

虚拟电商-话费充值业务(五)充值成功逻辑和网络异常重试逻辑

一、网络异常重试逻辑编写 如果在对接供应商的过程中出现了网络异常&#xff0c;我们需要做一个补偿机制&#xff0c;在任务类型枚举类&#xff1a;TaskTypeEnum中有一种业务状态码是针对远程调用失败的 步骤一&#xff1a;在对接供应商的方法&#xff1a;SupplierServiceImp…...

42.评论日记

怎么看待算命&#xff1f; 我能算到你今晚睡觉前会上一次厕所。 你可以选择相信我算的内容&#xff0c;也可以不信。 你也可以有感觉要上厕所的时候不去拉兜里。 也可以选择相信&#xff0c;早早的拿好纸做准备。 你今晚可能不止上一次&#xff0c;也可能今晚没吃没喝早早…...

MTK-GMS版本国内WIFI受限问题

MTK-GMS版本国内WIFI受限问题解决 文章目录 问题参考资料解决方案方案一 修改配置坑点 方案二 直接修改属性 问题 最近负责ROOM 产品&#xff0c;出现WIFI受限显示&#xff0c;但是网络是通畅的。 GMS 版本&#xff0c;在国外或者国内翻墙网络不会出现WIFI受限显示问题&#…...

C# System.Text.Json 中 JsonConverter 使用详解

总目录 前言 在 C# 开发中&#xff0c;System.Text.Json 是一个高性能的 JSON 处理库&#xff0c;广泛用于序列化和反序列化对象。当默认的序列化行为无法满足需求时&#xff0c;JsonConverter 提供了强大的自定义能力。本文将详细讲解 JsonConverter 的使用方法&#xff0c;帮…...

Leetcode 857 -- 贪心 | 数学

题目描述 雇佣 K 名工人的最低成本 思路 参考官方题解和这里。 代码1&#xff08;正确&#xff09; class Solution { public:double mincostToHireWorkers(vector<int>& quality, vector<int>& wage, int k) {int n wage.size();double res 0, totalq …...

基于 SpringBoot 的社区维修平台

收藏关注不迷路&#xff01;&#xff01; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff08;免费咨询指导选题&#xff09;&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;希望帮助更多…...

maven项目添加第三方JAR包

项目开发过程中&#xff0c;不可避免的需要用到一些maven库&#xff08;公共库、司库等&#xff09;中没有的冷门jar包依赖&#xff0c;这时&#xff0c;可以将这些第三方JAR包安装到本地maven仓库中&#xff0c;实现项目依赖的一致性。具体步骤如下&#xff1a; 1、下载jar包 …...

C#:接口(interface)

目录 接口的核心是什么&#xff1f; 1. 什么是接口&#xff08;Interface&#xff09;&#xff0c;为什么要用它&#xff1f; 2. 如何定义和使用接口&#xff1f; 3.什么是引用接口&#xff1f; 如何“引用接口”&#xff1f; “引用接口”的关键点 4. 接口与抽象类的区…...

c#和c++脚本解释器科学运算

说明&#xff1a; 我希望用c#和c写一个脚本解释器&#xff0c;用于科学运算 效果图&#xff1a; step1: c# C:\Users\wangrusheng\RiderProjects\WinFormsApp3\WinFormsApp3\Form1.cs using System; using System.Collections.Generic; using System.Data; using System.Tex…...

2025年嵌入式大厂春招高频面试真题及解析

以下是 2025 年嵌入式大厂春招高频面试真题及解析,结合真题分类和核心知识点整理: 一、‌C/C++编程基础‌ ‌1.1 指针与内存‌ ‌野指针的成因及避免方法‌(未初始化、释放后未置空)‌ malloc与calloc的区别(后者自动初始化为0)‌ ‌指针与数组的区别‌(内存分配方…...

【C++】nlohmann::json 配置加载技术实践:从基础到高级应用

一、nlohmann::json 库概况与核心特性 nlohmann::json 是 C 社区最受欢迎的 JSON 库之一&#xff0c;其设计理念简洁即美&#xff0c;通过单头文件实现完整的 JSON 解析、序列化和操作功能。 1.1 基本特性 nlohmann::json是一个现代C编写的开源JSON库&#xff0c;采用MIT协议…...