《实时性改善措施.doc》由会员分享,可在线阅读,更多相关《实时性改善措施.doc(5页珍藏版)》请在三一办公上搜索。
1、一、实时操作系统定义1实时操作系统实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的操作系统。因而,提供及时响应和高可靠性是其主要特点。实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可。我们通常使用的操作系统在经过一定改变之后就可以变成实时操作系统。实时操作系统是保证在一定时间限制内完成特定功能的操作系统。例如,可以为确保生产线上的机器人能获取某个物体而
2、设计一个操作系统。在“硬”实时操作系统中,如果不能在允许时间内完成使物体可达的计算,操作系统将因错误结束。在“软”实时操作系统中,生产线仍然能继续工作,但产品的输出会因产品不能在允许时间内到达而减慢,这使机器人有短暂的不生产现象。一些实时操作系统是为特定的应用设计的,另一些是通用的。一些通用目的的操作系统称自己为实时操作系统。但某种程度上,大部分通用目的的操作系统,如微软的Windows NT或IBM的OS/390有实时系统的特征。这就是说,即使一个操作系统不是严格的实时系统,它们也能解决一部分实时应用问题。2实时操作系统的特征通常,实时操作系统必须有以下特征:1)多任务;2)有线程优先级3)
3、多种中断级别小的嵌入式操作系统经常需要实时操作系统。内核要满足实时操作系统的要求。但其它部件,如设备驱动程序也是需要的,因此,一个实时操作系统常比内核大。3实时操作系统的分类及优缺点 总的来说实时操作系统是事件驱动的,能对来自外界的作用和信号在限定的时间范围内作出响应。它强调的是实时性、可靠性和灵活性, 与实时应用软件相结合成为有机的整体起着核心作用, 由它来管理和协调各项工作,为应用软件提供良好的运行软件环境及开发环境。从实时系统的应用特点来看实时操作系统可以分为两种:一般实时操作系统和嵌入式实时操作系统。1、一般实时操作系统应用于实时处理系统的上位机和实时查询系统等实时性较弱的实时系统,并
4、且提供了开发、调试、运用一致的环境。2、嵌入式实时操作系统应用于实时性要求高的实时控制系统,而且应用程序的开发过程是通过交叉开发来完成的,即开发环境与运行环境是不一致。优点:嵌入式实时操作系统具有规模小(一般在几K几十K 内)、可固化使用实时性强(在毫秒或微秒数量级上)的特点 。在嵌入式实时操作系统环境下开发实时应用程序使程序的设计和扩展变得容易,不需要大的改动就可以增加新的功能。通过将应用程序分割成若干独立的任务模块,使应用程序的设计过程大为简化;而且对实时性要求苛刻的事件都得到了快速、可靠的处理。通过有效的系统服务,嵌入式实时操作系统使得系统资源得到更好的利用。缺点:但是,使用嵌入式实时操
5、作系统还需要额外的ROM/RAM开销,25%的CPU额外负荷,以及内核的费用。4.实时操作系统的评价指标 RTOS是操作系统研究的一个重要分支,它与一般商用多任务OS如Unix、Windows、Multifinder等有共同的一面,也有不同的一面。对于商用多任务OS,其目的是方便用户管理计算机资源,追求系统资源最大利用率;而RTOS追求的是实时性、可确定性、可靠性。评价一个实时操作系统一般可以从任务调度、内存管理、任务通讯、内存开销、任务切换时间、最大中断禁止时间等几个方面来衡量。1. 任务调度机制:RTOS的实时性和多任务能力在很大程度上取决于它的任务调度机制。从调度策略上来讲,分优先级调度
6、策略和时间片轮转调度策略;从调度方式上来讲,分可抢占、不可抢占、选择可抢占调度方式;从时间片来看,分固定与可变时间片轮转。2. 内存管理: 分实模式与保护模式。3. 最小内存开销:RTOS的设计过程中,最小内存开销是一个较重要的指标,这是因为在工业控制领域中的某些工控机(如上下位机控制系统中的下位机),由于基于降低成本的考虑,其内存的配置一般都不大,例如康拓5000系列5185板,其基本内存配置仅为256K SRAM128KEPROM,而在这有限的空间内不仅要装载实时操作系统,还要装载用户程序。因此,在RTOS的设计中,其占用内存大小是一个很重要的指标,这是RTOS设计与其它操作系统设计的明显
7、区别之一。4. 最大中断禁止时间:当RTOS运行在核态或执行某些系统调用的时候,是不会因为外部中断的到来而中断执行的。只有当RTOS重新回到用户态时才响应外部中断请求,这一过程所需的最大时间就是最大中断禁止时间。5. 任务切换时间:当由于某种原因使一个任务退出运行时,RTOS保存它的运行现场信息、插入相应队列、并依据一定的调度算法重新选择一个任务使之投入运行,这一过程所需时间称为任务切换时间。上述几项中, 最大中断禁止时间和任务切换时间是评价一个RTOS实时性最重要的两个技术指标。二、改善措施对于一个好的操作系统,需要兼顾功能强大,用户易用性,可靠性,实时性,可维护性, 很多时候最后的设计是这
8、些要求达成的一个平衡,今天我们讨论如何提高操作系统的实时性实时分为软实时与硬实时, 软实时要求平均响应时间要小于某一个值,硬实时要求最坏响应时间要小于某一个值,很多应用场景任务的实时要求非常高,比如汽车防抱死系统,差10毫秒就是人命关天,时间就是生命。 电信中主管网络损坏,需要在50毫秒之内倒换到备份网络之中,否则可能有成千上万个通话中断, 损失重大, 至于航天系统,实时的重要性要求不言而喻。其他的系统,如手机,太慢了用户感觉肯定不爽,不希望按接电话键2秒钟都没反应,那样对方可能挂机了。如何提高操作系统的实时性呢。1 缩短中断响应时间。为了获得对外部事件的及时响应,最小化硬件中断发生到执行该中
9、断的第一条代码的时间很重要。这个时间间隔称为中断延迟,为了保证中断延迟尽可能小,一个好的RTOS应该在几乎所有时间内都支持产生中断。正如在关于内核抢占部分提到的那样,一些重要的代码段的确需要暂时屏蔽中断。这种最大的屏蔽时间通常被定义为最大的中断延迟。 在某些情况下,硬件中断处理器必须调度并运行一个更高优先级的线程(例如在一个驱动程序中)。在这样的情况下,中断处理器将返回并指示一个事件将被处理。这样的处理将引入了第二种形式的延迟调度延迟,这个延时必须在设计中加以考虑。调度延迟是介于用户的中断处理器的最后一条指令和驱动程序线程第一条指令的执行之间的时间。 在一个嵌入式系统中可能会同时出现多个硬件中
10、断。例如,在一个病人监护系统中,当一个传感器记录了病人心跳的一次变化并且网卡接收到网络传来的数据的同时,护士按了触摸屏。很明显,一些中断(如心率的变化)应该立即得到处理,而其他的则可以延缓。通过提供对嵌套中断的支持,RTOS支持嵌入式系统优先处理更高优先级的中断。 几乎所有的实时事件都是通过中断上报的,当中断来临时,我们必须停止当前的一切任务,响应中断,我们把中断分成两部分:上半部分与下半部分,或者快中断部分与慢中断部分。上半部分屏蔽其他中断,处理那些紧急任务,如清除某些寄存器,保存中断现场,给相应进程发送消息等, 其他不太紧急的部分放在下半部分,此时所有中断打开,不影响其他任务的完成。2缩短
11、进程上下文切换时间。当CPU CPU也称为中央处理器,是电子计算机的主要设备之一。其功能主要是解释计算机指令以及处理计算机软件中的数据。所谓的计算机的可编程性主要是指对CPU的编程。CPU是计算机中的核心配件,只有火柴盒那么大,几十张纸那么厚,但它却是一台计算机的运算核心和控制核心。计算机中所有操作都由CPU负责读取指令,对指令译码并执行指令的核心部件。CPU、内部存储器和输入/输出设备是电子计算机的三大核心部件。 全文在执行某个任务时,实时任务到来,需要马上执行实时任务,我们不能等到当前任务时间片用完才去执行实时任务,那样黄花菜都凉了,必须在中断来临之时马上能过切换过去,保存当前进程的上下文
12、如寄存器,内存内存 内存的正式叫法是内存储器,以此来与外存储器区分开。物理上它安装在计算机内部,通常安装在主板上,所以称为内存。它的作用是供暂时存储处理器需要处理的数据或处理后的结果,可见内存是计算机处理器的工作空间。它是处理器运行的程序和数据必须驻留于其中的一个临时存储区域,是计算机十分重要的部件。 全文文件,信号等上下文,恢复实时任务的上下文。保存恢复上下文越快越好,这就要求两个进程的上下文共享的资源越少越好,如每个任务的内存内存 内存的正式叫法是内存储器,以此来与外存储器区分开。物理上它安装在计算机内部,通常安装在主板上,所以称为内存。它的作用是供暂时存储处理器需要处理的数据或处理后的结
13、果,可见内存是计算机处理器的工作空间。它是处理器运行的程序和数据必须驻留于其中的一个临时存储区域,是计算机十分重要的部件。 是独立的,甚至寄存器也是独立的,这样互不干扰,切换最快了。 3优先级。然而,为一个进程设定一个高优先级并不总能保证该进程能够抢占低优先级的进程。有时候,系统会出现一种称为优先级倒置(priority inversion)的状态,在这种状态下,低优先级的进程将在“无意中”阻止较高优先级进程占用CPU。优先级倒置可能会表现为几种形式,为了防止发生这种情况,RTOS必须提供一种称为优先级继承的功能。 假定系统有三个进程:A(低优先级),B(中等优先级),Z(高优先级)。这里Z是
14、一个为A和B提供服务的“服务器”进程。 现在假定A已经请求Z来执行一个计算,而在这期间,突然B需要Z的服务。因为B拥有比A更高的优先级,一般会认为Z将立即挂起A的请求并将转向为B服务。但是实际情况并非如此,因为Z比B具有更高的优先级。其结果是,B不能阻止Z完成它当前的工作,即对A做出响应。 从效果上看,低优先级的进程A占用了更高优先级进程B的CPU时间,这是引入优先级继承的原因。通过使用RTOS提供的优先级继承机制,系统可以在A发出请求的情况下,让Z继承A的低优先级。通过这种方式,B能够在任何时候抢占A的请求。 如果一个应用程序分布于几个通过网络连接的处理器,那么RTOS也应该支持分布式优先级
15、继承,这样可以按照优先级的顺序处理来自多个处理器的请求。如果没有优先级继承,一个多处理器系统可能会落入无限的优先级倒置和死锁中。 4缩短进程资源分配等待时间。对于一个多进程操作系统,很多资源是大家共享的,如果实时进程需要某个资源,发现那个资源被别的低优先级进程占用,非要等人家执行完才行,而此低优先级进程级别实在太低,其它的进程趁机抢占了CPUCPU 待添加的隐藏文字内容2CPU也称为中央处理器,是电子计算机的主要设备之一。其功能主要是解释计算机指令以及处理计算机软件中的数据。所谓的计算机的可编程性主要是指对CPU的编程。CPU是计算机中的核心配件,只有火柴盒那么大,几十张纸那么厚,但它却是一台
16、计算机的运算核心和控制核心。计算机中所有操作都由CPU负责读取指令,对指令译码并执行指令的核心部件。CPU、内部存储器和输入/输出设备是电子计算机的三大核心部件。 , 导致这个低优先级进程迟迟得不到执行,连累苦了我们的实时进程。这样就造成了优先级的反转, 解决优先级反转也有很多办法:主要有优先级继承与优先级极限两种, 原理都相同:此时迅速提高占有资源的低优先级进程的优先级,使其优先级至少与等待资源的实时进程相同。 5以空间换时间,减少资源的延迟分配。减少虚资源的分配, 要给就给实的,甚至可以预分配资源。通常进程创建时得到的内存都是虚的,适用malloc得到的资源也是虚拟内存,真正的内存只有当你
17、读些到这个页时才分配,先产生缺页中断,在缺页中断里调用物理页面分配函数,不过这需要一定的时间,硬实时任务是等不及的,所以开始不能跟他玩虚的,狠狠心,开始就把它需要的物理资源备好,所以如果需要寄存器就不要拿Cache敷衍,如果需要Cache就不要拿内存敷衍,如果需要内存就不要拿硬盘硬盘 电脑主要的存储媒介之一,由一个或者多个铝制或者玻璃制的碟片组成。 空间敷衍, 传统的以时间换空间的方法在这儿行不通的。在价格能够承受的情况下,尽量分配多级存贮系统的高速部分。 6. 尽量使操作系统简单,甚至定制。为了实时性,我们不得不牺牲他的其他功能,也减少用户易用性,如去掉图形界面部分,去掉虚拟内存管理,甚至去
18、掉多进程,专注于一个任务效率当然最高, 理论证明,如果有多个实时任务,要保证他们都不会 miss deadline, 流出来的缓冲时间至少要达到30%, 这里还没考虑到上下文切换时间,实际需要的缓冲时间更多。当前实时操作系统有DOS, Windows mobile, Windows CE, VxWorks, 各种实时LinuxLinux Linux是一套免费使用和自由传播的操作系统,它主要用于基于Intel系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的,其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。 , Qnux等。 我国我们的通
19、用操作系统要考虑到实时性,必须在其设计的时候考虑到可裁减性,可配置性,这样到实时场合下,可以很方便的抛弃一切不必要的负担,全身的投入到实时任务之中。而这不是一个简单的要求。7. 采用微内核(mricokernel)架构来提供更精确的故障隔离。像QNX Neutrino这样的操作系统都基于微内核架构。微内核有两个明确的特征: 1. 在操作系统内核中只实现了一个包含了基本OS服务的小内核(如信号量、定时器、任务调度等)。包括驱动程序、文件系统、协议栈和用户应用程序在内的所有其它的组件在内核外部分离的、保护内存的进程中运行。有问题的系统服务不再作为孤立的故障点,而是在它破坏其它服务或操作系统内核之前
20、被终止并重启。 2. 所有的组件能够通过消息传递进行通信,一个定义良好的通信机制保障了程序在保持彼此安全隔离的前提下进行数据交换。适当实现的消息传递也可以作为一个虚拟的“软件总线”,允许几乎任何的软件组件,甚至是一个设备驱动程序被动态地加入或替换,对于必须提供连续服务的系统而言这是一项关键要求。 和传统的操作系统架构相比,微内核支持嵌入式设备赢得明显更快的平均修复时间(MTTR)。例如,如果一个设备驱动程序失败将可能出现以下情况:操作系统可以终止该驱动程序,回收其正在使用的资源,并对其进行重新启动,这个过程通常这只需要几个毫秒时间。 三、小结计算机控制技术是一门跨学科以及应用性、技术性、综合性都很强的专业技术课程,要求具备较强的专业基础知识,同时,要求掌握计算机控制系统的控制原理和分析设计方法,具备基本的设计技能,能够设计出简单的计算机控制系统。所以我们我们不能只是明白或弄懂课本上的知识,我们要在弄懂课本知识的基础上,阅览计算机控制方面的课外读物开阔我们的知识面。四、参考文献: 1于海生.计算机控制技术M.机械工业出版社,20072王锦标 计算机控制技术M.清华大学出版社,20043许勇.计算机控制技术M. 机械工业出版社,20084顾德英.计算机控制技术与系统M. 北京邮电大学出版社,2009 5李伟 计算机控制系统M. 清华大学出版社,1998