首页> 外文OA文献 >Non-Blocking Concurrent Operations on Heap
【2h】

Non-Blocking Concurrent Operations on Heap

机译:堆上的非阻塞并发操作

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。

摘要

We present a non-blocking implementation for the concurrent Heap data structure in the asynchronous shared memory system. The system may be a traditional one with a single processor with multiple threads, or it may be the one with multiple processors each possibly with multiple threads. Our implementation supports readMin, deleteMin, and insert operations on the heap. The deleteMin and insert operations are non-blocking operations, whereas the readMin is wait-free. One easy approach of using a heap in multi-threading environment could be by locking the entire heap before performing any operation. This would make the implementation very slow to have any practical application.The above inefficiency could be reduced by using the fine-grained locking mechanism as shown by Herlihy and Shavit. But, this would still be a blocking implementation, where some threads may be waiting forever for some other threads holding the locks that might have crashed or failed.Israeli and Rappoport gave a non-blocking implementation which supports deleteMin and insert operations using some primitives which they claim could be built using transactional memory. Moreover, their implementation has a limitation on the range of values a node in the heap can have. We propose a different implementation which supports all three operations using a primitive, called Double-Compare-And-Set(DCAS). DCAS is a synchronization operation supported in hardware by Motorola 68K family of processors. It was also going to be supported by Sunu27s canceled Rock processor. DCAS takes two memory locations as input, and writes new values to them only if they match input expected values. Our algorithm has no limitation on the range of numbers a node can have.
机译:我们为异步共享内存系统中的并发堆数据结构提供了一种非阻塞实现。该系统可以是具有多个线程的单个处理器的传统系统,也可以是具有多个处理器(每个处理器可能具有多个线程)的系统。我们的实现支持readMin,deleteMin和对堆的插入操作。 deleteMin和insert操作是非阻塞操作,而readMin是免等待的。在多线程环境中使用堆的一种简单方法是在执行任何操作之前锁定整个堆。这将使实现非常缓慢,无法实际应用。可以通过使用Herlihy和Shavit所示的细粒度锁定机制来减少上述效率低下的情况。但是,这仍然是一个阻塞的实现,其中某些线程可能永远等待其他持有锁可能已崩溃或失败的锁的线程。以色列和Rappoport提供了一个非阻塞实现,该实现使用某些原语支持deleteMin和insert操作他们声称可以使用事务性内存来构建。此外,它们的实现对堆中节点可以具有的值的范围有所限制。我们提出了一种不同的实现,该实现使用称为Double-Compare-And-Set(DCAS)的原语支持所有三个操作。 DCAS是摩托罗拉68K系列处理器在硬件中支持的同步操作。 Sun取消的Rock处理器也将支持它。 DCAS将两个存储位置作为输入,并且仅在它们与输入的期望值匹配时才向它们写入新值。我们的算法对节点可以具有的数字范围没有限制。

著录项

  • 作者

    Acharya Mahesh;

  • 作者单位
  • 年度 2012
  • 总页数
  • 原文格式 PDF
  • 正文语种 English
  • 中图分类

相似文献

  • 外文文献
  • 中文文献
  • 专利

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号