LabVIEW什么是实时操作系统(RTOS)

news2024/11/28 9:31:45

LabVIEW什么是实时操作系统(RTOS)

一般而言,操作系统的任务是管理计算机的硬件资源和应用程序。实时操作系统会执行这些任务,但是运行时间精度和可靠度都极高。在实际应用中,有的系统失常代价高昂,甚至会引起安全事故。这时,操作系统的时间精度和可靠度都显得格外重要。

顾名思义,实时操作系统必须在已知的关键时间内完成关键操作,至少要在绝对大多数情况下在已知时间内完成关键操作。部分这类操作包括操作系统调用和中断处理。完全满足在指定时间内完成关键性操作的实时操作系统,被称为“硬实时”操作系统。大多数情况下能满足在指定时间内完成关键性操作的实时操作系统,被称为“软实时”操作系统。实际情况中,上述分类的指导意义有限。每个实时操作系统都有独特的性能特征,用户在决定使用某个实时操作系统之前需要仔细研究这些特征。

下面通过列子来帮助理解实时操作系统的概念。假设在为一款新车设计安全气囊系统。在该情况下,极小的时间误差(太早或太迟)都会产生灾难性后果,甚至导致人员伤亡。因此,需要一个硬实时系统;在系统设计上要确保没有任何操作的优先级可以凌驾于时间限制之上。另一方面,如要设计一个接收流媒体手机,在保持大致不丢失流媒体数据的前提下可以偶尔遗失少量数据。在这种应用中,一个软实时操作系统就可满足要求。

如果编程合理,实时操作系统可保证程序运行在时间上的稳定可靠性。实时操作系统向用户提供任务优先级排序的高度控制权,也通常会允许用户检查任务执行是否符合时间上设定的要求。

与实时操作系统相比,个人电脑上最常见的操作系统称为通用操作系统,例如,Windows。下面将详尽阐述实时操作系统和通用操作系统的区别。在此之前,要先了解两种操作系统的优劣。Windows等操作系统通过运行多个程序和服务来维持对用户操作的响应,实时操作系统通过精确和可靠度定时机制(关注编程人员设定的优先级)来运行关键性应用程序。

重要的术语和概念

确定性:运行在实时操作系统上的应用程序(或应用程序的关键性片段),如能保证时间精度,就认为是确定性的程序。

软实时和硬实时:完全能保证时间精度的操作系统,称为硬实时操作系统。多数情况下能保证时间精度的操作系统,称为软实时操作系统。

抖动:程序开始时,首次循环相对于后续循环在时间上的差异,称为抖动。实时操作系统可确保在编程合理的情况下,抖动为最小水平;任务首次执行与后续循环执行所用的时间非常接近。

抖动指一次任务执行和后续任务执行之间在时间上的差异。实时操作系统通过各种优化方式使抖动最小化。

实时应用程序范例

实时操作系统用于两类应用:事件响应和闭环控制。事件响应类应用需要在指定的时间内对外界触发条件作出响应。例如,生产线上自动视觉模式识别。在视觉识别系统中,必须在生产线移动之前对待测部分进行拍照和分析。

对运行在硬实时操作系统上的程序进行严格的设计和调试之后,在事件响应上工作的设计人员可保证响应的确定性(在指定时间内发生)。在视觉识别案例中,使用通用操作系统可能会导致无法及时检测待测部分,从而降低生产线速度、强制报废待测品,甚至交付潜在的次品。

在闭环控制系统中,例如,汽车巡航控制系统会连续处理反馈数据,调整输出。因为输出数据取决于是否能在指定时间内处理完输入数据。在指定时间内完成任务至为重要,只有这样才能有正确的输出。如果巡航系统无法在给定时间点上判断合适的油门设置,会发生什么情况?硬实时系统可保证在指定时间内及时处理控制系统的输入数据。

还必须指出,很多程序必须运行多个周期后才能充分体现实时操作系统的可靠性。与通用操作系统同时处理多个程序和进程不同,实时操作系统上只有少量程序运行。实时操作系统适用于宕机代价高昂的全天候系统。

探究事实:实时操作系统与通用操作系统有哪些不同之处

Windows、MacOS等操作系统是开发和运行非实时测量和控制应用程序的优秀平台。这些操作系统使用于实时操作系统之外的使用场合。对于要求精确定时和长时间稳定运行的系统而言,通用操作系统不是理想的平台。下面将阐述两种操作系统之间的区别,以及编写实时应用程序时的注意事项。

