Lightweight reference counting using single-target synchronization
    1.
    发明授权
    Lightweight reference counting using single-target synchronization 有权
    使用单目标同步的轻量级参考计数

    公开(公告)号:US07769791B2

    公开(公告)日:2010-08-03

    申请号:US11226038

    申请日:2005-09-14

    IPC分类号: G06F12/00

    摘要: We have developed a methodology for transforming garbage collection-dependent algorithms, shared object implementations and/or concurrent software mechanisms into a form that does not presume the existence of an independent, or execution environment provided, garbage collector. Algorithms, shared object implementations and/or mechanisms designed or transformed using techniques described herein provide explicit reclamation of storage using lock-free pointer operations. Transformations can be applied to lock-free algorithms and shared object implementations and preserve lock-freedom of such algorithms and implementations. As a result, existing and future lock-free algorithms and shared object implementations that depend on a garbage-collected execution environment can be exploited in environments that do not provide garbage collection. Furthermore, algorithms and shared object implementations that employ explicit reclamation of storage using lock-free pointer operations such as described herein may be employed in the implementation of a garbage collector itself.

    摘要翻译: 我们已经开发了一种将垃圾回收依赖算法,共享对象实现和/或并发软件机制转换为不假定存在独立或执行环境(垃圾收集器)的形式的方法。 使用本文描述的技术设计或变换的算法,共享对象实现和/或机制使用无锁指针操作来提供存储的显式回收。 转换可以应用于无锁算法和共享对象实现,并保持这种算法和实现的锁定自由度。 因此,依赖于垃圾回收执行环境的现有和将来的无锁算法和共享对象实现可以在不提供垃圾回收的环境中被利用。 此外,使用如本文所述的无锁定指针操作的使用显式回收存储的算法和共享对象实现可以用于实现垃圾收集器本身。

    Practical implementation of arbitrary-sized LL/SC variables
    2.
    发明授权
    Practical implementation of arbitrary-sized LL/SC variables 有权
    实际执行任意大小的LL / SC变量

    公开(公告)号:US07680986B1

    公开(公告)日:2010-03-16

    申请号:US11026849

    申请日:2004-12-30

    IPC分类号: G06F12/00 G06F13/00 G06F13/28

    CPC分类号: G06F9/52

    摘要: Many conventional lock-free data structures exploit techniques that are possible only because state-of-the-art 64-bit processors are still running 32-bit operating systems and applications. As software catches up to hardware, “64-bit-clean” lock-free data structures, which cannot use such techniques, are needed. We present several 64-bit-clean lock-free implementations: including load-linked/store conditional variables of arbitrary size, a FIFO queue, and a freelist. In addition to being portable to 64-bit software (or more generally full-architectural-width pointer operations), our implementations also improve on existing techniques in that they are (or can be) space-adaptive and do not require a priori knowledge of the number of threads that will access them.

    摘要翻译: 许多传统的无锁数据结构利用了仅仅因为最先进的64位处理器仍在运行32位操作系统和应用程序而可能的技术。 随着软件的升级,硬件需要“64位清理”的无锁数据结构,不能使用这种技术。 我们提出了几个64位无干扰的无锁实现:包括任意大小的加载链接/存储条件变量,FIFO队列和freelist。 除了可移植到64位软件(或更通常的全架构宽度指针操作)之外,我们的实现还改进了现有技术,因为它们(或可以)是空间自适应的,并且不需要先验知识 将访问它们的线程数。

    Code preparation technique employing lock-free pointer operations
    3.
    发明授权
    Code preparation technique employing lock-free pointer operations 有权
    采用无锁指针操作的代码准备技术

    公开(公告)号:US07805467B2

    公开(公告)日:2010-09-28

    申请号:US11343678

    申请日:2006-01-30

    IPC分类号: G06F12/00

    摘要: A methodology has been discovered for transforming garbage collection-dependent algorithms, shared object implementations and/or concurrent software mechanisms into a form that does not presume the existence of an independent, or execution environment provided, garbage collector. Algorithms, shared object implementations and/or mechanisms designed or transformed using techniques described herein provide explicit reclamation of storage using lock-free pointer operations. Transformations can be applied to lock-free algorithms and shared object implementations and preserve lock-freedom of such algorithms and implementations. As a result, existing and future lock-free algorithms and shared object implementations that depend on a garbage-collected execution environment can be exploited in environments that do not provide garbage collection. Furthermore, algorithms and shared object implementations that employ explicit reclamation of storage using lock-free pointer operations such as described herein may be employed in the implementation of a garbage collector itself.

    摘要翻译: 已经发现了一种方法,用于将垃圾回收依赖算法,共享对象实现和/或并发软件机制转换为不假定存在独立或执行环境(垃圾收集器)的形式。 使用本文描述的技术设计或变换的算法,共享对象实现和/或机制使用无锁指针操作来提供存储的显式回收。 转换可以应用于无锁算法和共享对象实现,并保持这种算法和实现的锁定自由度。 因此,依赖于垃圾回收执行环境的现有和将来的无锁算法和共享对象实现可以在不提供垃圾回收的环境中被利用。 此外,使用如本文所述的无锁定指针操作的使用显式回收存储的算法和共享对象实现可以用于实现垃圾收集器本身。

    Software Transactional Memory for Dynamically Sizable Shared Data Structures
    4.
    发明申请
    Software Transactional Memory for Dynamically Sizable Shared Data Structures 有权
    用于动态相似的共享数据结构的软件事务内存

    公开(公告)号:US20110138134A1

    公开(公告)日:2011-06-09

    申请号:US13030992

    申请日:2011-02-18

    IPC分类号: G06F12/00

    摘要: We propose a new form of software transactional memory (STM) designed to support dynamic-sized data structures, and we describe a novel non-blocking implementation. The non-blocking property we consider is obstruction-freedom. Obstruction-freedom is weaker than lock-freedom; as a result, it admits substantially simpler and more efficient implementations. An interesting feature of our obstruction-free STM implementation is its ability to use of modular contention managers to ensure progress in practice.

    摘要翻译: 我们提出了一种旨在支持动态大小的数据结构的新形式的软件事务内存(STM),我们描述了一种新的非阻塞实现。 我们认为的非阻塞性是阻碍自由。 障碍自由弱于锁定自由; 因此,它承认基本上更简单和更有效的实现。 我们无障碍STM实施的一个有趣的特征是其使用模块化竞争管理人员确保实践进度的能力。

    Obstruction-free synchronization for shared data structures
    6.
    发明授权
    Obstruction-free synchronization for shared data structures 有权
    共享数据结构无障碍同步

    公开(公告)号:US08244990B2

    公开(公告)日:2012-08-14

    申请号:US10620748

    申请日:2003-07-16

    IPC分类号: G06F12/00 G06F13/00 G06F13/28

    摘要: We introduce obstruction-freedom—a new non-blocking condition for shared data structures that weakens the progress requirements of traditional nonblocking conditions, and as a result admits solutions that are significantly simpler and more efficient in the typical case of low contention. We demonstrate the merits of obstruction-freedom by showing how to implement an obstruction-free double-ended queue that has better properties than any previous nonblocking deque implementation of which we are aware. The beauty of obstruction-freedom is that we can modify and experiment with the contention management mechanisms without needing to modify (and therefore reverify) the underlying non-blocking algorithm. In contrast, work on different mechanisms for guaranteeing progress in the context of lock-free and wait-free algorithms has been hampered by the fact that modifications to the “helping” mechanisms has generally required the proofs for the entire algorithm to be done again.

    摘要翻译: 我们引入阻碍自由 - 一种新的非阻塞条件,用于共享数据结构,从而削弱传统非阻塞条件的进度要求,从而承认在低竞争的典型情况下,解决方案显着简化和更有效率。 我们通过展示如何实现无阻塞的双端口队列,证明阻塞自由的优点,该队列具有比以前任何我们所知道的任何以前的非阻塞deque实现更好的性能。 阻碍自由的优点在于,我们可以修改和尝试竞争管理机制,而无需修改(并因此重新验证)底层的非阻塞算法。 相比之下,在“无障碍和无等待”算法的上下文中保证进度的不同机制的工作受到以下事实的阻碍:对“帮助”机制的修改通常需要再次完成整个算法的证明。

    Software transactional memory for dynamically sizable shared data structures
    7.
    发明授权
    Software transactional memory for dynamically sizable shared data structures 有权
    用于动态大小的共享数据结构的软件事务内存

    公开(公告)号:US08176264B2

    公开(公告)日:2012-05-08

    申请号:US13030992

    申请日:2011-02-18

    IPC分类号: G06F12/00

    摘要: We propose a new form of software transactional memory (STM) designed to support dynamic-sized data structures, and we describe a novel non-blocking implementation. The non-blocking property we consider is obstruction-freedom. Obstruction-freedom is weaker than lock-freedom; as a result, it admits substantially simpler and more efficient implementations. An interesting feature of our obstruction-free STM implementation is its ability to use of modular contention managers to ensure progress in practice.

    摘要翻译: 我们提出了一种旨在支持动态大小的数据结构的新形式的软件事务内存(STM),并且我们描述了一种新的非阻塞实现。 我们认为的非阻塞性是阻碍自由。 障碍自由弱于锁定自由; 因此,它承认基本上更简单和更有效的实现。 我们无障碍STM实施的一个有趣的特征是其使用模块化竞争管理人员确保实践进度的能力。

    Ensuring progress in a system that supports execution of obstruction-free operations
    8.
    发明授权
    Ensuring progress in a system that supports execution of obstruction-free operations 有权
    确保在支持执行无障碍操作的系统中取得进展

    公开(公告)号:US07475228B2

    公开(公告)日:2009-01-06

    申请号:US11325062

    申请日:2006-01-03

    IPC分类号: G06F9/52

    CPC分类号: G06F9/52

    摘要: One embodiment of the present invention provides a system that ensures that progress is made in an environment that supports execution of obstruction-free operations. During execution, when a process pi invokes an operation, the system checks a panic flag, which indicates whether a progress-ensuring mechanism is to be activated. If the panic flag is set, the progress-ensuring mechanism is activated, which causes the system to attempt to perform the operation by coordinating actions between processes to ensure that progress is made in spite of contention between the processes. On the other hand, if the panic flag is not set, the system attempts to perform the operation essentially as if the progress-ensuring mechanism were not present. In this case, if there is an indication that contention between processes is impeding progress, the system sets the panic flag, which causes the progress-ensuring mechanism to be activated so that processes will coordinate their actions to ensure that progress is made.

    摘要翻译: 本发明的一个实施例提供一种确保在支持执行无障碍操作的环境中进行的系统。 在执行期间,当进程pi调用操作时,系统检查一个紧急标志,指示是否激活进度保证机制。 如果设置了恐慌标志,则会启动进度保证机制,从而使系统尝试通过协调进程之间的动作来尝试执行操作,以确保进程尽可能在进程之间发生争用。 另一方面,如果不设置紧急状态标志,则系统试图执行操作,基本上就像进度保证机制不存在一样。 在这种情况下,如果存在进程之间的争用妨碍进展的指示,则系统设置紧急标志,这导致进程确保机制被激活,以便进程将协调其动作以确保进行进展。

    Space- and time-adaptive nonblocking algorithms
    9.
    发明授权
    Space- and time-adaptive nonblocking algorithms 有权
    空间和时间自适应非阻塞算法

    公开(公告)号:US07395274B2

    公开(公告)日:2008-07-01

    申请号:US10621078

    申请日:2003-07-16

    IPC分类号: G06F9/54

    摘要: We explore techniques for designing nonblocking algorithms that do not require advance knowledge of the number of processes that participate, whose time complexity and space consumption both adapt to various measures, rather than being based on predefined worst-case scenarios, and that cannot be prevented from future memory reclamation by process failures. These techniques can be implemented using widely available hardware synchronization primitives. We present our techniques in the context of solutions to the well-known Collect problem. We also explain how our techniques can be exploited to achieve other results with similar properties; these include long-lived renaming and dynamic memory management for nonblocking data structures.

    摘要翻译: 我们探索设计非阻塞算法的技术,这些算法不需要提前了解参与的进程数量,其时间复杂度和空间消耗都适应各种测量,而不是基于预定义的最坏情况,并且不能防止 未来内存回收过程失败。 可以使用广泛可用的硬件同步原语来实现这些技术。 我们在众所周知的收集问题的解决方案的背景下介绍我们的技术。 我们还解释了如何利用我们的技术来实现具有相似属性的其他结果; 这些包括用于非阻塞数据结构的长期重命名和动态内存管理。

    Space-and time-adaptive nonblocking algorithms
    10.
    发明授权
    Space-and time-adaptive nonblocking algorithms 有权
    空间和时间自适应非阻塞算法

    公开(公告)号:US08019785B2

    公开(公告)日:2011-09-13

    申请号:US12130635

    申请日:2008-05-30

    IPC分类号: G06F7/00

    摘要: We explore techniques for designing nonblocking algorithms that do not require advance knowledge of the number of processes that participate, whose time complexity and space consumption both adapt to various measures, rather than being based on predefined worst-case scenarios, and that cannot be prevented from future memory reclamation by process failures. These techniques can be implemented using widely available hardware synchronization primitives. We present our techniques in the context of solutions to the well-known Collect problem. We also explain how our techniques can be exploited to achieve other results with similar properties; these include long-lived renaming and dynamic memory management for nonblocking data structures.

    摘要翻译: 我们探索设计非阻塞算法的技术,这些算法不需要提前了解参与过程的数量,其时间复杂度和空间消耗都适应于各种测量,而不是基于预定义的最坏情况,并且不能防止 未来内存回收过程失败。 可以使用广泛可用的硬件同步原语来实现这些技术。 我们在众所周知的收集问题的解决方案的背景下介绍我们的技术。 我们还解释了如何利用我们的技术来实现具有相似属性的其他结果; 这些包括用于非阻塞数据结构的长期重命名和动态内存管理。