【24h】

Proving Concurrent Data Structures Linearizable

机译:证明并发数据结构可线性化

获取原文

摘要

Linearizability of concurrent data structure implementations is notoriously hard to prove. Consequently, current verification techniques can only prove linearizability for certain classes of data structures. We introduce a generic, sound, and practical technique to statically check the linearizability of concurrent data structure implementations. Our technique involves specifying the concurrent operations as a list of sub-operations and passing this specification on to an automated checker that verifies linearizability using relationships between individual suboperations. We have proven the soundness of our technique. Our approach is expressive: we have successfully verified the linearizability of 12 popular concurrent data structure implementations including algorithms that are considered to be challenging to prove linearizable such as elimination back-off stack, lazy linked list, and time-stamped stack. Our checker is effective, as it can verify the specifications in less than a second.
机译:众所周知,并发数据结构实现的线性化很难证明。因此,当前的验证技术只能证明某些类型的数据结构的线性化。我们引入了一种通用,可靠和实用的技术来静态检查并发数据结构实现的线性化。我们的技术涉及将并发操作指定为子操作列表,并将此规范传递给自动检查器,该检查器使用各个子操作之间的关系来验证线性化能力。我们已经证明了我们技术的可靠性。我们的方法富有表现力:我们已经成功验证了12种流行的并发数据结构实现的线性化,其中包括被认为难以证明线性化的算法,例如消除后退堆栈,惰性链表和带时间戳的堆栈。我们的检查器很有效,因为它可以在一秒钟内验证规格。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号