- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
构件中非法除故障容错性检测方法研究
构件中非法除故障容错性检测方法研究
摘要:提出了通过向构件中关键位置注入故障的方式来判定构件的容错性能。实践表明,该方法将有效地检测构件的容错能力。
关键词:构件; 故障注入; 容错性检测
中图分类号:TP31文献标志码:A
文章编号:1001-3695(2008)05-1402-02
基于构件的方法使得大型软件系统的开发和维护变得更为简单,可以提高软件的复用性和软件开发效率[1]。但是,复用质量低下的软件构件则会起到相反的作用,尤其是在一些对系统可靠性要求较高的领域,如航空航天、工业控制等领域,容错性成为需要解决的首要问题。因为使用可靠性差的构件会带来灾难性的后果[2],有必要对构件的容错性能进行检测,从而保证构件系统的可靠性。
?? 检测构件容错性能的传统方法是通过观察构件系统的失效行为,进而分析错误记录来完成的。但是对一个高可靠系统而言,不可能等待太长的时间来获取有关的统计结果。因此,使用故障注入方法向系统的构件中注入故障,以获取构件现场信息进而分析其行为就显得十分必要。现存在很多故障注入方法,如按故障注入触发时间[3]可分为编译期间注入故障和运行期间注入故障两类;按故障注入触发方式[4]可分为定时(time-based) 触发、运行期间注入故障和负载(stress-based)触发三类。虽然有很多学者研究了各类故障注入方法[5~8],但是目前的故障注入方法仅仅是在程序执行过程中通过相对随意地修改寄存器的值来注入故障,而没有依据程序中常见的一些故障类型,所以在检测构件中是否存在特定故障类型方面存在不足。本文结合反汇编和故障注入的思想提出了一种检测构件中是否存在非法除故障的方法。
1故障注入基础??
1.1故障注入??
故障注入技术首次在国际上提出是在20世纪70年代,之后一直被工业界用来进行容错系统的设计和验证[9]。到了80年代中期,故障注入技术才作为系统中容错机制的实验评价方法开始被高校和科研部门采用。进入90年代之后,该技术引起了众多研究人员和工程设计者的重视,对故障注入的研究与应用也随之深入。故障注入方法包括硬件和软件实现的故障注入方法。本文中主要是采用软件实现的故障注入方法来检测构件的容错性。它根据某种故障模型通过修改存储器或寄存器内容来模拟软件故障的发生。软件实现的故障注入方法比较简单,通过修改特定寄存器中的数值来观察实验结果,能够很好地检测软件的容错性能。
??1.2故障注入技术原理??
软件故障注入方法是通过特定的程序对系统软件、硬件错误状态进行仿真[10]。主要是通过修改程序执行语句,增加、修改、删除数据或直接修改寄存器或存储器的内容来模拟硬件或软件故障的发生。
?ス收献⑷朐?理可用如图1所示的行为循环层次结构模型进行说明。图中作为实验过程的故障注入由四个步骤组成:选择故障模型、执行故障注入、监视系统行为、分析实验结果。其中,选择故障模型和分析实验结果是与实验者直接交互的过程,为离线行为;执行故障注入和监视系统行为与目标系统直接接口,为在线行为。一次完整的故障注入实验包括由实验者至选择故障模型、执行故障注入、运行工作负载的目标系统、监视系统行为和分析实验结果的整个循环过程。??
2构件容错性测试方法??
2.1研究的前提??
本文的研究前提有三个方面:a)在构件中很容易出现常见的导致异常情况的故障,包括内存泄漏故障、数组越界故障、非法计算故障等,而非法计算故障又是构件中特别常见的故障。因此本文将以非法计算故障中除数为零故障为例,讨论通过在除法运算前的某个位置注入除数零故障来检查构件对于除数为零故障的容错性能。b)假设对构件使用者来说源代码是不可见的。c)将二进制代码反汇编成汇编代码是能够实现的。
??2.2构件容错性测试原理??
由于构件的源代码是不可见的,为了检查构件对除数为零故障的容错性,可以考虑首先通过常用的反汇编工具,如W32Dasm、IDA等将构件的二进制代码反汇编成汇编代码;然后再结合上面提到的故障注入原理和故障注入触发方法来选择合适的时机在汇编代码中注入故障。根据要处理的问题和现有故障注入触发方法的分析,笔者选择运行期间并在除法事件发生前注入故障;故障注入的位置选择在除法运算前对除数做的最近一次数据传送指令处,在这个位置将除数值改为零,然后继续单步执行该程序并观察程序是否出现异常。如果出现异常,则说明该构件对除数为零故障这类故障的容错性较差。
??2.3构件容错性测试算法??
首先将二进制代码反汇编成汇编代码;之后开始汇编代码的静态分析,在分析的过程中确定注入故障的位置;接着单步执行该汇编代码,在执行到特定位置处注入故障;然后继续单步执
您可能关注的文档
最近下载
- 2026年山西老区职业技术学院单招职业技能考试必刷测试卷附答案.docx VIP
- 八年级英语人教版上册选词填空专项练习.docx VIP
- 2023年3月英语四级听力真题及原文.pdf VIP
- 2025至2030中国富硒农产品行业供需分析及投资风险报告.docx
- 2024年山西老区职业技术学院单招职业技能考试试题及答案.docx VIP
- 2023-2024学年 河北省 邢台市 信都区 校联考 七年级(上)期中 语文试卷(原卷版).docx VIP
- 入党志愿书表格(电子版空白表格).doc VIP
- 2025年山西水利职业技术学院单招职业技能测试题库审定版.docx VIP
- 新版七上英语说课课件人教版.pptx VIP
- 《稀土金属》课件.ppt VIP
原创力文档


文档评论(0)