基于内存访问模式的并发缺陷修复方法

来源 :天津大学 | 被引量 : 0次 | 上传用户:aiming6946s
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着计算机硬件的不断发展,多核处理器的出现频率越来越高,使用并发程序的场景越来越多。并发程序相比于传统的顺序程序有很多优势,它有更高的运行效率和更充分的资源利用率,但是它也存在一些不足。由于并发程序中线程调度的复杂性和程序运行时的不确定性等问题容易产生并发缺陷,这些并发缺陷如果不能及时地被修复,必将会造成严重的后果。并发缺陷与传统缺陷不同,有时只会出现在某些特殊的调度中且需要使用合适的补丁来修复,所以传统的方法在这一领域并不适用。修复并发缺陷的过程十分耗时耗力,如果程序员能使用一种自动化的修复方法,必将会减少很多工作量。在本论文中,我们提出了一种自动化修复方法去修复Java并发程序中非死锁型的并发缺陷,方法名为PFIX,其核心思想是推断出程序中合理的加锁策略从而系统地修复并发缺陷,它结合了动态运行与静态分析。我们首先通过Java Path Finder记录程序的运行信息,并从运行信息中筛选出读写操作,再根据读写操作抽象出内存访问模式,之后对内存访问模式进行排序。我们使用内存访问模式来表示常见的非死锁型并发缺陷。然后,我们通过添加锁和信号量的方式来修复程序。当需要加锁时,我们先通过推断加锁策略的方式来决定添加何种锁修复程序。当我们可以使用程序中的旧锁时,我们通过收集程序中锁的使用信息来推断加锁策略,决定具体使用哪一把旧锁。当我们无法使用程序中的旧锁时,我们通过构建抽象语法森林的方式来推断加锁策略,从而添加合适的新锁。之后,我们在加锁策略和内存访问模式的基础上设计相应的修复方法,向程序中添加合适的补丁进行修复。我们借助抽象语法树和Soot对我们添加的补丁进行调整,使得补丁更加的合理。最后,我们再使用Java Path Finder动态运行修复后的程序来检验它是否修复成功。我们整理了一套可供Java Path Finder运行的并发程序,并将其作为本文的数据集,总共有32个并发程序。我们将文中的方法应用在数据集上并成功修复了32个并发程序中的29个,对未能成功修复的程序,我们都进行了人工分析。
其他文献
无人机配备高清摄像头,可以执行海上溢油应急监控、肇事船舶搜寻、遇险船舶和人员定位、海洋主权巡查等任务。本文旨在研发一个倒驳船检测系统,可在无人机巡逻过程中实时检测倒驳船,实现目标的识别、定位与检测,可以大大改善工作人员工作体验,提高工作效率。在本文中,我们设计了一个用于检测倒驳船的系统,该系统可以大大的节省人力和物力,提高工作效率。该系统包括实时检测和视频处理两个部分,同时该系统不仅可以在正常天气
越来越多的应用程序(例如Web搜索,数据挖掘和推荐系统)部署到数据中心,同时它们越来越依赖于高性能数据中心网络来满足用户不断增长的服务体验质量要求。现有的流量调度方法都是建立在假设数据流的信息已知(如大小和截止时间)或拓扑为对称拓扑(如Fat-Tree等)的情况下。但在实际生产过程中,数据流的信息是很难在开始发送时获取到,即使是准确的预测也是十分困难的。在这种情况下,最小化数据中心网络中的平均流完
区块链目前发展的最大瓶颈是存储问题,优化存储已成为加速区块链发展的必由之路。现有的解决方案大多会改变区块链的框架,削弱了区块链去中心化的特点。本文将区块链账户数据作为研究对象,提一种基于余数系统的区块链存储优化模型,并针对模型中存在恶意节点篡改本地数据的情况提出基于CRT Ⅱ(扩展的中国剩余定理,Chinese remainder theorem Ⅱ)和Raft算法的检纠错方案,使得提出的存储模型
云计算的快速增长需要大规模和可扩展的数据中心作为基础网络支持设施,为海量的网络服务提供存储、计算等资源。而软件定义网络作为一种全新的、实现控制平面与数据平面解耦的网络架构,可以克服传统网络架构缺陷,为用户提供多样化的业务支持。未来网络的重要发展趋势则是将云计算、软件定义网络以及网络功能虚拟化等技术融为一体,进行有效整合,从而更好地服务用户。本文主要针对云数据中心的计算资源有限、网络传输流量激增等挑
计算机断层成像指通过X射线对检测样本在不同角度进行投射得到样本的投影数据,然后利用数学模型例如滤波反投影法、代数法或统计法进行图像重建。稀疏角CT重建和有限角CT重建在实际中都是非常具有挑战性的问题。由于这种不完全数据重建问题具有的高病态性,无论是使用分析重建的方法还是迭代重建的方法都可能导致重建图像的失真和伪影现象。本文主要介绍了一个新的CT重建模型,它在重建一个高质量重建图像的同时也估计出一个
随着科技的高速发展,互联网迅速渗透到各行各业,不同类型的互联网应用井喷式发展。网络信息越来越丰富,信息的传播方式发生了巨大改变,用户开始从内容的浏览者向内容的生产者与传播者转变,UGC(User-generated Content,用户生产内容)模式应运而生。近年来,UGC模式被导入旅游行业,催生了众多UGC模式的旅游APP。用户在UGC旅游APP上分享传播旅游信息,极大的促进了在线旅游业的发展。
由于陆地资源的匮乏,人类将目光投向海洋资源,海洋在国家发展中变得越来越重要。因为诸多历史原因,领海争端不断,有关国家通过岛屿侵占、油气盗采、非法捕捞等方式频频侵犯我国领海权益,所以建立完善的海域监测系统尤为重要。而且我国海域辽阔,海岸线长达1.8万公里,领海面积396万平方公里,使得我国的海域监测面临着严峻挑战。然而,目前我国海域监测系统多为单平台作业,即利用无人机或卫星单独执行海域监测任务,无法
近年来,计算机视觉领域的图像分割技术已经广泛地应用于目标检测和众多图像处理任务中。研究人员已经研究探索了众多图像分割技术,其中基于超像素的图像分割技术由于可以更好的获取分割区域之间的细小差异、对于自然图像具有获得多尺度和多样化的分割模式、以及比像素级别的图像分割具有更高效率的优点,因此基于超像素的图像分割技术仍然具有很大优势。本文的目的在于改进原有的基于人工设计像素特征提取超像素的算法产生高质量的
盲量子计算协议是一种新的安全量子计算协议,该协议使没有足够量子能力的客户端能够将其量子计算任务委派给拥有完整量子能力的服务器,并且盲量子计算协议可以保证服务器无法知道客户端的输入、输出和计算任务。目前已提出的盲量子计算协议或要求客户端具备较高的量子处理能力或要求多个服务器共同完成任务。为了降低客户端的量子能力,本文提出了一种客户端仅具备Y测量和Z测量的单服务器盲量子计算协议。按照协议所定义的量子计
莱斯噪声的去除是磁共振成像(Magnetic Resonance Imaging,MRI)中一个重要的问题。近年来,一些基于学习的方法在图像恢复方面取得了一定的成果,这些方法不仅速度快,而且去噪效果很好。然而,这类方法有一定的局限性,这些模型的训练是过程是依赖于噪声水平的,即,训练的模型会受到特定噪声水平的限制,缺乏适应不同水平噪声的能力,在处理不同水平的噪声时,需要训练不同的模型。本论文主要研究