多线程程序中关联变量原子性验证关键技术研究

来源 :哈尔滨工业大学 | 被引量 : 0次 | 上传用户:yjc0208
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
多线程程序中关联变量的原子性是指在共享内存的并行模型中,保证具有一定关联关系的共享变量集合,在任意的并行执行顺序访问条件下,其所满足的关联关系仍然成立的一种性质。该性质是多线程程序设计过程必须满足的约束之一,是保证多线程程序安全性的核心因素,是并行程序安全运行的重要前提。同时,随着多核硬件环境的日益普及,越来越多的软件通过并行化充分利用已有的计算资源以提高软件系统的性能,尤其在航天、武器和医疗等安全攸关领域有着广泛的应用。因此,验证并行程序中关联变量原子性的研究对保障并行程序的质量安全具有重要意义。本文主要对验证条件和验证过程所涉及的关键技术进行研究,首先研究验证条件的确定问题即确认验证目标,本文主要是要确定保持原子性的关联变量集合,重点解决原子性关联变量和一般关联变量混淆的问题。其次,研究如何判断程序是否满足验证条件即验证过程的问题,本文采取根据程序可达状态来进行判断的策略,先从决定程序可达状态的控制依赖和数据依赖角度出发,分别研究了面向变量访问次序判别的图可达性问题和指针别名分析问题,然后在此基础上研究了可达状态约策略问题。在图可达性问题中,具体解决非树边传递闭包计算问题、环子图查询和非结构化区域解析问题。在别名分析问题中,具体解决按需策略下分析精度不足的问题。在可达状态约简策略问题中,重点改善了并行程序可达状态粒度过粗导致约简效率低的问题,提出了并行干扰插值结构和基于此的并行程序符号执行算法,重点提高可达程序状态间通过蕴含关系合并的可能性并完善轮询语句完备性分析,进而实现对多线程程序原子性的高效验证。首先,对于关联变量提取问题,在验证条件中的关联变量挖掘与提取方面,针对现有面向原子性验证的关联变量提取方法误报率高的问题,提出了基于程序依赖图约简的关联变量挖掘与提取算法。通过简化程序控制依赖图中控制流图信息来泛化变量间非依赖性顺序的关联关系,然后利用频繁子图挖掘算法挖掘关联变量候选集合,最终通过过滤策略提取需要保持原子性的关联变量集合。实验中经人工确认,与现有基于频繁项挖掘的提取方法相比,该方法具有更低的关联变量误报率。然后,在验证阶段的控制流图可达性判断研究方面:(1)对于一般图可达性分析,针对一般图可达性算法缺少对程序控制流图中非树边和循环体内有向环子图的优化与处理问题,提出了一种层次线性化编码索引模式,利用控制流图中区域结构所隐含的层次顺序关系,建立表达多重从属关系的可达性索引。该编码不仅能够避免计算有向图非生成树边的可达性传递闭包,而且整合了程序控制流图中有向环子图的编码与图可达性判断,进而提高可达性判断效率。(2)对于指针别名分析问题,针对当前程序控制流图结构化方法难以满足程序分析的流敏感精度要求的问题,提出了程序控制流图的虚拟区域结构。通过分析匹配分支节点列表和结构化区域的对应关系,提出了一种非结构化区域内虚拟区域的构造方法,该方法根据未匹配分支节点列表冲突来增加虚拟汇聚结点,进而构造非结构化区域内虚拟区域。该方法不仅能够恢复非结构区域内隐含的区域结构,而且还保留了非结构化区域中原有各语句间的相对位置关系,提高了结构化方法的流敏感分析精度。其次,在验证阶段的指针别名分析方面,针对当前基于上下文无关文法的按需别名分析方法只具有流不敏感精度的问题,提出了流敏感精度的按需别名分析算法,将别名关系查询问题统一转换为对特定变量赋值实例在控制流可达条件下赋值路径的搜索问题,以实现流敏感的按需别名分析。实验表明,与流不敏感的按需别名分析相比,该方法可以在保证查询效率的前提下,有效提高按需别名分析的精度。最后,在并行程序可达状态计算方面,针对当前基于干扰的有界模型检测中限制搜索踪迹长度导致的不完备性问题和严重的计算负担问题,提出了面向多线程程序原子性验证的符号执行方法,该方法以约束逻辑程序为实现基础,利用并行干扰插值结构对多线程程序可达状态空间进行搜索。该结构对全局线程间调度进行过估计(Over-Approximate)、局部线程内不可行踪迹泛化、并行可达状态泛化三个层次递进的对并行线程间的交叠执行状态进行抽象,实现了快速的状态空间约简,缓解了处理循环体时对代表性踪迹的完全展开导致的严重计算负担问题,同时保证了并行验证的完备性。上述方法的提出,有效解决了多线程程序中关联变量原子性验证中的关键问题,为提高并行程序安全性验证的自动化程度、效率和准确性,以及提高并行软件质量奠定了理论基础。
其他文献
三星目前是世界上最大的微波炉产家之一,仅1984年微波炉产量就达到100万台,多数进入美国市场。从十几年前仅15平方英尺大小的研究小组做起,到现在占有大部分美国市场及不断
回 回 产卜爹仇贱回——回 日E回。”。回祖 一回“。回干 肉果幻中 N_。NH lP7-ewwe--一”$ MN。W;- __._——————》 砧叫]们羽 制作:陈恬’#陈川个美食 Back to yield
2017年7月22~23日,在中国科学技术协会、中国科学院的指导下,由中国人工智能学会、阿里巴巴集团&蚂蚁金服主办,CSDN、中国科学院自动化研究所承办的2017中国人工智能大会(CCAI
目的:探讨高压氧治疗特发性面神经麻痹的临床疗效。方法:将71例特发性面神经麻痹患者随机分为2组,38例以高压氧加常规药物治疗作为观察组,33例以常规药物治疗作为对照组,进行
一项化学实验,必然会产生一定数量的化学数据。能否科学、有效地处理和分析这些数据,将直接关系到实验的成败。而在现实中,处理数据的媒介和方式有很多,计算机就是其中不可或
随着计算机视觉技术的快速发展,结合农林植物生理学与作物栽培学理论,建立基于计算机技术的植物水分胁迫测量实验系统具有一定发展前景。人类当前面临食物需求量快速增加、水
“三算结合”教学法,即口算、笔算、珠算三结合教学法,自上世纪五、六十年代创始以来,就以其独特的魅力,在小学数学教育上发挥了巨大作用,也为珠算教育增添了光辉,更为后来珠心算的
随着计算技术的发展进步,现代的计算形式发生了很大的变化,从以往单一、封闭的计算系统逐步发展为网络化、社会化的计算环境,并具有多样性、开放性、异构性等特点。大量的计
系统的同时镇定问题和安全性验证是系统科学与控制理论中的基本问题,有着非常重要的理论意义和应用价值。同时镇定问题考虑如何设计单个的控制器,使其可以同时镇定给定的多个