并发程序的自动分析与验证

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:yanweiwch
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
软件复杂度的增加及多核体系结构的广泛应用,使得通过传统模式检查软件正确与否变得愈加困难。本论文研究了并发程序自动分析与验证的相关理论、技术及工具。本文的工作主要关注在两个方面:如何自动验证并发递归程序的安全性性质,以及如何自动分析并发数据结构的可线性化性质。   并发递归程序安全性性质的自动验证是难问题,因为其可以等价到上下文无关语言交集判空问题上,而后者是不可判定问题。我们基于语言理论,利用反例制导的抽象精化框架,给出了验证并发递归程序安全性性质的半判定算法。首先,将潜在的错误区域抽象为上下文无关语言,如果抽象为空,则说明原系统安全。否则需要对反例进行判断,我们利用限界语言表示潜在的反例集合,并检查限界语言与多个上下文无关语言之间的交集是否为空。如果非空,则说明原系统不安全,否则说明通过限界语言描述的反例是假反例,需要将其从抽象中剔除并继续寻找新的限界语言。在抽象精化过程中,不同的上近似及限界近似会对结果产生不同的影响,例如,影响检测过程是否终止。我们研究了已有的算法,并提出了两种上近似算法及一种限界近似算法。最后,我们实现了模型检测工具LCegar,并对实际的并发递归程序进行了验证。   可线性化是刻画并发数据结构正确性的一种标准,本文从自动分析及测试的角度考虑如何检查并发数据结构的可线性化性质。在“并发数据结构的顺序行为是相对容易验证”的前提假设下,我们将关注点集中在寻找并发历史的顺序化执行上。对数据结构的一条并发执行历史,如果存在合法的顺序化执行与其对应,则说明这条历史是可线性化的,如果不存在,则说明并发数据结构是不可线性化的。在对常见的并发算法进行分析后,本文提出了两种加速策略:猜测线性化点及读写分离,然后提出了一种自动分析的算法,将对并发历史的检查工作划分为两个阶段,利用第一阶段提高检查的效率,利用第二阶段保证检查的可靠性。最后,我们实现了相应的测试工具VeriTrace,并对实际的Java程序进行了测试,实验结果显示我们的算法在高并发环境下具有很高的效率,并能有效地寻获并发数据结构中一些难以发现的错误。  
其他文献
报表系统在各行各业中都有很广泛的应用,使数据能够以特定的样式展现,并进行格式转化等处理。尤其是在信息管理,交通,银行,物流等行业的系统中,按照一定的需求生成不同数据,
随着互联网和社交网络的发展,PageRank的地位日益凸显。网络规模的不断增大,同时网络变化带来的时效性要求,也使PageRank计算对计算资源的要求不断提高。为降低上述问题对计算资
国家有关低空空域改革政策的发布使我国通用航空事业获得了发展与繁荣的大好机会。鉴于飞行模拟器在军用民用航空中的巨大作用以及所具备的高技术含量和专业功能,它将会是通用
随着科技的进步,智能设备得到了快速的发展。智能手机中放置了多种传感装置来增强此设备的功能,比如里面的加速度传感装置能够获取加速度数据,这为我们进行以智能设备为基础的动
微博是目前最热门的互联网应用之一,吸引了数以亿计的用户。通过微博系统用户可以自由地关注感兴趣的人,同时发布、分享、评论感兴趣的信息。目前微博用户每天产生的微博总数超
21世纪随着互联网技术的快速发展,从而推动和加快了新型教育模式的出现。《十年规划》描述了我国教育信息化未来十年的任务和行动计划,这些任务和行动计划的重点工程被概括为“
物质流分析(Material Flow Analysis,MFA)作为一种研究经济活动中物质资源新陈代谢过程的方法,在促进循环经济结构发展的同时,也对资源和环境保护起到积极的意义,在世界范围内有
在中国,有数以亿计的农民进入城市或沿海地区打工,以赚取更多的物质回报来为家庭带来更好的生活。由于打工地的住宿限制,大部分农民工的孩子留在了农村家里,由爷爷奶奶或者其他亲
从计算机软硬件开发的角度上看,如何确保计算机软件与硬件的正确性、可靠性和安全性是科学家们奋斗的终极目标。形式化方法用抽象的模型描绘所研究的系统、用逻辑公式描述所关
单点登录使得用户只需认证一次,即可访问多个关联的应用系统,在提高工作效率、降低系统管理开销、保证安全性等方面发挥的作用已经得到了广泛的认可。随着信息化进程的推进,企业