设置优先级

编写应用程序时,大多数操作系统都允许程序员指定应用程序的总体优先级,以及应用程序中不同任务(线程)的优先级。这些优先级设置将程序和任务的重要性告知操作系统。如两个任务同时运行,操作系统将优先运行优先级设置较高的任务。

在实际应用中,通用操作系统不会始终严格按照程序设置的优先级执行。因为通用操作系统可同时运行多个应用程序和进程,所有任务都会被分配到一些处理时间。在某些情况下,低优先级任务的临时优先级可能会比高优先级任务更高。这样,每个任务都会分配到一定的运行时间。这会违背程序设计人员的设计初衷。

实时操作系统可严格按照程序员设置的优先级执行程序。在多数实时操作系统上,如果一个高优先级任务占用率100%的处理器资源,低优先级任务将一直等待直到高优先级任务完成。因此,设计实时应用程序时,必须谨慎、合理设置优先级。在一个典型的实时应用程序中,设计者应该将实时代码放置在高优先级的部分。写入磁盘、网络通信等较低优先级的代码应该放在较低优先级的部分。

中断延迟

设备生成一个中断和设备中断发生之间的时间,称为中断延迟。通用操作系统响应中断需要的时间不固定,实时操作系统必须确保在一个固定的时间内响应中断。也就是说,实时操作系统的延迟必须是已知的固定的值。

性能

一个常见的误解是实时操作系统的性能高于通用操作系统。在某些情况下,因为不需要在多个应用程序和服务之间进行多任务操作,实时操作系统的性能更好。这并不是绝对的规律。实际应用程序的性能取决于CPU主频、内存架构、程序特征,等等。

即使实时操作系统对执行速度没有直接影响,但是它与通用操作系统相比具有更精确和更可靠的时间特性。

需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。

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

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

相关文章

成为提示专家,AI艺术杂志:AI Unleashed 第一期

shadow最近发现了一期AI艺术的杂志。名称叫 AI Unleashed,是一本深入探索 AI 和想象力的杂志。每期杂志都将填满精彩的 AI 艺术,激发你的好奇心, 让你更加了解最新的 AI 技术,以及它如何改变现有工作流和我们对艺术和技术的看法。…

LVS+keepalived(双主)+Nginx实现高可用负载均衡

#为什么采用双主架构: 单主架构只有一个keepalived对外提供服务,该主机长期处于繁忙状态,而另一台主机却很空闲,利用率低下 #双主架构的优点: 即将两个或以上VIP分别运行在不同的keepalived服务器,以实现…

C++11使用线程类thread的方法

C11 之前,C 语言没有对并发编程提供语言级别的支持。如果需要使用线程,windows系统需要使用CreateThread函数创建线程,而linux需要使用pthread库使用线程。C11 中增加了线程以及线程相关的类,很方便地支持了并发编程。由于可以跨平…

活动星投票十大商业品牌网络评选微信的投票方式线上免费投票

“十大商业品牌”网络评选投票_线上系统免费投票_功能齐全的视频投票_在线投票免费小程序用户在使用微信投票的时候,需要功能齐全,又快捷方便的投票小程序。而“活动星投票”这款软件使用非常的方便,用户可以随时使用手机微信小程序获得线上投…

CV学习笔记-VGG

VGG 1. 常见的卷积神经网络 VGG属于一种经典的卷积神经网络结构,其出现在AlexNet之后,由于AlexNet的突破证实了卷积神经网络的可行性,VGG的思路主要是将网络层数加深,从某种意义上说,网络层数的加深可以粗略地认为考虑…

编译原理学习笔记14——属性文法与语法制导翻译1

编译原理学习笔记14——属性文法与语法制导翻译114.1 属性文法14.2 属性计算14.1 属性文法 属性文法 综合属性 自下而上传递信息语法规则:根据右 部候选式中的符号 的属性计算左部被 定义符号的综合属性语法树:根据子结 点的属性和父结点 自身的属性…

【日常系列】LeetCode《30·动态规划总结》

