仪表软件可靠性自动测试,软件可靠性仿真测试平台实时 - 可靠性分析 - 电子发烧友网...

2.2.3 仿真器调度模块的设计

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

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

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

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

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

bfcffb7978bdd24386b096dedf504db8.png

图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所示。

246e9b5c6b327110273480783eac292b.png

图5 WinDriver工作原理图

3 结束语

实验结果表明,上述调度思想与相关技术综合运用,很好地满足了仿真器系统工作的实时性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值