05 QNX的实时性分析_第1页
05 QNX的实时性分析_第2页
05 QNX的实时性分析_第3页
05 QNX的实时性分析_第4页
05 QNX的实时性分析_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

QNX的实时性分析王立志1梁华2郝志海2(1山东电力高等专科学校,济南2500022河北电力研究院,石家庄,050021)摘要分散控制系统中现场控制站的软件设计是基于实时操作系统的。本文从微内核、任务调度、中断处理和上下文切换四个方面分析了QNX的实时性,并给出了相关的技术指标,说明了QNX为现场控制站软件的开发提供了良好的操作系统平台。关键词QNX嵌入式实时操作系统0引言实时操作系统主要用于计算机实时控制。在分散控制系统中,现场控制站担负着系统的数据采集、实时运算和网络通信等功能,其软件的开发是基于实时操作系统平台的,因此,选择一个良好的操作系统平台对于分散控制系统(DCS)的开发具有至关重要的意义。QNX作为一种分布式嵌入式实时操作系统,在国产DCS开发中受到广泛青睐,山东鲁能控制公司的LN2000、北京和利时自动化工程公司的Hollysys等都使用了QNX操作系统,并取得了良好的应用效果。实时操作系统概念有关实时系统的定义在C.M.Krishna著《实时系统》[1一书中给出了一个广义的定义:能够及时地对外部事件响应的计算机系统称为实时系统。这个定义强调了系统对于外部事件的响应能力是判定实时系统的关键,如果再加上系统对指定任务执行的能力,就可以比较全面地考察一个系统的实时性。所以可以这样认为:实时性是指系统在限定的时间内完成所给定的功能并对外部异步事件做出响应的能力。实时系统中有不同的任务,在实时操作系统中,不同的任务有不同的驱动方式。实时任务总是由于某事件的发生或条件满足而激活,所以实时任务又可分为时间驱动和事件驱动。时间驱动有两种:绝对时间驱动和相对时间驱动。绝对时间驱动是指在某个指定时刻执行的任务,可以使用计算机内部时钟,有时需要进行卫星对时或系统间对时。相对时间驱动是指周期性执行的任务。一般可用计算机内部时钟或软时钟计时触发。事件驱动有两种:内部事件和外部事件。内部事件驱动是指某一程序运行的结果导致另一任务的启动,一般属于同步任务范畴。外部事件驱动是指工业现场状态发生变化或出现异常,立即请求CPU处理,一般属于异步事件,是最典型的实时任务,也是衡量系统实时性的最重要的指标。

实时操作系统中也包含一些无实时性要求的任务,如系统初始化工作,只是在系统启动时执行一次即可。实时任务<非实时任务「实时任务<非实时任务「内部事件事件驱动<外部事件

「绝对时间驱动

相对时间驱动图1任务及其驱动方式实时操作系统除具有通用操作系统的特性和功能外,其主要特点就是实时性强。系统的实时性除了由硬件质量作为基本保证外,主要由实时操作系统内部的事件驱动方式和任务调度方式来决定。衡量实时操作系统实时性能强弱的指标是系统执行完规定的功能和响应外部异步事件所需时间的长短。所以,对于QNX系统的实时性分析,主要从系统的两个方面进行:中断处理方式(即外部事件驱动方式)和任务调度方式。对于时间驱动方式和内部时事件驱动方式作简要介绍。QNX简介在智能化设备、仪器仪表的应用场合,出于对产品体积、成本等因素的考虑,往往要求将计算机控制部分安装于设备内部且占用空间尽可能的小。在这种情况下,处理器一般没有多少可用的内存,更没有可用的外存,而操作系统就装在这有限的内存中(一般在ROM中),这种系统人们称之为嵌入式系统。嵌入式系统是智能化设备、仪器仪表的灵魂。QNX是由加拿大QSSL公司开发的一种分布式嵌入式实时操作系统,能够广泛应用于嵌入式系统领域,实现实时控制。实时操作系统本身的设计水平直接影响到系统的实时性能。因此,操作系统必须是高效率的,系统本身的开销应尽可能小,进程调度、进程间通信、中断处理等系统公用程序应精练而有效,它们造成的延迟应尽可能地短,使同样的硬件配臵能满足更强的实时性要求,为应用的开发留下更大的余地。中断处理中断是计算机硬件与操作系统之间的纽带,中断处理是实时操作系统的基础。中断控制器将与计算机有关的外部事件信号发送给CPU,使CPU正在执行的程序中断而优先响应外部事件的请求,即实时请求。系统实时性的强弱与中断响应时间密切相关。2.1优先级抢占是否按优先级抢占CPU是衡量操作系统实时性的重要特征。所谓优先级抢占CPU是指当中断发生时,若中断优先级是当前最高级,才能立即得到响应,这时的响应时间即为最小响应时间,若中断请求发生时还有更高优先级中断处理正在执行,甚至还有较高级中断请求在排队等待处理,则该中断请求得不到及时响应。QNX系统允许为硬件中断分配优先级,因此也允许更高优先级的中断抢占CPU,即当较低级的中断处理程序正在执行时,更高级的中断发出中断请求,CPU将转向更高级的中断处理程序,直至高级中断的处理执行完,再返回来执行当前的程序。在分析低优先级中断处理所需的处理时间时,还应将所有较高级中断处理所用的时间考虑进去。

时间延迟对于中断处理所消耗的时间即时间延迟是衡量系统实时性的重要指标,时间延迟指从一个事件发生到程序中负责响应该事件的代码实际开始运行所需要的时间。在QNX系统中中断处理中时间延迟主要包括中断延迟和调度延迟。这两种延迟与QNX的中断处理方式有关系统,在QNX系统中依据返回情况,可将中断处理方式分为两类,一类是单纯的返回,如图2,另一类是在返回的同时触发一个代理,如图3。中断出现中断处理程序进入运行中断处理程序运行结束被中断进程继续运行时间中断出现中断处理程序进入运行中断处理程序运行结束被中断进程继续运行时间TilTintTiret图2单纯返回型中断处理方式中断出现中断处理程序进入运行中断处理程序

运行结束,

触发一个代理驱动程序进程运行时间T中断出现中断处理程序进入运行中断处理程序

运行结束,

触发一个代理驱动程序进程运行时间TilTintTisl图3触发代理型中断处理方式图中Til为中断延迟,Tint为中断处理时间,Tiret为中断结束时间,Tsl为调度延迟。中断延迟时间Til是指系统确认中断开始直到执行中断服务程序的第一条指令为止整个处理过程所需要的时间。实时操作系统的中断延迟时间由下列三个因素决定:处理器硬件电路的延迟时间,通常这个时间可以忽略。实时操作系统处理中断并将控制权转移给相关处理程序所需要的时间。实时操作系统的中断禁止时间。当系统运行在核心态或执行某些系统调用的时候,是不会因为外部中断的到来而中断执行的。只有当系统重新回到用户态时才响应外部中断请求,这一过程所需的最大时间就是中断禁止时间。QNX对这些特别关键的代码也需要对中断实行暂时的屏蔽,这一屏蔽的时间延时很小,可以忽略。调度延迟Ts1是从中断处理程序结束时起到一个驱动程序进程的第一条指令开始运行之间这一段时间。大多数中断处理结束时并不触发代理。在很多情况下,仅用中断处理程序就足以解决所有问题,所以仅在出现最大事件时才需要触发有关代理来调度更高一级的驱动程序进程。QNX系统的这两种延迟指标见下表1:表1QNX的延迟指标中断延迟调度延迟时间处理器时间处理器3.3微秒166MHzPentium4.7微秒166MHzPentium4.4微秒100MHzPentium6.7微秒100MHzPentium5.6微秒100MHz486DX11.1微秒100MHz486DX22.5微秒33MHz386EX74.2微秒33MHz386EX实时系统应尽量减少中断延迟响应,其主要方法是可提高CPU速率,合理安排外部事件的中断优先级,优化各级中断处理程序,尤其是优先级高的中断处理程序。任务调度实时操作系统都是多任务系统。中断处理程序虽然能及时把现场信息取回来,但对信息的分析处理、依据处理结果所采取的对现场的应答与控制工作,一般由中断任务来完成。一个外部事件的发生往往会引起一系列同步任务的执行,系统中还有许多由时间驱动的任务。这就需要进行任务调度,其作用是决定如何把CPU资源分配给执行中的各个任务。每个就绪的进程都在某个队列中排队,等待使用CPU。用什么样的策略决定哪个就绪的进程使用CPU,以及正使用CPU的进程什么情况下放弃使用CPU,是任务调度的关键问题。任务调度方式由任务调度算法实现,是决定系统实时性能的重要环节。这里需要解释两个概念的关系:任务是指一个程序分段,这个分段被操作系统当作一个基本单元来调度,任务是系统运行前已经设计好的。进程是指任务在作业环境中的一次运行过程。可以把任务和进程同等看待,认为进程是一个动态过程,即执行任务的动态过程。在本文中对这两个概念不作严格的区分。在UNIX分时操作系统中,每个进程都有一个优先级,优先级高的进程先使用CPU,调度程序用一个算法来计算正在执行的进程的优先级,对于使用过大量CPU时间的进程则降低它们的优先级,对于等待时间长的进程则升高它们的优先级。进程自己只能通过系统调用改变自己的优先级,而没有其他控制进程先后执行的手段。因此,分时系统不能保证在限定的时间完成指定的功能。在QNX实时操作系统中,提供了控制进程执行的手段,使用户能够设定和改变进程的优先级,并让用户能够选择进程调度算法。进程的优先级大小为1(最低)到31(最高),调度程序在选择下一个运行进程时,将检查每个处于就绪状态的进程的优先级,具有高优先级的进程将首先被执行。QNX基本的任务调度算法使用的是按优先级抢占的调度方法。这种方法保证在任何时刻都是优先级最高的任务占用CPU时间。优先级最高的任务可以中断当前运行的任务-哪怕它是中断任务-而抢占CPU,这种方法用于工业实时性要求高的场合。而不是采用优先级加轮询的调度方法和非抢占式优先级调度的方法。在基本调度算法的基础上,对于当两个或更多个具有同样优先级的进程同时处于就绪态并且都是当前就绪队伍中优先级最高的任务时,QNX提供了三种调度方法来解决这个问题。先入先出调度法:先进入任务队列的进程被选择运行,直到它自动放弃运行或者被一个级别更高的进程打断运行。循环式调度法:先进入任务队列的进程被选择运行,直到它自动放弃运行或者被一个级别更高的进程打断运行或者它用完了自己的时间片。一个时间片是50ms,是系统分配给每个进程用于运行的时间单位。适应式调度法:在这种调度法中,一个进程的优先级会在运行中发生变化:如果该进程用完了自己的时间片仍未被阻塞,进程的优先级将被减1,称为优先级衰退,系统中一个进程只能降低一次优先级。如果该进程被阻塞,则将立即恢复为原来的优先级。QNX系统提供的适应式调度法为计算密集型的进程提供对CPU更有效的利用,同时还保持了对其他进程的快速响应能力。不过在系统设计中应注意同优先级的任务数量不宜太多,因为这样终归会影响系统的实时响应时间。上下文切换作为实时性的两个主要指标的上下文切换和中断延时,在QNX中操作系统中,其时间指标都在微秒一级。如:处理器速度(MHz)上下文切换(微妙)7400G4PowerPC4600.6R527XMIPS1662.3SH-42001.9SA-1110StringARM2071.8在QNX系统中,时间驱动方式是由计时器实现,计时器可以实现绝对时间和相对时间驱动。系统的延时可以实现毫秒级的运行暂停功能。计时器的最小走时间隔为500微秒。结论QNX操作系统对实时应用是理想的,它提供一个实时系统所需要的一切基本要素:多任务、由优先级驱动的急者优先式

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论