嵌入式软件可靠性测试平台仿真器分系统研究_刘东艳_第1页
嵌入式软件可靠性测试平台仿真器分系统研究_刘东艳_第2页
嵌入式软件可靠性测试平台仿真器分系统研究_刘东艳_第3页
嵌入式软件可靠性测试平台仿真器分系统研究_刘东艳_第4页
嵌入式软件可靠性测试平台仿真器分系统研究_刘东艳_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、 收稿日期 : 1999-04-30第一作者 女 25岁 博士生 100083 北京 嵌入式软件可靠性测试平台仿真器分系统研究1刘东艳 申功勋(北京航空航天大学 宇航学院 摘 要 研究了嵌入式软件可靠性测试平台中仿真器分系统的实现问题 . 首先介绍了软件可靠性仿真测试平台的功能及组成框架 , 然后以通用性和可扩展性为前 提 , 对实现仿真器分系统的关键技术进行了探讨 , 着重对任务调度功能的实现进行了 深入研究 , 提出了一种新的图型任务链的调度方法 . 实验结果表明 , 仿真器分系统的 这些实现方法具有较高的可靠性 、 易扩展性和实用性 .关键词 仿真 ; 软件 ; 可靠性 ; 调度策略 ;

2、 图型任务链 分类号 TP 311; TP 391. 1 随着计算机软件技术的发展和软件比重的增大 , 软件可靠性对整个系统可靠性的影响越来越 大 . Bell 实验室曾对一个 AT &T 运行支持系统作统计 , 发现 80%的失效与软件 有关 1, 尤其对于 航空类系统软件来说 , 软件故障是导致系统失败 的主要原因之一 . 如何构造具有通用性 , 可扩展性 的软件可靠性测试平台系统 , 以及对其中一些重 要功能的实现方法进行研究是非常有意义的 .采用模拟被测目标软件实际运行环境对软件 进行测试是目前国内外一致认为比较理想的软件 测试方法之一 . 合理设计目标软件可靠性的运行 环境

3、, 较为真实地模拟出被测软件的真实运行环 境 , 不但可以检测到目标软件的运行过程中存在 的故障 , 而且也可以保证测试结果的真实性和置 信度 .针对被测目标软件实时性和嵌入式的特征 , 本着通用性 、 易于扩展和开放性的设计思想 , 考虑 到单机系统平台没有足够的灵活性 、 可靠性和可 适应性的特点 , 以及在处理速度等方面的局限性 , 因此 , 采用分布式计算机系统结构 , 组成仿真测试 平台 , 实现对被测目标软件的实时自动化测试 .本文在介绍测试平台组成结构的基础上 , 重 点对其中的仿真器分系统实现过程中所涉及到的 关键技术问题进行了研究 .1 仿真测试平台系统结构及功能整个仿真测试

4、平台由主控机分系统 (简称主 控机 、 仿真器分系统 (简称仿真器 和激励器分系 统 (简称激励器 3个分系统组成 , 各分系统与目标软件的交联关系如图 1所示 .网络图 1仿真测试平台各分系统的交联关系图1553B 总线被测目 标软件仿真器 分系统激励器分系统主控机分系统在图 1中 , 主控机是测试平台的控制中心 , 它 负责生成原始测试数据 , 向仿真器 、 激励器分发测 试用例 , 协调两个分系统的工作 , 并根据测试状况 控制仿真器和激励器的工作模式 . 仿真器和激励 器将主控机传送过来的测试用例数据 , 生成真正 的目标软件可以接收的测试用例数据传送给目标 系统 , 同时 , 仿真器

5、和激励器负责将自身工作状态 信息和从目标系统得到的测试结果数据通过底层 网络实时或非实时地传送回主控机 .在上述各分系统中 , 主控机与目标软件是通 过仿真器形成实时闭环的 . 仿真器通过测试用例 , 实时给出目标软件闭环运行所需要的交联子系统 发出的命令和数据 , 使得目标软件能够在较为真 实的仿真任务剖面和交联环境中运行 . 因此 , 仿真 器的实现技术是整个平台系统设计的重点之一 .2 仿真器软硬件结构在仿真器设计中 , 除了插在仿真器计算机上1999年 12月 第 25卷 第 6期 北 京 航 空 航 天 大 学 学 报Journal of Beijing University of

6、Aeronautics and Astronautics December 1999Vol . 25 No . 6的网卡 (和主控机之间进行通讯 和 MBI 卡 (和目 标软件系统之间进行通讯 等硬件设备以外 , 仿真 器的各项功能均是通过软件来完成的 .仿真器软件是在非实时 、 多任务的 Win98操 作系统上实现的 . 因此 , 如何利用 Win98多任务并 发的特性 , 在系统任务周期内 , 按时完成各种任 务 , 并将多个任务协调一致 , 是整个软件设计过程 中主要应该解决的问题 .为了提高 平台系统的可靠 性和故障 恢复能 力 , 并对应于仿真器所要完成的任务功能 , 软件设 计中采

7、用了功能模块化的设计方法 . 各功能模块 之间相对独立 , 能够随时依据新技术对相应模块 的软件算法进行更新和扩充 , 而不影响系统的其 它功能 . 其中 , 管理调度模块是仿真器的核心 , 其 它各功能模块的运行都是在管理调度模块的统一 控制下 , 协调一致完成相应任务的 .3 仿真器软件实现技术3. 1 仿真器的任务调度设计3. 1. 1 任务划分仿真器是个实时任务系统 , 在实时测试过程 中 , 需要实时并发处理不同的任务 . 任务调度涉及 到 CPU 、 内存 、 网络 、 硬 盘 、 数据结 构 、 I /O 接口等 资源 , 合理调度各任务 , 正确分配其所占用的系统 资源 , 是

8、仿真器软件设计的关键之一 .按照仿真器完成的功能不同 , 将仿真器的任 务划分为实时任务和非实时任务 .实时任务指在仿真测试过程中 , 仿真器需要 在确定时间内完成的任务 , 包括 :与目标软件之间 的实时交联数据驱动任务 ; 与主控机之间的实时 网络通讯任务 ; 交联数据实时生成任务 ; 测试数据 和测试结果数据的记录和显示任务 ; 测试结果数 据的初步精度分析和状态逻辑验证等任务 . 非实时任务指对于任务完成的时间没有严格 约束的任务 , 包括 :用户通过界面进行的分系统参 数和有关配置描述任务 ; 分系统初始化及用户指 定分系统的自检及维护任务 ; 测试数据的事后回 放等任务 .在实时目

9、标软件测试过程中 , 为了便于系统 的任务调度 , 又将实时任务根据其属性 、 等级和处 理周期的不同 , 分为动态任务和静态任务 . 动态任务指根据系统实际运行状况 , 临时加 入的任务 , 如实时自检任务 , 系统发生故障时动态 加入的异常处理任务等 .长周期任 务指在多个时 间标签内完 成的任 务 , 如有必要 , 这类任务可在时限前没有完成时就 终止 . 包括显示任务 、 记录任务 、 从数据库或数据 文件中读取数据到内存的任务 .短周期任务指必须在一个最小处理周期 P min 内完成的任务 , 该类任务的完成对时间有严格的 限定 . 包括交联数据的生成 、 交联数据的 1553B 驱

10、 动 、 接收目标软件的输出 、 从主控机接收和向主控 机发送测试数据信息包 、 仿真器应答信息包的网 络通讯任务等周期性的任务 .上述各种 实时和非实时 任务一般都 包括创 建 、 就绪 、 挂起 、 运行 、 取消和结束 6种状态 , 各种 状态之间的转换关系如图 2所示 , 由总的任务调 度将各类任务带入不同的状态 .未进入任务队列任务执行完毕进入任务队列图 2任务的状态转换关系图信号到等信号3. 1. 2 任务调度的设计原则仿真器的任务调度涉及到上述各种类型的任 务 , 并且每个任务都必须根据目标软件运行的需 要 , 满足实时交联仿真的定时限制 . 所以 , 为保证 仿真器的实时性能

11、, 在任务调度的设计中采用如 下原则 :1 根据任务运行的占用时间 , 以不同速率调 度相应任务 , 满足实时驱动的要求 ;2 在系统正常测试的过程中 , 周期性的实时 任务采用静态调度策略 , 即静态产生的调度方案 ; 3 在系统发生意外事件和非周期任务时 , 采 用动态调度策略 , 它根据系统的运行状况 , 实时加 入动态任务 , 并根据动态任务的级别 , 决定该任务 立即执行或者按顺序执行 , 并随着任务的消失 , 系 统重新恢复到先前的调度策略 ;4 在动态 、 静态调度策略 中 , 采用优先级调 度和分时调度相结合的方式 :优先级调度方式就 是对于每项任务都赋予了严格的优先级 , 按

12、照优 先级的次序从高到低执行 ; 分时调度方式是采用 时间片轮转的方式并行执行各个任务 ;5 在优先级调度方式中 , 采用优先级浮动的 ,740北 京 航 空 航 天 大 学 学 报 1999年态地改变优先级 . 3. 1. 3 一种图型任务链的调度方法1 图型任务链的构成按照上述调度原则 , 提出了图型任务链方法 , 实现对各类任务的调度 . 图型任务链是根据任务 模块的重要程度 , 执行的先后顺序和并发顺序而 生成的 . 设仿真器的任务集合为 T 1, T 2, , T n , 则任务链的调度模型如图 3所示 .·长周期任务或事件性任务等3短周期任务211m m +2m +1nm

13、 +iB i 为短期任务 T i 的冗余备份 , i =1, , m ,等待点 2是动态加入的点 , 等待点 1, 3是任务链中本来就有的点图 3 图型任务链的调度模型图在图 3中 , 任务链中的各任务节点是仿真器 所要完成的任务 . 任务链中的等待点所起的作用 是 , 进行后继任务节点执行任务的时间长度与最 小任务周期 P m in 的剩余时间进行判断 , 以此确定 将执行的任务节点 .任务链的每个任务节点带有对应的结构 , 来 描述相应任务的时间及其它特征属性 .任务链节点的结构如下 :任务的启动时限 Start Time ; 任务级别 Priority ; 任务周期 Period ;任务

14、被执行的时间长度 Length ; 任务结束时限 End Time ; 任务的前任务节点 Front Node ; 任务的后任务节点 Back Node ; 任务被执行的权值 Weight ; 任务的状态 State ;任务存在冗余备份模块的标志 Fla g Redundance ; 仿真器中的常规任务均包含在静态生成的任 务链中 , 在实时测试的一个最小处理周期 P min 中 , 任务链上的所有任务节点并不能全部激活运行 . 并且 , 任务链中的节点数目和顺序可以改变 . 在图 3中 , 沿任务链轴安排的 , 仅仅带有冗余备份模块 T i , P min 内必须完成的任务 , 而其余任务是

15、利用操作 系统的多任务特性可以并发执行的任务 .2 图型任务链的调度过程 通过时间 、 事件 、 消息或数据来启动相应 任务 . 在实时测试过程中的每一个最小处理周 期 P min 内 , 首先 , 短周期任务 T i (i =1, , m 根据 先后顺序串行化完成 , 被赋予了较高的优先等级 . 在短周期任务即系统关键任务完成后 , 在等待点 统实时处理的可靠性角度出发确定的 时 , 根据剩 余任务的所有可能被 执行的任务节 点的执行时 T i (m +1 i n 按时间进行合理分配 , 分时或同 时带入运行状态 . 在最小处理周期 P min 结束时 , 对于没有完 全执行完毕的任务模块

16、, 将其执行的情况记录到 任务节点的记录表中 , 并按照需要将任务模块带 入挂起 、 取消或结束状态 (见图 2 . 在处理短周期任务的模块发生故障时 , 任 务链自动执行相应备份任务节点 B i (1 i m , 并将发生故障的任务转入取消状态 (图 2 , 对应 的任务节点 T i (1 i m 也从任务链中排除 . 对于极 其重要 的动态 任务 , 依据 任务级 别 , 将此动态任务节点插入到任务链目前正在执 行的任务节点的前置节点位置上 , 或者插入到目 前任务节点的后续节点位置上 , 并在该任务节点 后加入等待点 . 在动态任务消失后 , 重新恢复到先 前结构任务链的调度方式上 .动

17、态任务插入算法描述如下 .I F (动态任务级别 >当前被执行的任务 T i 级 别 &&要求打断当前任务 挂起当前任务 , 记录当前任务的执行状态 ; 执行动态任务 ;加入等待点 ; ELSE 根据动态任务级别插入到后续任务链的相应节点 上 ;加入等待点 ;动态调整后续任务节点的优先级和顺序 ; 741第 6期 刘东艳等 :嵌入式软件可靠性测试平台 仿真器分系统研究1 网络通讯模块非实时部分采用 TCP /IP 协议方式进行网络 传输 . 实时部分利用设置网络通讯缓存区的方式 , 从通讯结果上可以部 分实现网络传 输的实时通 讯 , 其关键在于缓冲的深度 . 或者采用

18、VXD 技术 , 直接对网卡进行传输操作 , 避免由于网络延迟而 影响系统实时性能的缺陷 .2 显示模块在实时测试过程中 , 通过该模块显示测试数 据 , 并且用户能对测试过程进行控制 . 其中 , 中心 任务处理周期为 25ms , 在任务周期的空余时间还 需要进行其它相关处理 . 因此在每 25ms 周期内 , 留给显示任务的时间就非常少 , 另外由于人眼对 数据变化的敏感程度远远低于 40帧 /s , 因此每 50 ms 以上进行一次相关数据显示就可以满足系统 的需求 . 在数据显示中 , 文本显示比图形显示占用 CPU 处理时间要少许多 . 在图形显示中 , 采用高性 能的图形处理算法

19、 , 能够保证图形处理的实时性 . 另外 , 在图形加速卡的硬件性能保证的情况下 , 系 统只需计算图形描述语句所占用 CPU 的时间 , 用 于图形绘制的时间可以不考虑 .3 交联数据 1553B 驱动模块该模块主要完成 交联命令数据 的 MBI 卡的 驱动工作 . 由于 Win98处于安全模式 , Win98中的 虚拟内存地址与实际物理地址并不一致 , 用户不 容易直接访问到硬件的实际物理内存地址和 I /O 口地址 . 为了满足实时 驱动 MBI 卡的需 要 , 在该 模块设计中 , 通过 WinDriver 工具 软件 , 直接映射 MBI 卡的实际物理内存地址和 I /O 地址 ,

20、并将硬 件中断虚拟化 , 利用 WinDriver 生成的一系列读写 内存和 I /O 口地址的函数 , 就可以直接快速地对 MBI 卡进行控制 . WinDriver 工作原理如图 4所示 .图 4 WinDriver 工作原理图用户硬件驱动层用户层硬件驱动代码WinDriver 驱动4 结 论本文以实时测试某航空软件可靠性为背景 , 介绍了仿真器在仿真测试平台中的作用 , 按照模 块化和可扩充的设计思想 , 给出了仿真器软硬件 结构组成 ; 并且着重介绍了仿真器的任务调度的 设计原则 , 提出了一种图型任务链的调度方法 , 该 方法不仅仅适用于单机任务调度 , 而且对于分布 式系统动态任务

21、分配也有一定的工程意义 . 另外 , 给出了实时网络实现的方法 , 讨论了图形实时显 示的可行性 , 实现了 Win98下直接驱动硬件 MBI 卡 . 实践表明 , 上述方法的综合运用 , 很好地满足 了仿真器分系统工作的实时性 .参 考 文 献1 蔡开元 . 软件可靠性工程基础 . 北京 :清华大学出版社 , 1995 2 Xu J , David L P . Schedul ing process es with release times , deadlines , precedence , and exclusion relations . IEEE Trans on s oft wa

22、re engi -neer , 1990, 16(3 :3603693 唐荣锡 . 计算机图形学教程 . 北京 :科学出版社 , 19944 袁有光 . 实时系统中的 可靠性技 术 . 北京 :清华 大学出版 社 , 广西 :科学技术出版社 , 1995Study on Simu lation Computer System in SoftwareReliability Testin g PlatformLiu Dongyan Shen Gongxun(Beijing University of Aeronautics and Astronautics , School of As tronautics Abstract Th

温馨提示

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

评论

0/150

提交评论