新闻中心

EEPW首页>测试测量>设计应用> 软件可靠性仿真测试平台实时技术研究

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

作者:北京航空航天大学第五研究室 刘东艳 申功勋 时间:2008-06-04 来源:测控技术 收藏

  按照所处的运行模式,将其任务划分为实时任务和非实时任务。

本文引用地址://m.amcfsurvey.com/article/83648.htm

  实时任务指在仿真测试过程中,需要在确定时间内完成的任务,包括:

  .命令控制(包括测试开始、工作模式切换、驱动通信接口、测试结束等);

  .与被测目标软件之间的实时交联数据驱动任务;

  .与主控机分系统之间的实时网络通信任务;

  .交联数据实时生成;

  .测试数据和测试结果数据的记录和显示;

  .测试结果数据的初步精度分析和状态逻辑验证。

  非实时任务指对于任务完成的时间没有严格约束的任务,包括:

  .用户通过界面进行的分系统参数和有关配置描述;

  .分系统初始化及用户指定分系统自检和维护;

  .测试数据的事后回放;

  .数据库操作。

  为系统任务调度管理的方便,根据任务的属性、等级和处理周期的不同,将实时任务划分为动态任务和静态任务,静态任务又包括长周期任务和短周期任务。

  动态任务指动态跟踪系统状态,根据实际运行状况,临时加入的任务,如实时自检任务、系统发生故障时动态加入的异常处理任务等。

  长周期任务指可以在多个时间标签内完成的任务,如有必要,这类任务可在时限还没有完成就终止。包括显示任务、记录任务、从数据库或数据文件中读取数据到内存的任务。

  短周期任务指对任务完成的时间有严格的限定,必须在一个时间标签内完成的任务,即在25 ms周期内,完成对目标软件的一次驱动,同时接收目标软件的对外输出。包括交联数据的生成、交联数据的1553B驱动、从主控机接收和向主控机发送测试数据信息包、应答信息包的网络通信任务等周期性的任务。

  上述各类任务在其生命周期内一般都包括创建、就绪、挂起、运行、取消和结束六种状态,其状态转换关系如图3所示,由总的任务调度控制器将各任务带入不同的状态。

   图3 任务状态转换关系示意图

2.2.3 仿真器调度模块的设计

  仿真器对于各类任务采用时间、事件以及数据驱动相结合的调度原则进行控制管理。为了提高系统的实时性和适应性,采用了动态和静态调度策略相结合、任务发生的周期和优先级相结合的调度方式。

  在调度框架中集中不同的调度策略。在运行模式下:系统测试工作正常,则对于周期性的实时任务采用静态生成的调度策略;在系统发生故障时,则采用临时的动态调度策略,它根据系统的运行状况,实时加入动态任务,并根据动态任务的级别,决定该任务是立即执行还是按顺序执行。随着故障的排除,取消该任务,系统重新恢复到先前的调度策略。

  仿真器根据任务运行占用时间的不同,以不同速率来调度不同模块,满足实时驱动的要求。采用优先级调度和分时调度相结合的方式:优先级调度方式即调度模块对于每一项任务都赋予了严格的优先级,按优先级的次序从高到低执行;分时调度方式是采用时间片轮转的方式来执行各个任务,这种调度方式多是在终止模式下采用(或在运行模式下,系统已经完成短周期的任务,还留有时间余量的情况下)。例如,对于1553B数据驱动和交联数据生成等短周期任务在每25 ms定时到时串行化执行,被赋予了较高优先级,而对于显示和记录数据等长周期任务分时执行或交叉执行,被赋予了较低优先级,以保证能正常驱动MBI卡。

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

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

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

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

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

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

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

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

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

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



评论


相关推荐

技术专区

关闭