学位论文 > 优秀研究生学位论文题录展示

基于GCC的复算容错编译技术研究与实现

作 者: 王发鸿
导 师: 周会平
学 校: 国防科学技术大学
专 业: 计算机技术
关键词: GCC 容错编译 冗余计算 软件容错
分类号: TP311.52
类 型: 硕士论文
年 份: 2010年
下 载: 42次
引 用: 0次
阅 读: 论文下载
 

内容摘要


在计算机系统中,由硬件的瞬时故障导致的异常行为,不仅降低了系统的可靠性,而且破坏了数据的完整性和有效性。尤其在星载计算机系统的运行过程中,电子器件因辐射效应引起的硬件瞬时故障是造成系统不稳定的重要因素。相关研究表明,使用抗辐照器件可以有效提高星载计算机的可靠性。但是由于目前抗辐照器件性能较低,功耗和造价相对较高,因此硬件容错技术在星载计算机系统当中的应用受到种种限制。比较而言,软件容错技术在星载计算机技术中的应用,不仅带来了高可靠性和稳定性,而且较硬件容错技术在性能、功耗、成本和灵活性上都拥有较大优势。容错编译技术是软件容错领域中较新的分支,它的基本原理是编译器复制程序指令,并将源指令与复制指令合并,之后在一定的同步点,编译器插入检测指令来检查源指令与复制指令的执行结果是否一致。与其他软件容错技术相比,尽管其实现技术较为复杂,但在冗余规模、性能和灵活性上都要优于其他技术。本文的主要工作是:(1)研究了当前软件容错技术的概念、模型、实现与验证技术,详细讨论了编译器级的软件容错技术的实现方法。(2)对开源编译器GCC进行了深入的分析与研究,并对其C语言前端和中间代码优化部分进行了深入探讨。(3)基于GCC的分析与讨论,并结合当前比较典型的容错编译算法,设计实现了一种基于GCC中间代码上的复算容错编译方法,并通过手工注入故障的方法对其进行了测试和验证。面向硬件故障的软件容错技术能够弥补COTS器件在可靠性上的不足,是实现高性能空间计算机的关键技术之一。作为软件容错技术中较新的分支,容错编译技术逐步被越来越多的人所接受。本文提出的在编译器中间代码上的复算容错编译技术,对于构建高效的容错编译器,在理论和实践上都具有一定的参考价值。

全文目录


摘要  9-10
ABSTRACT  10-11
第一章 绪论  11-15
  1.1 研究背景  11-13
  1.2 研究内容  13
  1.3 论文结构  13-15
第二章 面向硬件故障的软件容错技术  15-27
  2.1 容错算法中的基本概念与故障模型  15-16
  2.2 软件实现的控制流错误检测技术  16-19
    2.2.1 控制流概念描述  16
    2.2.2 控制流检测技术概述  16-17
    2.2.3 CFCSS 检测算法  17-18
    2.2.4 RSCFC 检测算法  18
    2.2.5 ECCFS 检测算法  18-19
  2.3 软件实现的数据流错误检测技术  19-23
    2.3.1 数据流错误概述  19-20
    2.3.2 面向硬件故障的软件复算技术  20-21
    2.3.3 复算容错编译技术  21-23
  2.4 错误恢复技术  23-24
    2.4.1 后向恢复技术  23
    2.4.2 前向恢复技术  23-24
  2.5 容错实现与验证技术  24-25
    2.5.1 容错实现技术  24
    2.5.2 容错验证技术  24-25
  2.6 本章小结  25-27
第三章 GCC 平台研究与分析  27-54
  3.1 GCC 总览  27-29
    3.1.1 GCC 的版本  27-28
    3.1.2 GCC 支持的语言及硬件平台  28-29
  3.2 GCC 使用简介  29-35
    3.2.1 GCC 的安装  29-32
    3.2.2 GCC 编译C 程序  32-33
    3.2.3 构建交叉编译器  33-35
  3.3 GCC 内部架构  35-44
    3.3.1 源码结构  35-38
    3.3.2 总体框架  38
    3.3.3 GCC 优化框架  38-41
    3.3.4 C 语言前端分析  41-44
  3.4 中间代码与控制流结构  44-53
    3.4.1 GENERIC  45
    3.4.2 GIMPLE  45-51
    3.4.3 RTL  51-52
    3.4.4 控制流结构  52-53
  3.5 本章小结  53-54
第四章 基于GCC 的复算容错编译技术  54-71
  4.1 算法概述  54-56
  4.2 总体设计方案  56-58
  4.3 数据流分析  58-60
  4.4 指令复制  60-64
  4.5 错误检测  64-68
    4.5.1 基本数据类型检测  64-65
    4.5.2 数组类型检测  65
    4.5.3 结构与联合类型检测  65-66
    4.5.4 指针类型检测  66-68
  4.6 更新控制流  68-69
  4.7 错误处理  69-70
  4.8 本章小结  70-71
第五章 故障注入实验  71-74
  5.1 实验条件  71-72
    5.1.1 实验设计  71
    5.1.2 测试环境搭建  71-72
  5.2 实验结果  72-73
  5.3 结论分析  73-74
结束语  74-75
致谢  75-76
参考文献  76-79
作者在学期间取得的学术成果  79-80
附录A GIMPLE 语法图  80-83

相似论文

  1. 面向高性能DSP Matrix向量化编译器的设计与实现,TP314
  2. 基于GCC的缓冲区溢出检测研究,TP393.08
  3. 基于GCC的ARCA3的编译器移植,TP368.1
  4. 基于蜜罐技术的网络攻击预警系统的研究与应用,TP393.08
  5. IMS系统中OSA-GW的研究与设计,TN919.8
  6. 飞控计算机的容错研究与设计,TP302.8
  7. 空间机器人软件容错技术研究,TP242
  8. 基于GCC抽象语法树文本的C源程序语义分析方法研究,TP311.11
  9. YHFT-DSP编译关键技术分析及实现,TP314
  10. 基于嵌入式多核平台的并行冗余线程容错技术研究,TP302.8
  11. GCC盒、D盒、JERE盒和JEGC盒在水稻中的功能分析,S511
  12. 基于GCC的C++静态分析器的开发,TP311.52
  13. VxWorks操作系统的重新编译和优化研究与实现,TP316.2
  14. 卫星地面站软件可靠性设计与测试技术研究与应用,TP311.52
  15. 面向星载计算机瞬时故障的软件控制流错误检测技术,TP311.52
  16. C++静态安全规则检查工具实现,TP312.1
  17. 光学相干断层扫描术在原发性开角型青光眼诊断中的应用价值,R775
  18. 嵌入式软件白盒测试中插桩技术的研究与应用,TP311.52
  19. 基于GNU工具链的ARM-MINIX嵌入式系统交叉编译环境的移植,TP316
  20. 基于GCC的中间代码优化技术研究,TP314

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机软件 > 程序设计、软件工程 > 软件工程 > 软件开发
© 2012 www.xueweilunwen.com