【摘 要】
:
可达性测试方法具有在给定输入下生成并执行所有可行同步序列且不需要记录任何历史信息等诸多优势。基于拆分的可达性测试方法,通过生成细粒度的同步交织序列,解决了可达性测
论文部分内容阅读
可达性测试方法具有在给定输入下生成并执行所有可行同步序列且不需要记录任何历史信息等诸多优势。基于拆分的可达性测试方法,通过生成细粒度的同步交织序列,解决了可达性测试因生成的测试用例集不够充分而不能有效探测并发程序中同步错误等问题。但现有的基于拆分的可达性测试方法仍然无法生成不同锁对象上同步事件之间的充分交织,不能有效探测并发程序中因使用错误的锁对象保护共享变量而导致的同步错误。为此,本文提出一种基于锁对象的拆分方法。该方法首先通过静态分析技术分析相关代码,找出没有被相同锁对象保护的共享变量,然后选取相同的锁对象对这些共享变量的访问代码进行拆分,生成不同管程对象上的同步事件的交织序列,从而暴露出并发程序中因使用错误的锁对象保护共享变量而导致的同步错误。为了提高拆分效率,本文提出了拆分点识别及排序算法,通过比较拆分点上下文中访问没有被相同锁对象保护的共享变量的次数确定拆分点的优先顺序。同时根据相关方法访问共享变量的次数确定相关方法拆分的有限顺序。在上述工作的基础上,本文设计并实现了基于锁对象拆分策略的可达性测试工具LockSplitRichTest探测并发错误,并选取了 9个具有代表性的并发程序开展实验研究,通过实验与原可达性测试工具(RichTest)、基于拆分策略的可达性测试工具SplitRichTest以及基于错误模式的并发错误预测工具(Pecan)进行比较,验证了基于锁对象的拆分方法的有效性。实验结果表明,LockSplitRichTest可有效提高探测并发程序同步错误探测能力。RichTest的同步错误探测率为46.27%,SplitRichTest的同步错误探测率为78.61%,LockSplitRichTest的同步错误探测率为95.52%,PECAN的同步错误探测率为47.26%。最后通过Apache中pool实例验证了 LockSplitRichTest工具的实用性。
其他文献
氢气,甲烷作为高热值,低污染的清洁能源,能够有效缓解日益严重的环境污染问题,在电力发电领域具有巨大的发展前景。随着重型燃气轮机飞速的发展,带动社会经济稳步前进的同时也带来严重的污染排放问题。本文采用数值模拟的方式在维持燃气轮机功率不变的情况下,在甲烷燃烧的过程当中添加一定体积的氢气量,研究甲烷燃烧过程中氢气含量的变化对燃气轮机运行的影响,主要包括温度变化情况,速度变化规律,燃料的燃烧以及燃烧产物的
近年来,随着集成电路工艺水平的不断提升,CPU的计算能力越来越强,与外部存储器的工作速度差距也越来越明显。Cache的引入在一定程度上缓解了“存储墙”的问题。分析和理解应
随着大数据时代的到来,数据中心的规模逐渐变大,连接数据中心内部和外部的网络规模也以指数级增长,网络工程师对于数量暴增的网络设备的管理变得更加复杂。为了灵活配置和管
本文梳理了灵活保障就业的基本理论,探讨了吉林省弱势群体的灵活保障就业的实践发展,我省弱势群体劳动力市场的灵活性和保障性均有一定的发展,但保障性略显不足。通过特定范
随着人工智能研究与应用的快速发展,机器学习越来越广泛地被应用到生活和生产各个领域上,提高了人们生活质量和生产效率。在实际环境的机器学习过程中,经常会遇到数据的不同
随着视频直播的发展,行业对直播延迟和交互性的要求越来越高,互动直播技术已经是直播行业的标准配置。如何提升网络延迟性能成为实时视频应用保证用户交互体验质量,跻身行业
质子交换膜燃料电池是一种将化学能直接、连续地转化成电能的高效、绿色发电装置,作为其中关键部件的双极板在燃料电池中起着保持电池稳定性,为单电池提供电联结等重要作用。石墨烯是一种碳原子在晶格中排列紧密的单一片层,结构稳定,具有良好的导电性,是复合材料双极板导电填料的优良选择。但是石墨烯质轻、表面能极高、难以分散,一直没有较好的解决方法。本文利用了增材制造的技术思想,采用3D粉末微粒喷射成型方法,制备出
图形渲染是GPU的主要功能之一,该技术广泛应用于图像显示和游戏呈现等。性能分析是图形应用开发、优化的重要环节。当前,针对GPU的性能分析方法大多仅适用于特定GPU架构,不面
随着多智能体系统在无人飞机、移动机器人系统以及网络通讯系统等方面的应用,多智能体系统理论有了迅速的发展,已成为控制理论的一个重要分支。尤其是多智能体系统的一致性理
Android 5.0中ART取代Dalvik成为新的Android虚拟机,ART通过预编译技术(Ahead-Of-Time compile)和更为高效、细粒度的垃圾回收机制(Garbage Collection,GC)大幅提升了系统的