实时操作系统期末总结报告一、实时操作系统的概述实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,并控制所有实时任务协调一致运行的操作系统。
因而,提供及时响应和高可靠性是其主要特点。
实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可。
我们通常使用的操作系统在经过一定改变之后就可以变成实时操作系统。
1.1.实时操作系统的相关概念(1)实时操作系统的定义实时操作系统是保证在一定时间限制内完成特定功能的操作系统。
例如人驾驶的汽车中的系统,需要一个比较稳定的实时操作系统。
在“硬”实时操作系统中,如果不能在允许时间内完成使物体可达的计算,操作系统将因错误结束。
在“软”实时操作系统中,比如汽车不能很快的识别人的操作指令,那么它可能造成严重的事故(如:汽车的瞬时刹车;公交车,它能准确的报站,这其实就是一个实时操作系统的具体体现;其次,车上的GPS导航仪,其实质也是一个比较精确实时操作系统的产物,如果不能实时,那么导航仪将失效,结果不能正确的指导司机驾驶的方向,同时这种实时操作系统的及时性必须达到一定的程度:ms级)。
一些实时操作系统是为特定的应用设计的,另一些是通用的。
一些通用目的的操作系统称自己为实时操作系统。
但某种程度上,大部分通用目的的操作系统,如微软的Windows NT或IBM的OS/390有实时系统的特征。
这就是说,即使一个操作系统不是严格的实时系统,它们也能解决一部分实时应用问题。
(2)实时操作系统中的一些重要的概念代码临界段:指处理时不可分割的代码。
一旦这部分代码开始执行则不允许中断打入;资源:任何为任务所占用的实体;共享资源:可以被一个以上任务使用的资源;任务:也称作一个线程,是一个简单的程序。
每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。
典型地,每个任务都是一个无限的循环,每个任务都处在以下五个状态下:休眠态,就绪态,运行态,挂起态,被中断态;任务切换:将正在运行任务的当前状态(CPU寄存器中的全部内容)保存在任务自己的栈区,然后把下一个将要运行的任务的当前状态从该任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行;内核:负责管理各个任务,为每个任务分配CPU时间,并负责任务之间通讯。
分为不可剥夺型内核和可剥夺型内核;调度:内核的主要职责之一,决定轮到哪个任务运行。
一般基于优先级调度法;(3)及时性关于实时操作系统的及时性,我将从如下两个方面进行介绍:实时操作系统的时间限和实时操作系统的应用相关。
时间限:对一些实时性要求较高的系统,它们要求的时间限一般是毫秒级(ms),但是通常的实时操作系统,一般是秒级(s)或是在100s左右。
这样的及时响应是不能满足的,为了能更好的满足某种需要,我们需要把实时操作系统的及时响应时间缩小到10ms左右,这样才能使实时操作系统的性能更好,可靠性更高。
同时在接收到某个指令之后,做出最快速的判断,达到响应的最佳效果。
应用相关:在现实生活中我们所看到的最多的实时操作系统运用相关的是:汽车的驾驶实时操作系统,其中又主要与它的定位实时跟踪系统和实时节能系统最为突出。
在定位实时跟踪系统中的智能GPS定位能够让驾驶人员实时掌握自己的行驶方向,这样能够在最短的时间内到达目的地。
其次,在图像采集和处理过程中,我们需要精确测试针,这同样需要很高的及时操作,比如10ms/针。
(4)实时操作系统的结构实时操作系统主要是在微内核基础上的层次化机构,应用程序主要指各种面向具体应用的背景的软件系统。
另外RTEMS提供了标准的应用组件库,它是将RTEMS的功能扩展至新的运用领域而形成的标准模块;同时由于RTEMS支持丰富的网络协议,因此标准组件库还包含了较多的网络模块。
RTEMS系统结构图对应其中的存储器部分我以冯.诺依曼体系结构作为图解:冯.诺依曼体系结构图通常实时软件体系结构:如嵌入式软件体系结构分为四层,如下图所示:RTEMS管理器板级支持包(BSP):BSP也叫设备驱动层,它是把操作系统与具体的硬件平台隔离开来,也就是说,在BSP中,把所有与硬件相关的代码封装起来,并向上提供一个虚拟的硬件平台,而实时操作系统就运行在这个虚拟的平台上。
(5)实时操作系统的任务实时操作系统的任务其实总结起来就是一种调度机制。
如何能够更好的处理事务,从而在最短的时间内达到我们的期望,这就是事实操作系统需要完成的任务。
而在完成任务过程中最主要的又是实时操作系统的调度算法,一个好的实时操作系统必须具备多种优秀的调度机制。
在当今计算机高速发展的时代,传统的单击操作任务处理系统已经不能够满足时代发展的需要,实时多任务操作系统将成为本世纪的主流。
实时多任务操作系统,以分时方式运行多个任务,看上去好象是多个任务“同时”运行。
任务之间的切换应当以优先级为根据,只有优先服务方式的RTOS才是真正的实时操作系统,时间分片方式和协作方式的RTOS并不是真正的“实时”。
其RTOS的主要功能模块有调度和中断处理(为了优化用汇编编写),任务管理,事件管理,定时器管理,报文管理,循环队列管理,资源管理,固定存储块管理,规范的UART管理,自动掉电管理。
这些也是标准的RTOS所应具有的基本功能。
总结起来多任务实时操作系统的主要任务就是在同一时刻,进行多个操作(输入多个指令,由实时操作系统的多线程机制同时处理多个任务),在一定的时间内输出多个操作结果。
多任务层次结构图1.2、实时操作系统的特征1)高精度计时系统(时间约束性)计时精度是影响实时性的一个重要因素。
在实时应用系统中,经常需要精确确定实时地操作某个设备或执行某个任务,或精确的计算一个时间函数。
这些不仅依赖于一些硬件提供的时钟精度,也依赖于实时操作系统实现的高精度计时功能。
其中包括硬实时和软实时,硬实时是任务必须在规定的时间之内完成,否则将影响结果的精确性,但是软实时则是没有强制规定必须再规定的时间内完成任务,也就是我们所说的时间约束性不是很强。
2)多级中断机制(及时性)一个实时应用系统通常需要处理多种外部信息或事件,但处理的紧迫程度有轻重缓急之分。
有的必须立即做出反应,有的则可以延后处理。
因此,需要建立多级中断嵌套处理机制,以确保对紧迫程度较高的实时事件进行及时响应和处理。
这就是一个响应时间即:及时性的特点,响应时间越短我们所得到的数据就越精确,越接近最优结果。
3)实时调度机制实时操作系统不仅要及时响应实时事件中断,同时也要及时调度运行实时任务。
但是,处理机调度并不能随心所欲的进行,因为涉及到两个进程之间的切换,只能在确保“安全切换”的时间点上进行,实时调度机制包括两个方面,一是在调度策略和算法上保证优先调度实时任务;二是建立更多“安全切换”时间点,保证及时调度实时任务。
4)可预测性和可靠性可预测性是指系统能够对实时任务的执行时间进行判断,确定是否能够满足任务的时限要求。
由于实时系统对时间约束要求的严格性,使可预测性成为实时操作系统的一项重要性能要求。
可靠性是在一些重要的实时应用中,为确保减少任何不可靠因素和计算机的微小故障,或某些特定强实时任务超过时限的问题的出现,从而减少那些难以预测的后果,所以可靠性的实时操作系统中非常的重要。
二、实时操作系统的流水线操作2.1、流水线操作以及流水线操作与实时操作的关系流水线操作:所谓的流水线操作就是指将每条指令分解为多步,并让各步操作重叠,从而实现几条指令并行处理的技术。
程序中的指令仍是一条条顺序执行,但可以预先取若干条指令,并在当前指令尚未执行完时,提前启动后续指令的另一些操作步骤。
一般的三级流水线操作为:取指、译码、执行。
流水线操作与实时操作系统有着非常紧密的联系,通常现在我们所说的实时操作系统都是多任务实时操作系统,所谓的多任务实时操作就是在同一时间可以同时执行多个指令,而互不干扰。
在今天多任务实时操作系统已成为一种必须,那么这种系统必须实现多线程机制,然而多线程的实现就必须使用流水线操作。
流水线操作不但能够提高实时操作系统的性能,而且能过大大提高计算机的计算速度,满足当代大量数据处理等实质性操作的需要。
通常流水线操作有两种结构,冯.诺依曼结构和哈佛结构。
冯.诺依曼结构是将程序指令存储器和数据存储器合并在一起的结构,但是哈佛结构则是一种将程序指令存储器和数据存储器分开的存储结构。
两中结构的体系图如下所示:冯.诺依曼体系结构图哈佛体系结构图2.2、高速缓冲存储器的特点以及与实时操作系统的关系高速缓冲存储器:是存在于主存与CPU之间的一级存储器,由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多,接近于CPU的速度。
主要由三大部分组成:Cache存储体、地址转换部件、替换部件。
高速缓冲存储器的容量一般只有主存储器的几百分之一,但它的存取速度能与中央处理器相匹配。
根据程序局部性原理,正在使用的主存储器某一单元邻近的那些单元将被用到的可能性很大。
因而,当中央处理器存取主存储器某一单元时,计算机硬件就自动地将包括该单元在内的那一组单元内容调入高速缓冲存储器,中央处理器即将存取的主存储器单元很可能就在刚刚调入到高速缓冲存储器的那一组单元内。
于是,中央处理器就可以直接对高速缓冲存储器进行存取。
在整个处理过程中,如果中央处理器绝大多数存取主存储器的操作能为存取高速缓冲存储器所代替,计算机系统处理速度就能显著提高。
由于高速缓冲存储器有如上的特点,这些特点和实时操作系统的及时性(在很快的时间之内做出反应)吻合,所以一个实时性很好的实时操作系统必须配置高速缓冲存储器,这样实时操作系统的性能才能很好的体现。
三、实时操作系统的任务分配与调度策略实时操作系统的任务分配机制其实就是一种任务调度策略,一个好的实时系统必须具有优秀的调度算法作为基础,下面我主要就两种调度机制作为介绍:单调速率调度算法(短周期优先算法)和时间片轮转算法。
短周期优先算法:短周期优先算法又名短作业调度算法,是从后备队列中选择一个或者若干个估计运行时间最短的作业,将他们调入内存运行。
而短进程优先调度算法则是从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或者发生某事件而被阻塞放弃处理机时再重新调度。
时间片轮转法:系统将所有的就绪进程按先来先服务的原则排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片。
当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的队尾;然后,再把处理机分配给就绪队列中的新的队首进程,同时也让它执行一个时间片。