什么是RTOS?RTOS与普通操作系统的区别-程序员宅基地

技术标签: RTOS  嵌入式硬件  

一:什么是RTOS

RTOS(Real-Time Operating System),实时操作系统。实时性是其最大特征,实时操作系统中都要包含一个实时任务调度器,这个任务调度器与其它操作系统的最大不同是强调:严格按照优先级来分配CPU时间,并且时间片轮转不是实时调度器的一个必选项。

也可以这样理解:

实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。

实时系统的正确性不仅依赖系统计算的逻辑结果,还依赖于产生这个结果的时间

换句话说,系统设计时所有的事件都可以在指定的时间内得到响应(时间确定性)。

如果系统关键任务响应时间都满足这条标准,则这样的实时系统可称为硬实时系统。

提供及时响应和高可靠性是RTOS的主要特点

二:RTOS与普通操作系统的区别

与通用的分时操作系统不同(Linux、Windows、Unix等),实时操作系统在航空航天、军事与工业自动化领域更具优势,首先实时操作系统有着分时操作系统无法比拟的响应时间确定性,实时操作系统从调度器算法,到中断响应系统,到消息传递机制等所有的核心算法时间复杂度都是O(1),它表示系统的响应速度不依赖于系统任务的多少,负载的轻重,而只依赖于优先级的设计,就算当前系统满负荷运行,优先级高的事件发生后,系统还将会在指定的时间内立即响应事件。由于这种设计理念和算法上的优势,根据相关数学理论,分时系统在负载严重的情况下是不能通过提升处理器性能来获得确定的响应时间。

这种算法上的优势是通用分时系统所难以比拟的,而通用分时系统则更多考虑的是系统易用性、平衡性和数据吞吐率。

实时系统与分时系统设计思想和应用领域完全不同,不存在替代关系,而是一种互补关系。

我们常用的Windows XP windows 7/8/10,等都是分时系统,它打开文件,程序,不存在时间的确定性,而且快2秒,慢5秒不会对我们的生活和工作造成影响;

实时操作系统大部分是运行在芯片的底层,比如美国的Vx Works,RT-linux,我们国产的SylixOS,这些大型的实时操作系统实时的控制着最底层的应用,时间确定的执行着设定任务,例如火箭发射中定是分离,调整轨道等;

三:什么是硬实时?什么是软实时?

硬实时与软实时之间最关键的差别在于,软实时只能提供统计意义上的实时。例如,有的应用要求系统在95%的情况下都会确保在规定的时间内完成某个动作,而不一定要求100%。

在许多情况下,这样的“软性”正确率已经可以达到用户期望的水平。比如,用户在操作DVD播放机时,只要98%的情况都能正常播放,用户可能就满意了;

而发射卫星、控制核反应堆的应用系统,这些系统的实时性必须达到100%,是绝对不允许出现意外。

硬实时系统有一个刚性的、不可改变的时间限制,它不允许任何超出时限的错误。超时错误会带来损害甚至导致系统失败、或者导致系统不能实现它的预期目标。

软实时系统的时限是一个柔性灵活的,它可以容忍偶然的超时错误。

实时操作系统就是在规定的时间内必须正确地完成操作,完成操作的时间有操作系统的因素,也有用户软件的因素。
非实时操作系统指操作系统无法保证哪怕是最高优先级任务开始执行的最后时限。

只有“非屏蔽中断+执行时间确定的ISR”才可以称为硬实时系统,因为这个系统明确告诉我什么时候完成操作。

著名的硬实时系统包括:

VxWorks,SylixOS,RTlinux, ThreadX, QNX,Nucleus等.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/mxh3600/article/details/124500906

智能推荐

CountdownEvent-程序员宅基地

