实时作业系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速回响,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的作业系统。提供及时回响和高可靠性是其主要特点。
基本介绍
- 中文名:实时作业系统
- 外文名:Real Time Operating System
- 简称:RTOS
- 常用系统:ucosii,rtthread,MsgOS
- 行业套用:工业自动化、军事、电力、新能源
- 特点:实时回响、稳定可靠
定义
实时作业系统是保证在一定时间限制内完成特定功能的作业系统。实时作业系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在作业系统设计时保证的;软实时则只要按照任务的优先权,儘可能快地完成操作即可。我们通常使用的作业系统在经过一定改变之后就可以变成实时作业系统。
例如,可以为确保生产线上的机器人能获取某个物体而设计一个作业系统。在“硬”实时作业系统中,如果不能在允许时间内完成使物体可达的计算,作业系统将因错误结束。在“软”实时作业系统中,生产线仍然能继续工作,但产品的输出会因产品不能在允许时间内到达而减慢,这使机器人有短暂的不生产现象。一些实时作业系统是为特定的套用设计的,另一些是通用的。一些通用目的的作业系统称自己为实时作业系统。但某种程度上,大部分通用目的的作业系统,如微软的Windows NT或IBM的OS/390有实时系统的特徵。这就是说,即使一个作业系统不是严格的实时系统,它们也能解决一部分实时套用问题。
大体上,实时作业系统(RTOS)要求:
- 多任务
- 处理能被区分优先次序的进程线
- 一个中断水平的充份数量
被装入作为微型设备一部分的内含小作业系统经常要求实时作业系统。一些核心问题能被考虑以符合实时作业系统的需求。然而,因为像设备驱动程式这样的其他成份,也通常被特别的方法需要,一个实时作业系统通常比核心更大。
实时任务
在实时系统中必然存在着若干个实时任务,这些任务通常与某些个外部设备相关,能反应或控制相应的外部设备,因而带有某种程度的紧迫性。可从不同的角度对实时任务加以分类。
按任务执行时是否呈现周期性变化来划分:
a、周期性实时任务
外部设备周期性地发出激励信号给计算机,要求它按照指定周期循环执行,以便周期性的控制某种外部设备。
b、非周期性实时任务
外部设备所发出的激励信号并无明显的周期性,但都必须联繫着一个截止时间。 它又可分为开始截止时间(任务在某时间以前必须开始执行)和完成截止时间(任务在某时间以前必须完成)两部分。
根据对截至时间的要求来划分:
a、硬实时任务
b、软实时任务
特徵
1)高精度计时系统
计时精度是影响实时性的一个重要因素。在实时套用系统中,经常需要精确确定实时地操作某个设备或执行某个任务,或精确的计算一个时间函式。这些不仅依赖于一些硬体提供的时钟精度,也依赖于实时作业系统实现的高精度计时功能。
2)多级中断机制
一个实时套用系统通常需要处理多种外部信息或事件,但处理的紧迫程度有轻重缓急之分。有的必须立即作出反应,有的则可以延后处理。因此,需要建立多级中断嵌套处理机制,以确保对紧迫程度较高的实时事件进行及时回响和处理。
3)实时调度机制
实时作业系统不仅要及时回响实时事件中断,同时也要及时调度运行实时任务。但是,处理机调度并不能随心所欲的进行,因为涉及到两个进程之间的切换,只能在确保“安全切换”的时间点上进行,实时调度机制包括两个方面,一是在调度策略和算法上保证优先调度实时任务;二是建立更多“安全切换”时间点,保证及时调度实时任务。
比较
实时系统与分时系统特徵的比较
(1)多路性。实时信息处理系统与分时系统一样具有多路性。系统按分时原则为多个终端用户服务;而对实时控制系统,其多路性则主要表现在经常对多路的现场信息进行採集以及对多个对象或多个执行机构进行控制。
(2)独立性。实时信息处理系统与分时系统一样具有独立性。每个终端用户在向分时系统提出服务请求时,是彼此独立的操作,互不干扰;而在实时控制系统中信息的採集和对对象的控制,也彼此互不干扰。
(3)及时性。实时信息系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定;而实时控制系统的及时性,则是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级、百毫秒级直至毫秒级,甚至有的要低于100微秒。
(4)互动性。实时信息处理系统具有互动性,但这里人与系统的互动,仅限于访问系统中某些特定的专用服务程式。它不像分时系统那样能向终端用户提供数据处理服务、资源共享等服务。
(5)可靠性。分时系统要求系统可靠,相比之下,实时系统则要求系统高度可靠。因为任何差错都可能带来巨大的经济损失甚至无法预料的灾难性后果。因此,在实时系统中,採取了多级容错措施来保证系统的安全及数据的安全。
相关概念
基本概念
代码临界段:指处理时不可分割的代码。一旦这部分代码开始执行则不允许中断打入;
资源:任何为任务所占用的实体;
共享资源:可以被一个以上任务使用的资源;
任务:也称作一个执行绪,是一个简单的程式。每个任务被赋予一定的优先权,有它自己的一套CPU暂存器和自己的栈空间。典型地,每个任务都是一个无限的循环,每个任务都处在以下五个状态下:休眠态,就绪态,运行态,挂起态,被中断态;
任务切换:将正在运行任务的当前状态(CPU暂存器中的全部内容)保存在任务自己的栈区,然后把下一个将要运行的任务的当前状态从该任务的栈中重新装入CPU的暂存器,并开始下一个任务的运行;
核心:负责管理各个任务,为每个任务分配CPU时间,并负责任务之间通讯。分为不可剥夺型核心和可剥夺型核心;
调度:核心的主要职责之一,决定轮到哪个任务运行。一般基于优先权调度法;
优先权的问题
任务优先权:分为优先权不可改变的静态优先权和优先权可改变的动态优先权;
优先权反转:优先权反转问题是实时系统中出现最多的问题。共享资源的分配可导致优先权低的任务先运行,优先权高的任务后运行。解决的办法是使用“优先权继承”算法来临时改变任务优先权,以遏制优先权反转。
互斥
虽然共享数据区简化了任务之间的信息交换,但是必须保证每个任务在处理共享共享数据时的排他性。使之满足互斥条件的一般方法有:关中断,使用测试并置位指令(TAS),禁止做任务切换,利用信号量。
因为採用实时作业系统的意义就在于能够及时处理各种突发的事件,即处理各种中断,因而衡量嵌入式实时作业系统的最主要、最具有代表性的性能指标参数无疑应该是中断回响时间了。中断回响时间通常被定义为:
中断回响时间=中断延迟时间+保存CPU状态的时间+该核心的ISR进入函式的执行时间。
中断延迟时间=MAX(关中断的最长时间,最长指令时间) + 开始执行ISR的第一条指令的时间。
最大中断禁止时间:
当RTOS运行在核态或执行某些系统调用的时候,是不会因为外部中断的到来而中断执行的。只有当RTOS重新回到用户态时才回响外部中断请求,这一过程所需的最大时间就是最大中断禁止时间。
任务切换时间:
当由于某种原因使一个任务退出运行时,RTOS保存它的运行现场信息、插入相应伫列、并依据一定的调度算法重新选择一个任务使之投入运行,这一过程所需时间称为任务切换时间。
上述几项中, 最大中断禁止时间和任务切换时间是评价一个RTOS实时性最重要的两个技术指标。