并发缺陷的高质量自动化修复方法研究

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:cccpx918
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
多线程并发软件中,并发程序执行行为的不确定性和复杂性,使得并发程序中的并发缺陷被成功捕获的概率很小,并且很难再现。而并发缺陷一旦发生,将造成难以估计的损失。对于并发缺陷的人工修复不仅耗费人力,同时很难保证修复的正确性。因而设计并实现一个高质量的自动化修复工具,帮助开发人员修复这些并发缺陷变得至关重要。  对于并发缺陷的修复,现有的自动修复方式主要通过加保护锁的方式,使得缺陷中的线程无法并发执行,从而规避死锁以及原子性缺陷发生。但是这样的修复方式很容易引入新的死锁(资源死锁或通信死锁),同时可能会降低程序运行的效率和性能。  针对死锁,本文提出一种基于Pre-Acqusition的死锁修复策略:DFixer。DFixer只挑选死锁中的其中一个线程,将该线程中的第二个锁提取到第一个锁的位置并与第一个锁同时获取,打破死锁发生的必要条件,从而修复死锁。为了确保修复的过程中不引入新的死锁,DFixer对于执行修复操作的线程进行了严格的挑选,并通过上下文相关变量进行逻辑控制,避免修复过程中引入新的锁序从而保证DFixer修复的正确性。  针对原子性缺陷,本文提出了一种可适配性选择的原子性缺陷修复工具:αFixer。αFixer考虑了实际原子性缺陷中的代码结构,提供了调整现有锁和添加新的保护锁两种修复方式,在实际修复过程中,αFixer会根据代码结构进行适配性的选择修复方式。如果原有程序中存在现有锁保护相关变量的访问,那么αFixer通过调整锁保护范围的方式进行修复;如果不存这样的保护锁,αFixer会添加一个相同可见性的保护锁进行缺陷修复,很好的解决了修复过程中过度序列化造成的性能下降问题。同时αFixer结合了DFixer中提出的Pre-Acquisition操作,避免了在修复过程中引入死锁的问题。  在大型真实的并发程序数据集中进行了验证实验后,实验数据表明,DFixer和αFixer能够修复并发程序中的死锁和原子性缺陷,并且保证在修复过程中不引入新的死锁问题,另外DFixer和αFixer能够避免引入较大的额外时间开销,同时提供更具有可读性的修复代码。
其他文献
束线装置包括粒子加速器、同步辐射装置、散裂中子源和研究堆中子源等,被广泛应用于材料、物理、化学和分子生物等研究领域.本论文的工作围绕束线装置展开,涉及的装置包括中
国家大科学工程装置EAST自2006年开始放电,已成功运行了五年,随着实验的进行,等离子体实验参数不断提高,对等离子体诊断、数据采集、第一壁条件、真空壁处理等提出了更高的要
流量控制技术是进行网络管理的关键技术,通过流量控制可以缓解网络拥塞、保障网络安全以及提供服务质量保证。随着网络技术的快速发展,网络速率不断提高,新型网络应用不断出现,为
本文的工作主要围绕EAST汤姆逊散射诊断定位装置的设计和实现而展开。EAST是我国自主研制的世界首个非圆截面全超导托卡马克装置,用于磁约束核聚变研究,而汤姆逊散射诊断是用
对等网络应用在互联网上的日益流行,为人类社会带来了信息共享的革命。然而,基于Kademlia协议的对等网络(简称:K网络)仍存在许多服务质量相关的问题亟需解决。例如,(1)节点与节点
在工业控制领域中现场总线与以太网逐步走向融合,采用基于以太网的现场总线接口取代模拟接口后,数控系统的整体性能得到了迅速提升。由于总线传输的是高速数字量信号,因此较难进
随着Internet技术的迅猛发展,网络新应用层出不穷,网络结构从传统的C/S、B/S模式,逐渐转向P2P、P2SP结构的应用模型。各种P2P,P2SP应用占用了大量的带宽资源,在增加运营商运
随着Web服务的增多,Web服务请求者在选择服务时就不只是重视服务是否满足用户功能需求,还要考虑Web服务的质量。由于面向服务架构(Service-Oriented Architecture,SOA)的企业级
中性束注入(简称NBI)作为一种行之有效的等离子体加热方式,具有加热效率高和物理机制清楚的优点。正在建造中的EAST-NBI是国家大科学工程项目全超导托卡马克EAST实现高参数运
激光技术在现代科学实验,医学治疗,光刻以及国防等领域得到了极其广泛的应用。在用于集成电路光刻的大功率准分子激光光源中,采用了MOPA双腔结构,要求出光时间精确,因此对同