软件可靠性仿真测试平台实时技术研究(3)

发表于:2015-01-04来源:uml.org.cn作者:刘东艳 申功勋点击数: 标签:
在优先级调度方式中,采用优先级浮动的原则:即根据系统实时处理任务的不同,按照需要动态地改变优先级。系统在正常运行时,优先级不变;当系统发

  在优先级调度方式中,采用优先级浮动的原则:即根据系统实时处理任务的不同,按照需要动态地改变优先级。系统在正常运行时,优先级不变;当系统发生严重故障时,调度模块动态触发异常处理任务,并根据故障类别和故障被维护的状况,动态调整模块处理级别。对于影响系统测试的重要模块,调度模块启动相应的备份储备模块,同时将“暂停测试”的申请通过网络发送到主控机。这样,系统就具有了故障恢复能力,实现了关键部分的冗余保护,提高了可靠性。

  根据上述设计,在实时测试过程中,仿真器的实时调度层次模型如图4所示。

  图4 RUN()模式下实时任务调度模型示意图

  基于以上的调度策略,任务调度管理模块采用以下方式对各模块进行调度:

  中断方式:当总的任务调度器监控到消息队列中最高消息到来时,立即申请软件中断,或者有硬件中断申请时,系统立即停止当前执行的任务,执行相应的中断处理。

  定时方式:实时测试开始后,定时器每25 ms发出定时消息,定时将需要发送的测试用例数据送到MBI卡上。

  消息方式:基于Win98消息传递机制,由线程调度方式实现。

  信号量及全局变量方式:总的任务调度器监控到任务启动的信号量或状态量改变后,按任务的等级运行任务。

  根据系统任务调度管理的方式,将任务消息的处理级别分为三个优先级:

  ①最高级消息:该类消息要求系统立即响应,具有此类优先级的模块在系统实时仿真中处于核心地位。该消息不放到Windows的系统消息队列中排队,而是直接送到相应的应用消息队列中,供应用程序处理。这样可以避免无节制的消息循环,保证了消息处理的及时性。

  ②时钟级消息:由精确定时器产生“定时时间到”的消息。在正常测试过程中,该消息为最高级别。时钟级的消息主要分配给在实时测试中的数据生成模块和驱动模块。

  ③普通级消息:该类消息主要分配给用户接口模块、记录模块等功能模块。

  2.2.4 仿真器关键功能模块的实时性实现技术

  ①网络通信模块:非实时部分采用TCP/IP协议方式进行网络传输。实时部分利用设置网络通信缓存区的方式,从通信结果上可以部分实现网络传输的实时通信,其关键在于缓冲的深度。或者采用VXD技术,直接对网卡进行传输操作,可以避免由于网络延迟而影响系统实时性能的缺陷。

  ②显示模块:在实时测试过程中,通过该模块,可以显示测试数据,并且用户能对测试过程进行控制。在实时测试中,中心任务处理周期为25 ms,在任务周期的空余时间还需要进行其它处理。因此在每25 ms周期内,留给显示任务的时间就非常少,另外由于人眼对数据变化的敏感程度低于25 ms,因此每50 ms以上进行一次相关数据显示就可以满足系统的需求。在数据显示中,文本显示比图形显示占用CPU处理时间要少许多。在图形显示中,采用高性能的图形处理算法,可以保证图形处理的实时性。另外,随着图形卡硬件性能的提高,在图形加速卡性能保证的情况下,系统只需计算图形描述语句占用CPU的时间,图形绘制方面的时间可以不给予主要考虑。图形实时显示算法还有待进一步研究。

  ③交联数据1553B驱动模块:由于Win98处于安全模式,Win98中的虚拟内存地址与实际物理地址并不一致,用户不易直接访问硬件的实际物理内存地址和I/O口地址。为了满足实时驱动MBI卡的需要,通过WinDriver工具软件,直接映射 MBI卡上的实际物理内存地址和I/O地址,并将硬件中断虚拟化,利用WinDriver生成的一系列读写内存和I/O口地址的函数,用户就可以直接快速地对硬件进行控制。实验结果表明,在Win98应用任务单一的情况下,用户操作MBI卡的速度同于在DOS下的速度。WinDriver工作原理如图5所示。

  图5 WinDriver工作原理图

  3 结束语

  本文以实时测试某航空软件可靠性为背景,介绍了仿真器在仿真测试平台中的作用。按照模块化和可扩充的设计思想,给出了仿真器功能结构组成;并且着重介绍了仿真器的任务调度管理模块的设计思想,针对具体任务和系统工作模式,提出了集成动态调度策略;对于优先+级的调度方式,采用了优先级浮动的原则。另外,给出了实时网络实现的方法,讨论了图形实时显示的可行性,利用WinDriver实现了在 Win98下对硬件MBI卡的直接驱动。实验结果表明,上述调度思想与相关技术综合运用,很好地满足了仿真器系统工作的实时性。

原文转自:http://www.uml.org.cn/Test/200903241.asp