软件故障注入方法及其仿真应用
谷振宇1, 王胜文2, 洪炳熔2, 乔永强3
(11 福建省高等学校招生委员会办公室计算机管理科, 福建福州 350003; 21 哈尔滨工业大学
计算机科学与技术学院, 黑龙江哈尔滨 150001; 31 航天时代电子公司研究院, 北京 100081)
摘要: 软件故障注入是一种评测系统可靠性的有效方法, 但是对目标系统的开放性要求比较高, 这给不能开放源码的待测系统的可靠性测试带来困难. 给出一种引入智能控制策略的软件故障注入方法, 在不开放系统源码的情况下, 可以对系统的可靠性进行评测, 通过仿真实验证明了该方法的有效性.
关键词: 可靠性系统; 评测; 智能控制; 软件故障注入
中图分类号: TP301 文献标识码: A
Abstract: Software fault injection (SFI) is one of the most important methods in dependability evaluation of reliability system. there are diffcults to some disable get source code system which needs reliability test ing. A kind of SFI with in telligent control strategy is proposed, this methed be used to reliablity evulation without source codes, Its efficiency is shown by a simulated examp le.
Key words: reliability system; evaluation; in telligent control; software fault injection
软件故障注入作为一种比较成熟的评测系统可靠性的关键技术, 以其对硬件无损伤、易实现、易移植等特点, 引起众多工程设计者和研究人员的重视. 软件故障注入是目前对可靠性系统中可靠性机制评测的有效方法[ 1 ] , 但是. 前提是被测系统必须对实验者开放[ 2 ]. 在某些保密领域, 开放系统是不允许的, 这使系统测试变得十分困难. 本文提出一种基于智能控制的故障注入实验方法, 它通过软件方法, 在系统中引入智能控制策略, 把故障注入系统内核嵌入到目标系统, 进行故障注入实验时由故障注入系统内核代替目标系统内核运行, 在不开放系统的情况下, 对目标系统的输出状态进行跟踪控制,获得比较好的实验效果.
1 软件故障注入
故障注入实验的目的是为了对容错系统所采用的容错机制进行测试和评估. 作为评测容错机制的
有效方法, 故障注入技术通过向目标系统中引入故障, 加速目标系统发生故障和失效的过程, 然后通
过对注入故障后的目标系统的监测, 获得目标系统存在故障时的运行情况, 与系统的声明进行比较, 从
而对目标系统容错机制的正确性和效率进行评估.
2. 1 控制策略
设S 是一个可靠性系统, S s 为无故障系统输出状态集合, S s = {S s1, S s2, ?, S si, ?}, i = 1, ?, n; S f 为
注入故障后系统输出状态集合, S f = {S f 1, S f 2, ?, S f i, ?}, i = 1, ?, n. 当选择的一种故障注入到系统
中并被激活时, 系统当前状态和没有注入故障系统当前输出状态就会产生不一致, 这种不一致就是故障系统行为表现, 这种变换称为系统输出状态集. 如果对系统输出状态做到实时跟踪, 便可以了解故障注入到目标系统后目
标系统的行为反映, 从而达到故障注入实验的目的. 无故障系统状态转换过程如图1.以一个故障注入系统为例, 故障注入后系统状态转换过程如图2.根据系统这种变化规律, 笔者在故障注入系统中引入控制策略. 控制策略的实现通过在目标系统中嵌入微内核, 微内核具有目标系统内核的基本功能, 当故障注入实验开始, 注入的故障被触发后, 激活嵌
入到目标系统的微内核, 由控制策略控制故障注入实验, 直到一次完整的故障注入实验结束, 控制权转回到目标系统.