Method and system for implementing a concurrent set of objects
    81.
    发明申请
    Method and system for implementing a concurrent set of objects 有权
    用于实现一组并发对象的方法和系统

    公开(公告)号:US20080059470A1

    公开(公告)日:2008-03-06

    申请号:US11508762

    申请日:2006-08-23

    IPC分类号: G06F17/30

    CPC分类号: G06F17/30362 G06F17/30958

    摘要: A method for inserting an object into a concurrent set including obtaining a key associated with the object, traversing the concurrent set using a first thread containing the key, identifying a first insertion point while traversing the concurrent set, where the first insertion point is before a current node and after a predecessor node, obtaining a first lock for the predecessor node after identifying the first insertion point, validating the predecessor node and the current node after obtaining the lock, inserting a new node into the concurrent set after validating, where the new node is associated with the object, and releasing the first lock after inserting the new node.

    摘要翻译: 一种用于将对象插入到并发集合中的方法,包括获得与对象相关联的密钥,使用包含密钥的第一线程遍历并发集合,在遍历并发集合的同时识别第一插入点,其中第一插入点在 当前节点,并且在前导节点之后,在识别出第一插入点之后为先前节点获得第一锁定,在获得锁定之后验证前导节点和当前节点,在验证之后将新节点插入并发集合,其中新的 节点与对象相关联,并在插入新节点后释放第一个锁。

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

    公开(公告)号:US07328316B2

    公开(公告)日:2008-02-05

    申请号:US10621072

    申请日:2003-07-16

    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实施的一个有趣的特征是其使用模块化竞争管理人员确保实践进度的能力。

    BREAKPOINTS IN A TRANSACTIONAL MEMORY-BASED REPRESENTATION OF CODE
    83.
    发明申请
    BREAKPOINTS IN A TRANSACTIONAL MEMORY-BASED REPRESENTATION OF CODE 有权
    基于内存的基于代码的代码表示的突破

    公开(公告)号:US20080010532A1

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

    申请号:US11552884

    申请日:2006-10-25

    IPC分类号: G06F11/00

    CPC分类号: G06F11/362

    摘要: Transactional programming promises to substantially simplify the development and maintenance of correct, scalable, and efficient concurrent programs. Designs for supporting transactional programming using transactional memory implemented in hardware, software, and a mixture of the two have emerged recently. However, certain features and capabilities that would be desirable for debugging programs executed using transactional memory are absent from conventional debuggers. Breakpointing is one example of a capability not well supported when conventional debugging technology is applied to transactional memory. We describe techniques by which a debugger may instrument code (or by which a TM library may provide functionality) to direct execution of an atomic block to a code path that facilitates breakpoint handling.

    摘要翻译: 事务性规划将大大简化正确,可扩展和高效并发程序的开发和维护。 最近出现了使用在硬件,软件和两者的混合中实现的事务性存储来支持事务性编程的设计。 然而,对于使用事务性存储器执行的调试程序来说,期望的某些功能和功能在常规调试器中不存在。 断点是传统调试技术应用于事务性存储器时不能很好支持的功能的一个例子。 我们描述了一种调试器可以通过调试器来实现代码(或TM库可以提供功能)的技术,以将原子块的执行指导到便于断点处理的代码路径。

    DELAYED BREAKPOINTS
    84.
    发明申请
    DELAYED BREAKPOINTS 有权
    延迟休息

    公开(公告)号:US20080005193A1

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

    申请号:US11552907

    申请日:2006-10-25

    IPC分类号: G06F17/30

    CPC分类号: G06F11/3644 G06F11/3632

    摘要: Transactional programming promises to substantially simplify the development and maintenance of correct, scalable, and efficient concurrent programs. Designs for supporting transactional programming using transactional memory implemented in hardware, software, and a mixture of the two have emerged recently. Unfortunately, conventional debugging programs are often inadequate when employed in relation to code that employs transactional memory and new or modified techniques are needed. Implementations of delayed breakpoints are described that provide programmers with the benefits of breakpoints in transactional code, while minimizing the side-effects of breakpoints placed inside atomic block.

    摘要翻译: 事务性规划将大大简化正确,可扩展和高效并发程序的开发和维护。 最近出现了使用在硬件,软件和两者的混合中实现的事务性存储来支持事务性编程的设计。 不幸的是,传统的调试程序在采用事务性存储器的代码方面经常是不足够的,需要新的或修改的技术。 描述了延迟断点的实现,为程序员提供事务代码中的断点的好处,同时最小化放置在原子块内的断点的副作用。

    Efficient non-blocking k-compare-single-swap operation
    85.
    发明授权
    Efficient non-blocking k-compare-single-swap operation 有权
    高效无阻塞k-比较 - 单互换操作

    公开(公告)号:US07293143B1

    公开(公告)日:2007-11-06

    申请号:US10670495

    申请日:2003-09-24

    摘要: The design of nonblocking linked data structures using single-location synchronization primitives such as compare-and-swap (CAS) is a complex affair that often requires severe restrictions on the way pointers are used. One way to address this problem is to provide stronger synchronization operations, for example, ones that atomically modify one memory location while simultaneously verifying the contents of others. We provide a simple and highly efficient nonblocking implementation of such an operation: an atomic k-word-compare single-swap operation (KCSS). Our implementation is obstruction-free. As a result, it is highly efficient in the uncontended case and relies on contention management mechanisms in the contended cases. It allows linked data structure manipulation without the complexity and restrictions of other solutions. Additionally, as a building block of some implementations of our techniques, we have developed the first nonblocking software implementation of load-linked/store-conditional that does not severely restrict word size.

    摘要翻译: 使用单一位置同步原语(例如比较和交换(CAS))的非阻塞链接数据结构的设计是一种复杂的事情,通常需要对指针使用方式的严格限制。 解决这个问题的一个方法是提供更强大的同步操作,例如,在同时验证其他内容的同时原子地修改一个存储器位置的同步操作。 我们提供了这样一个操作的简单而高效的非阻塞实现:原子k字比较单交换操作(KCSS)。 我们的实施是无障碍的。 因此,在无争议的情况下是高效的,并且依赖于竞争案件中的争用管理机制。 它允许链接的数据结构操作,而不需要其他解决方案的复杂性和限制。 此外,作为我们技术的一些实现的构建块,我们开发了第一个不会严重限制字大小的无负载连接/存储条件的非阻塞软件实现。

    Lock-free implementation of dynamic-sized shared data structure
    86.
    发明授权
    Lock-free implementation of dynamic-sized shared data structure 有权
    动态大小共享数据结构的无锁实现

    公开(公告)号:US07254597B2

    公开(公告)日:2007-08-07

    申请号:US10340154

    申请日:2003-01-10

    IPC分类号: G06F12/12

    摘要: Solutions to a value recycling problem that we define herein facilitate implementations of computer programs that may execute as multithreaded computations in multiprocessor computers, as well as implementations of related shared data structures. Some exploitations of the techniques described herein allow non-blocking, shared data structures to be implemented using standard dynamic allocation mechanisms (such as malloc and free). A variety of solutions to the proposed value recycling problem may be implemented. A class of general solutions to value recycling is described in the context of an illustration we call the Repeat Offender Problem (ROP), including illustrative Application Program Interfaces (APIs) defined in terms of the ROP terminology. Furthermore, specific solutions, implementations and algorithm, including a Pass-The-Buck (PTB) implementation are also described. Solutions to the value recycling problem can be applied in a variety of ways to implement dynamic-sized data structures.

    摘要翻译: 我们在这里定义的价值回收问题的解决方案便于在多处理器计算机中作为多线程计算执行的计算机程序的实现,以及相关共享数据结构的实现。 本文描述的技术的一些利用允许使用标准动态分配机制(诸如malloc和free)来实现非阻塞的共享数据结构。 可以实施提出的价值回收问题的各种解决方案。 在我们称为重复违规问题(ROP)的例证的上下文中描述了一类价值回收的一般解决方案,包括根据ROP术语定义的说明性应用程序接口(API)。 此外,还描述了包括通过降压(PTB)实现的具体解决方案,实现和算法。 价值回收问题的解决方案可以以各种方式应用于实现动态大小的数据结构。

    Lock-free implementation of concurrent shared object with dynamic node allocation and distinguishing pointer value
    87.
    发明授权
    Lock-free implementation of concurrent shared object with dynamic node allocation and distinguishing pointer value 有权
    并行共享对象的锁定实现与动态节点分配和区分指针值

    公开(公告)号:US06826757B2

    公开(公告)日:2004-11-30

    申请号:US09837670

    申请日:2001-04-18

    IPC分类号: G06F946

    CPC分类号: G06F9/52

    摘要: A novel linked-list-based concurrent shared object implementation has been developed that provides non-blocking and linearizable access to the concurrent shared object. In an application of the underlying techniques to a deque, non-blocking completion of access operations is achieved without restricting concurrency in accessing the deque's two ends. In various realizations in accordance with the present invention, the set of values that may be pushed onto a shared object is not constrained by use of distinguishing values. In addition, an explicit reclamation embodiment facilitates use in environments or applications where automatic reclamation of storage is unavailable or impractical.

    摘要翻译: 已经开发了一种基于链表的并行共享对象实现,它提供对并发共享对象的非阻塞和线性化访问。 在底层技术应用于deque时,实现访问操作的非阻塞完成,而不会限制访问deque的两端的并发性。 在根据本发明的各种实现中,可以推送到共享对象上的值集合不受使用区分值的约束。 此外,显式的回收实施例有利于在存储器的自动回收不可用或不切实际的环境或应用中使用。

    Obstruction-free synchronization for shared data structures
    88.
    发明授权
    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
    89.
    发明授权
    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实施的一个有趣的特征是其使用模块化竞争管理人员确保实践进度的能力。

    Delayed breakpoints
    90.
    发明授权
    Delayed breakpoints 有权
    延迟断点

    公开(公告)号:US07840947B2

    公开(公告)日:2010-11-23

    申请号:US11552907

    申请日:2006-10-25

    IPC分类号: G06F9/44 G06F17/00

    CPC分类号: G06F11/3644 G06F11/3632

    摘要: Transactional programming promises to substantially simplify the development and maintenance of correct, scalable, and efficient concurrent programs. Designs for supporting transactional programming using transactional memory implemented in hardware, software, and a mixture of the two have emerged recently. Unfortunately, conventional debugging programs are often inadequate when employed in relation to code that employs transactional memory and new or modified techniques are needed. Implementations of delayed breakpoints are described that provide programmers with the benefits of breakpoints in transactional code, while minimizing the side-effects of breakpoints placed inside atomic block.

    摘要翻译: 事务性规划将大大简化正确,可扩展和高效并发程序的开发和维护。 最近出现了使用在硬件,软件和两者的混合中实现的事务性存储来支持事务性编程的设计。 不幸的是,传统的调试程序在采用事务性存储器的代码方面经常是不足够的,需要新的或修改的技术。 描述了延迟断点的实现,为程序员提供事务代码中的断点的好处,同时最小化放置在原子块内的断点的副作用。