首页> 外文期刊>LIPIcs : Leibniz International Proceedings in Informatics >LL/SC and Atomic Copy: Constant Time, Space Efficient Implementations Using Only Pointer-Width CAS
【24h】

LL/SC and Atomic Copy: Constant Time, Space Efficient Implementations Using Only Pointer-Width CAS

机译:LL / SC和原子副本:恒定时间,仅使用指针宽度CA的空间高效实现

获取原文
           

摘要

When designing concurrent algorithms, Load-Link/Store-Conditional (LL/SC) is a very useful primitive since it avoids ABA problems. The full semantics of LL/SC are not supported in hardware by any modern architecture, so there has been a significant amount of work on simulations of LL/SC using CAS. However, all previous algorithms that are constant time either use unbounded sequence numbers (and thus base objects of unbounded size), or require ??(MP) space to implement M LL/SC objects for P processes. We present the first constant time implementation of LL/SC from bounded-sized CAS objects using only constant space overhead per LL/SC variable. In particular, our implementation uses ?~(M kP?2) space, where k is the number of outstanding LL operations per process, and only requires pointer-width CAS operations. In most algorithms that use LL/SC, k is a small constant which reduces our additive space overhead to ?~(P?2). Our algorithm can also be extended to implement L word LL/SC objects in ?~(L) time for LL and SC, O(1) time for VL, and ?~((M kP?2)L) space. To achieve these bounds, our main technical contribution is implementing a new primitive called Single-Writer Copy which takes a pointer to a word sized memory location and atomically copies its contents into another object. The restriction is that only one process is allowed to write/copy into the destination object at a time. The ability to read from one memory location and write to another atomically, and in constant-time, is very powerful and we believe this primitive will be useful in designing other algorithms.
机译:在设计并发算法时,加载链路/商店条件(LL / SC)是一个非常有用的原始原始,因为它避免了ABA问题。任何现代架构都不支持LL / SC的完整语义,因此使用CAS的LL / SC模拟已经有很多工作。然而,恒定时间的所有先前算法都使用非界定的序列号(因此,无界尺寸的基本对象),或者需要??(MP)空间来实现P进程的M LL / SC对象。我们使用每LL / SC变量的恒定空间开销从有界型CAS对象呈现LL / SC的第一个常数时间实现。特别是,我们的实现使用?〜(m kp?2)空间,其中k是每个过程的未完成LL操作的数量,并且只需要指针宽度CAS操作。在使用LL / SC的大多数算法中,k是一种小常数,减少了我们的添加剂空间开销到?〜(p?2)。我们的算法也可以扩展以实现LL和SC,O(1)时间的LL和SC,O(1)时间的LL / SC对象,以及?〜((m kp?2)l)空间。为了实现这些界限,我们的主要技术贡献正在实现一个名为单卷编副本的新原始原始,它将指向单词大小的内存位置并原子将其内容复制到另一个对象中。限制是只允许一次将一个进程写入目标对象时。能够从一个内存位置读取并写入另一个原子上,并且在恒定时间内非常强大,我们认为这个原语在设计其他算法方面都很有用。

著录项

获取原文

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号