QNX系统的实时性分析-实时性能测试标准

来源:互联网 发布:java云计算框架 编辑:程序博客网 时间:2024/05/21 07:54




锋影

e-mail:174176320@qq.com



QNX的优势在于过了车规级ASIL-D, 符合ISO-26262的标准,分布式操作系统。

其在汽车领域和轨道交通领域大有应用,其系统兼容POSIX接口,类似于linux。

当然,其实时性能分析在经过实际测试中,符合汽车领域要求。


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



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

 20 
2.2 时间延迟 
对于中断处理所消耗的时间即时间延迟是衡量系统实时性的重要指标,时间延迟指从一个事件发生到程序中负责响应该事件的代码实际开始运行所需要的时间。在QNX系统中中断处理中时间延迟主要包括中断延迟和调度延迟。这两种延迟与QNX的中断处理方式有关系统,在QNX系统中依据返回情况,可将中断处理方式分为两类,一类是单纯的返回,如图2,另一类是在返回的同时触发一个代理,如图3。 
 
 
中断出现
中断处理程序进入运行
中断处理程序运行结束
被中断进程继续运行
时间
TilTintTiret
 
图2 单纯返回型中断处理方式 
 
中断出现
中断处理程序进入运行
中断处理程序运行结束,触发一个代理
驱动程序进程运行
Til
Tint
Tisl
时间
 
图3 触发代理型中断处理方式 
 
图中Til为中断延迟,Tint为中断处理时间,Tiret 为中断结束时间,Tsl为调度延迟。  
中断延迟时间Til是指系统确认中断开始直到执行中断服务程序的第一条指令为止整个处理过程所需要的时间。实时操作系统的中断延迟时间由下列三个因素决定: 
1) 处理器硬件电路的延迟时间,通常这个时间可以忽略。 
2) 实时操作系统处理中断并将控制权转移给相关处理程序所需要的时间。 
3) 实时操作系统的中断禁止时间。当系统运行在核心态或执行某些系统调用的时候,是
不会因为外部中断的到来而中断执行的。只有当系统重新回到用户态时才响应外部中断请求,这一过程所需的最大时间就是中断禁止时间。QNX对这些特别关键的代码也需要对中断实行暂时的屏蔽,这一屏蔽的时间延时很小,可以忽略。 
调度延迟Ts1是从中断处理程序结束时起到一个驱动程序进程的第一条指令开始运行之间这一段时间。大多数中断处理结束时并不触发代理。在很多情况下,仅用中断处理程序就足以解决所有问题,所以仅在出现最大事件时才需要触发有关代理来调度更高一级的驱动程序进程。 
QNX系统的这两种延迟指标见下表1: 
表1 QNX的延迟指标 
中断延迟 
调度延迟 
时间 处理器 时间 处理器 3.3微秒 166MHz Pentium 4.7微秒 166MHz Pentium 4.4微秒 
100MHz Pentium 
6.7微秒 
100MHz Pentium 

QNX系统提供的适应式调度法为计算密集型的进程提供对CPU更有效的利用,同时还保持了对其他进程的快速响应能力。不过在系统设计中应注意同优先级的任务数量不宜太多,因为这样终归会影响系统的实时响应时间。 
 
4 上下文切换 
作为实时性的两个主要指标的上下文切换和中断延时,在QNX中操作系统中,其时间指标都在微秒一级。如:  
处理器 
速度(MHz) 
上下文切换(微妙) 
7400G4 PowerPC 460 0.6 R527X MIPS 166 2.3 SH-4 
200 1.9 SA-1110 String ARM 
207 
1.8 
 
在QNX系统中,时间驱动方式是由计时器实现,计时器可以实现绝对时间和相对时间驱动。系统的延时可以实现毫秒级的运行暂停功能。计时器的最小走时间隔为500微秒。  
5 结论 
QNX操作系统对实时应用是理想的,它提供一个实时系统所需要的一切基本要素:多任务、由优先级驱动的急者优先式调度方式、适应式调度法和快速上下文切换。在保持全部真正微内核设计的固有优点的同时,QNX比传统内核结构更迅速发布系统服务。因此,开发者使用QNX可以开发出优于昂贵的高档系统的性能的低成本的产品。








锋影

e-mail:174176320@qq.com


原创粉丝点击