一种无锁并发跳表算法的可线性化证明

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:sunday_sky
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着互联网的普及和云计算的发展,海量数据处理成为IT从业人员越来越重视的课题。海量数据处理常采用并发的方法,即多个线程同时运行在多台处理器上,共同访问和处理共享数据。由于多个线程的交互,并发程序的行为更难以预测,出现的错误也更难以定位。因此,通过严谨的数学方法在逻辑上验证一个并发程序的正确性很有意义。无锁并发跳表是一种无需对各个节点加锁就能实现多个线程同时无阻塞操作的数据结构,其存取时间复杂度是对数级,类似于平衡树,另外,其采用-种概率方案来平衡数据结构,无需定期对数据结构进行重平衡,因此操作效率很高,非常适用于海量数据的并发处理,并且已经得到了广泛的应用。但是,无锁并发跳表算法的正确性并未得到严格的形式化证明。可线性化是并发数据结构的正确性标准之一,指的是对象操作的细粒度实现与瞬间原子操作有相同的效果,本文即采用最新提出的不固定线性化点算法可线性化性质的模块化验证方法,验证了无锁并发跳表算法的可线性化性质。为了证明无锁并发跳表算法的可线性化性质,本文做了如下工作:1、给出基础逻辑集合。本文首先给出了一个简单的抽象机和语言模型,并根据机器模型构造逻辑推导规则;然后在语言模型上实现无锁并发跳表算法;最后将无锁并发跳表抽象成整数集合,再给出各具体算法对应的抽象原子操作。2、确定了算法的“潜在”线性化点,并通过模块化验证方法中提出的方案在算法中添加辅助语句以标识线性化点。3、用形式化语言构造算法的规范。根据LRG逻辑,算法规范包括三部分:用于描述无锁并发跳表不变特征的不变式I;算法执行所依赖的环境规范R;算法本身所保证的规范G。4、最后,对无锁并发跳表算法进行了严格地推导证明,并首次形式化的证明了无锁并发跳表算法的可线性化性质。由于不固定线性化点算法可线性化性质的模块化验证方法经过形式化的可靠性证明,因此本文通过可靠地形式化验证方法首次证明了无锁并发跳表算法的可线性化性质。
其他文献
怎样从单幅运动模糊图像复原出清晰的图像,一直是数字图像处理领域中富有挑战的问题。图像复原的目的是尽可能的恢复出原始清晰图像,因此对图像质量进行评价是必要的。若图像中
云计算(Cloud Computing)是一种新型的分布式计算范式。它将计算任务分布在大量计算机构成的资源池上,使各种应用能够根据需求获取计算力、存储空间和各种软件服务。云计算用
随着多核处理器的广泛应用,并发编程成为软件开发的主流方式,但是并发编程给程序员带来了很大的挑战。传统的并发编程主要是用锁机制来保证共享资源的互斥访问,锁机制是一种
随着移动互联网的飞速发展,智能手机也风靡全球。苹果、安卓、Windows Phone等智能手机不断吸引着用户的眼球,越来越成为人们生活中不可缺少的通讯工具和计算平台。与此同时,无
伴随着计算机体系结构的快速发展,代码迁移这一课题显得越发重要。新的体系结构如果不能广泛的被应用软件支持,将很难生存下去。龙芯是我国自主研发的通用CPU,采用MIPS架构,
目前,不同汽车厂商、产品类型和总线类型提取车辆信息的方式各不相同。每个汽车制造商对CAN总线信息的编码也大不相同。大多数汽车制造商都采用了CAN标准,所以车辆之间的应用层
根据Gross情感调节过程理论,情感调节主要是调节者通过情境选择、情境修正、注意分配、认知重评、表达抑制五个阶段对自己的不良情感进行自我调节,自我消化的过程。主要的调
随着基因组计划的完成,人类步入后基因组时代,逐渐认识到蛋白质分子在生命过程中的重要性。研究表明,蛋白质分子并不单独发挥作用,它通常与其功能相似的蛋白质分子聚集形成大
移动Ad hoc网络(Mobile Ad Hoc Network, MANET)是一种由无线移动节点组成,是一种无需固定网络基础设施的支持并能够迅速投入使用的网络体系,各个网络节点通过无线信道进行通
互联网技术的发展给人们日常生活带来便利的同时,也使人们淹没在信息的海洋中,很难找到自己所关心和需要的信息。随着web2.0的飞速发展,面对传统搜索引擎暴露出来的诸如不能