盘点RTOS与普通操作系统的区别
扫描二维码
随时随地手机看文章
一:什么是RTOS
实时操作系统 (RTOS) 是一种运行多线程应用程序并能满足实时期限的操作系统 (OS)(通常是轻量级操作系统)。
包括调度程序、资源管理和设备驱动程序。请注意,当我们谈论“最后期限”时,我们并不一定意味着“快”。相反,满足最后期限表明了一定程度的确定性。
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”才可以称为硬实时系统,因为这个系统明确告诉我什么时候完成操作。