文章浏览阅读131次。 CountdownEvent lets you wait on more than one thread. The class is new to Framework 4.0 and has an efficient, fully managed implementation. To use the class, instantiate it with the number of threads..._using (var countdown = new countdownevent(

利用MTCNN和facenet实现人脸检测和人脸识别-程序员宅基地

文章浏览阅读8.7k次,点赞8次,收藏78次。利用MTCNN和facenet实现人脸检测和人脸识别 人脸检测和人脸识别技术算是目前人工智能方面应用最成熟的技术了。本博客将利用mtcnn和faceNet搭建一个实现人脸检测和人脸识别的系统。基本思路也很简单,先利用mtcnn的进行人脸检测,当然也可以使用其他的人脸检测方法,如Dilb,OpenCV,OpenFace人脸检测等等,然后再利用faceNet进行人脸识别,f......_mtcnn和facenet

Android 中判断网络连接和GPS是否可用及HTTPCLIENT使用-程序员宅基地

文章浏览阅读140次。大家知道Google支持和发布的Android移动操作系统,主要是为了使其迅速占领移动互联网的市场份额,所谓移动互联网当然也是互联网了,凡是涉及互联网的任何软件任何程序都少不了联网模块的开发,诚然Android联网开发也是我们开发中至关重要的一部分,那么Android是怎么样进行联网操作的呢?这篇博客就简单的介绍一下Android常用的联网方式、判断网络连接状态以及volle..._android public void onresponse(bitmap bitmap

Python基础语法——对象与类_python __isub__用法-程序员宅基地

文章浏览阅读1.1k次。1.面向对象相关概念简介类(Class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。 方法:类中定义的函数。 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。 局部变量:定义在方法中._python __isub__用法

Hive(总)看完这篇,别说你不会Hive!-程序员宅基地

文章浏览阅读7w次,点赞360次,收藏3.4k次。文章目录1.Hive入门1.1什么是Hive1.2 Hive的优缺点1.2.1 优点1.2.2 缺点1.3Hive架构原理2.Hive安装2.1Hive安装2.2HiveJDBC访问2.2.1启动hiveserver2服务2.2.2连接hiveserver2服务2.2.3注意2.3Hive常用交互命令2.4Hive其他命令操作2.5Hive常见属性配置2.5.1数据仓库位置配置2.5.2查询后信息显示配置2.5.3运行日志信息配置3.Hive数据类型3.1基本数据类型3.2集合数据类型3.3类型转化4.DD

dataframe合并与去重两个方法_dataframe merge去重-程序员宅基地

文章浏览阅读8k次。(一)用mergehttps://blog.csdn.net/sinat_38068807/article/details/90577105(二)用concathttps://blog.csdn.net/sinat_38068807/article/details/90515142_dataframe merge去重

随便推点

CTF 学习笔记_ctf笔记-程序员宅基地

文章浏览阅读4.3k次,点赞7次,收藏60次。CTF起源于1996年DEFCON全球黑客大会,以替代之前黑客们通过互相发起真实攻击进行技术比拼的方式。WordPress是利用PHP开发的博客平台,用户可以在支持PHP和MySQL数据库的服务上架设属于自己的网站。也可以把WordPress当做一个内容管理系统(CMS)来使用。WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的,用户可以在支持PHP和MySQL数据库的服务器上使用自己的博客。_ctf笔记

python+OpenCV笔记(二十七):反投影图像-程序员宅基地

本文介绍了Python和OpenCV中的反投影图像的概念、工作原理和代码编写。同时提到了直方图和直方图均衡化的相关知识。

(iView)View UI框架中的Modal对话框阻止点击确定按钮时关闭_iview modal关闭事件-程序员宅基地

文章浏览阅读898次。使用官方的代码,value(可用v-model双向绑定)控制modal框的显示隐藏,会出现只要点击了确定按钮,v-model绑定的值自动变为false,关闭modal框,想要的效果:点击确定按钮判断条件决定modal框是否关闭。_iview modal关闭事件

nginx: [warn] duplicate extension xxxx解决方案_nginx: [warn] duplicate extension "js", content ty-程序员宅基地

文章浏览阅读4k次。完整报错如下:nginx: [warn] duplicate extension "html", content type: "text/html", previous content type: "text/html" in /etc/nginx/mime.types:3nginx: [warn] duplicate extension "htm", content type: "text..._nginx: [warn] duplicate extension "js", content type: "text/javascript", pre

VUE中的img的:src动态加载图片的问题,require也不能随便用_require img-程序员宅基地

文章浏览阅读7.8k次,点赞6次,收藏19次。问题描述:写的一个系统,用户登录后会使用数据库的数据作为用户头像,需要显示在页面上,那头像链接就需要用变量表示,那就用到了:src做动态绑定,直接加变量问题解决:1、使用require由于我们在写代码用的链接是编译前的,编译后图片文件,require中直接写死是没有错误的(里面全是字符串的话),但是如果只用一个变量,就会报错2、使用require的小技巧查找到了一篇有用的教程——前端es6 require动态引入图片报错Error: Cannot find module,“因为require它_require img

vue 动态设置组件高度_高度动态的Vue明星评分组件-程序员宅基地

文章浏览阅读2.3k次。vue 动态设置组件高度 虚拟动态星级 (vue-dynamic-star-rating)A Highly Customizable, easy-to-use elegant stars rating component (similar to Google Play) 高度可定制,易于使用的优雅星级评定组件(类似于Google Play) View Demo查看演示 Download S..._vue-dynamic-star-rating