动态规划总结 线性动态规划问题总结 打家劫舍总结 最大子数组和总结 dp[i] 依赖于前面一个或者两个状态 dp[i] 依赖于前面多个状态 注意:子序列可以不连续 dp[i] 带有一个或者多个维度 输入为两个数组或者两个字符串 lc 10【剑指 19】【top100】:正…

【LeetCode每日一题:2309. 兼具大小写的最好英文字母~~~模拟+Hash表+贪心】

题目描述 给你一个由英文字母组成的字符串 s ,请你找出并返回 s 中的 最好 英文字母。返回的字母必须为大写形式。如果不存在满足条件的字母,则返回一个空字符串。 最好 英文字母的大写和小写形式必须 都 在 s 中出现。 英文字母 b 比另一个英文字母 …

Java生成微信小程序二维码,5种实现方式,一个比一个简单

文章目录前言先看官网一、JDK自带的URLConnection方式二、Apache的HttpClient方式三、okhttp3方式四、Unirest方式五、RestTemplate方式其它细节getAccessToken构建参数mapbyte[]数组源码下载前言 先介绍一下项目场景,主要是通过微信小程序二维码裂变分享&#xff…

一时重构一时爽,一直重构一直爽

笔者(后台技术汇)恭祝各位大佬:2023年春节快乐,兔年祥瑞。距离上次更新,已经过去5个月有余了,有小伙伴疑惑笔者是不是删库跑路了..其实不是,这段时间是在参加一次比较大的项目重构(目…

学习笔记 —— python代码耗时及内存占用测试方法

1、手写耗时测试 先看结果; 主要有三种方法,各自的时钟间隔如下: time.time() timeit time.time_ns() ( time is outputted in ns!). 可见方法2,即timeit 的时钟间隔最短。 注:最后一个是以ns为单位的,前两个是…

二叉树的概念与结构

文章目录前言一、树的概念及结构1.树的概念2.树的相关概念3.树的表示4. 树在实际中的运用二、二叉树概念及结构1.概念2.特殊的二叉树5.二叉树的性质6.二叉树的存储结构(1).顺序存储(2).链式存储结语前言 因为二叉树的知识点太多,一篇文章讲不…

《真象还原》读书笔记——第一章 部署工作环境

环境: 由于平时使用 windows 系统 所以 linux 环境 使用了 linux子系统。 $ cat /proc/version Linux version 4.4.0-22000-Microsoft (MicrosoftMicrosoft.com) (gcc version 5.4.0 (GCC) )1.1 工欲善其事 必先利其器 操作环境很重要呀。 1.2 编译器 GCC: gc…

Java 23种设计模式(8.结构型模式-桥接模式)

结构型模式-桥接模式 代码分析 类图 代码 public interface Implementor {void operation(); }public class ConcreteImplementorA implements Implementor{Overridepublic void operation() {System.out.println("A");} }public class ConcreteImplementorB imple…

(Java高级教程)第四章必备前端基础知识-第二节3:CSS盒模型和浮动

文章目录一:盒模型(1)border(2)padding(3)margin二:flex布局一:盒模型 盒模型:在HTML中,每个标签(或元素)相当于是一个盒…

DaVinci:色彩匹配

z调色页面:色彩匹配Color:Color Match色彩匹配 Color Match调板是专业的一级调色工具,专门用于对视频图像进行精准的校色还原。色彩匹配时,先定位到视频中持有色卡的画面。在检视器左下角快捷菜单中选择“色卡” Color Chart工具&…

C 语言零基础入门教程(十二)

C enum(枚举) 枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读。 枚举语法定义格式为: enum 枚举名 {枚举元素1,枚举元素2,……};接下来我们举个例子,比如:一星期有 7 天,如果不用枚举&…

【Linux】vim编辑器的使用

文章目录vim的基本概念vim指令集复制粘贴撤销、剪切光标定位vim的基本概念 vim是一款多模式的编辑器,在我们常用的模式有3~5种。分别是命令模式(command mode)、插入模式(Insert mode)和底行模式( last lin…

【PHP 随记】—— ThinkPHP 配置数据库

👉总目录👈\large\colorbox{skyblue}{👉总目录👈}👉总目录👈​ 文章目录1、数据库连接及导入① 数据库连接② 数据库导入2、配置 ThinkPHP 数据库连接信息① 配置连接信息1、数据库连接及导入 ① 数据库连…

大数据分析案例-基于随机森林算法构建人口普查分析模型

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…