面向增强软件可靠性的编译器研究和实现
发布时间:2020-08-26 21:22
【摘要】:在现代生活中,软件扮演着越来越重要的角色,保证软件的可靠性显得尤为重要。而在太空中,由于宇宙射线的强辐射作用,存储数据的寄存器或者内存中会发生单粒子翻转(Single Event Upset,SEU)的现象。这种0、1的跃变会导致存储的数据发生错误,从而引发软件发生错误。为了保证数据的正确性,减少单粒子翻转的影响,有基于硬件和软件的方法。基于的硬件的方法虽然能够很大程度的避免SEU,但是价格昂贵,通用性差。而通过软件容错(Software-basedFault Tolerance,SBFT)增强可靠性的方法虽然简单、通用性好,但是却会增加程序的复杂度,导致内存开销和时间开销增大。本文实现了一个增强软件可靠性的源源编译器,对查找程序中的关键变量分析研究,提出关键变量(Critical Data Model,CDM)的模型,设计并实现反转数据流图(Invert of Data Flow Graph,IDFG)算法,完成可靠代码编译器RECCOP(REliable Code Compiler Plus,RECCOP)。程序中数据的关键性程度主要有两个指标来衡量:1.数据的生存时间;2.数据经过反转数据流图的加权值。经过两个指标算出数据的重要性程度,排序后选出需要保护的关键数据,经过数据冗余技术,对数据进行冗余,增强软件的可靠性。通过源源编译器,直接将输入的C/C++源代码转换成可靠的C/C++代码。经过实验,经过关键变量模型可以有效的提高系统的可靠性,同时降低系统内存的开销和时间的开销,达到了设计预期。
【学位授予单位】:北京邮电大学
【学位级别】:硕士
【学位授予年份】:2018
【分类号】:TP311.5;TP314
【图文】:
逦7逦83.7%逡逑对部分数据进行冗余的错误注入实验的结果被列在图6-2中。逡逑FSV降低折线图逡逑0.B逡逑::逡逑0.2逡逑o逡逑0%逦IS%逦50%逦75%逦100%逡逑RECCO邋丨部分冗余)灥呡《?邋RECCO(CDM)逡逑图6-3邋FFT测试对比图逡逑对于随机数据冗余的可靠性实验,采用的benchmark程序是FFT程序,即逡逑45逡逑
我们多次运行表6-3中三个benchmark程序,并计算在不同的数据逡逑冗余比例下,相应程序的平均运行时间。然后将其和标准化的程序运行时间进逡逑行比较,相应的实验结果被展示在图6-2中。逡逑200.邋00%邋逦逦^||""|逡逑150.邋00%邋|逦 ̄W ̄邋—邋f:;j邋f逦0fib逡逑100.00%邋<逦i邋—邋U邋一逦absort逡逑j-ffT邋1逡逑50.00%邋I邋一邋II邋—W一邋y邋t逡逑ll邋r邋I逡逑Q邋QQ^逦__LassLM__LfeL,逦__&逡逑25%逦50%逦75%逦100%逡逑图6-4性能分析图逡逑在图6-4中,它显示了不同的数据冗余比率和性能开销之间的关系。图中逡逑的纵坐标代表的是程序的执行时间相对于源代码的增加的百分比时间。从图中逡逑我们可以看出来,程序的性能开销是和代码冗余的比例基本一致的。在冗余25%逡逑的变量时,程序有最小的性能开销,平均性能开销是67%。因为在本文的代码逡逑冗余中,一个原始变量,会有两个对应的影子变量。这两个影子变量在程序运逡逑行中始终通过读写一致性,来保证数据的一致性。所以尽管只冗余了邋25%的变逡逑量,程序的性能开销还是比较大的。从这一点可以看出,为了进行错误恢复,逡逑本文引入的两个影子变量
本文编号:2805713
【学位授予单位】:北京邮电大学
【学位级别】:硕士
【学位授予年份】:2018
【分类号】:TP311.5;TP314
【图文】:
逦7逦83.7%逡逑对部分数据进行冗余的错误注入实验的结果被列在图6-2中。逡逑FSV降低折线图逡逑0.B逡逑::逡逑0.2逡逑o逡逑0%逦IS%逦50%逦75%逦100%逡逑RECCO邋丨部分冗余)灥呡《?邋RECCO(CDM)逡逑图6-3邋FFT测试对比图逡逑对于随机数据冗余的可靠性实验,采用的benchmark程序是FFT程序,即逡逑45逡逑
我们多次运行表6-3中三个benchmark程序,并计算在不同的数据逡逑冗余比例下,相应程序的平均运行时间。然后将其和标准化的程序运行时间进逡逑行比较,相应的实验结果被展示在图6-2中。逡逑200.邋00%邋逦逦^||""|逡逑150.邋00%邋|逦 ̄W ̄邋—邋f:;j邋f逦0fib逡逑100.00%邋<逦i邋—邋U邋一逦absort逡逑j-ffT邋1逡逑50.00%邋I邋一邋II邋—W一邋y邋t逡逑ll邋r邋I逡逑Q邋QQ^逦__LassLM__LfeL,逦__&逡逑25%逦50%逦75%逦100%逡逑图6-4性能分析图逡逑在图6-4中,它显示了不同的数据冗余比率和性能开销之间的关系。图中逡逑的纵坐标代表的是程序的执行时间相对于源代码的增加的百分比时间。从图中逡逑我们可以看出来,程序的性能开销是和代码冗余的比例基本一致的。在冗余25%逡逑的变量时,程序有最小的性能开销,平均性能开销是67%。因为在本文的代码逡逑冗余中,一个原始变量,会有两个对应的影子变量。这两个影子变量在程序运逡逑行中始终通过读写一致性,来保证数据的一致性。所以尽管只冗余了邋25%的变逡逑量,程序的性能开销还是比较大的。从这一点可以看出,为了进行错误恢复,逡逑本文引入的两个影子变量
【参考文献】
相关硕士学位论文 前2条
1 龙恋;多核处理器存储资源管理建模与访存带宽管理优化[D];国防科学技术大学;2014年
2 李宗蕾;Fuzzing工具的设计与实现[D];北京邮电大学;2010年
本文编号:2805713
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/2805713.html