Finalizable object usage in software transactions
    3.
    发明授权
    Finalizable object usage in software transactions 有权
    软件交易中的可终止对象使用

    公开(公告)号:US07650371B2

    公开(公告)日:2010-01-19

    申请号:US11639021

    申请日:2006-12-14

    IPC分类号: G06F7/00

    摘要: Various technologies and techniques are disclosed for providing a software transactional memory system that supports allocation and use of finalizable objects inside transactions. By supporting such finalizable object usage inside a software transactional memory system, correct behavior is maintained when a garbage collector must determine when a particular one or more of the objects are eligible for finalization. A to-be-finalized set is provided for a transaction. An object is placed into the to-be-finalized set for the transaction whenever a finalizable object is allocated within the transaction. A finalize indicator is set for each object in the to-be-finalized set at an appropriate time to indicate that the objects are eligible for finalization. For example, if the transaction is ready to commit and the transaction is an open transaction, then the to-be-finalized set is traversed and a finalize indicator is set for each object to indicate they are eligible for finalization.

    摘要翻译: 公开了各种技术和技术,用于提供支持交易内部可完成对象的分配和使用的软件事务性存储器系统。 通过在软件事务内存系统中支持这种可终止的对象使用,当垃圾收集器必须确定何时特定的一个或多个对象有资格进行最终确定时,将维持正确的行为。 为交易提供一个即将完成的集合。 每当在事务中分配一个可终结的对象时,一个对象被放置到事务处理的集合中。 在适当的时间为待确定的集合中的每个对象设置一个最终化指标,以指示对象有资格进行最终确定。 例如,如果事务准备好提交并且事务是开放事务,则将遍历待定的集合,并为每个对象设置一个终结指示符,以指示它们有资格进行最终确定。

    Parallel nested transactions in transactional memory
    4.
    发明申请
    Parallel nested transactions in transactional memory 有权
    事务内存中的并行嵌套事务

    公开(公告)号:US20090077083A1

    公开(公告)日:2009-03-19

    申请号:US11901647

    申请日:2007-09-18

    IPC分类号: G06F17/30

    摘要: Various technologies and techniques are disclosed for supporting parallel nested transactions in a transactional memory system. Multiple closed nested transactions are created for a single parent transaction, and the closed nested transactions are executed concurrently as parallel nested transactions. Various techniques are used to ensure effects of the parallel nested transactions are hidden from other transactions outside the parent transaction until the parent transaction commits. For example, versioned write locks are used with parallel nested transactions. When a transactional memory word changes from a write lock to a versioned write lock, an entry is made in a global versioned write lock map to store a pointer to a write log entry that the versioned write lock replaced. When the versioned write lock is encountered during transaction processing, the global versioned write lock map is consulted to translate the versioned write lock to the pointer to the write log entry.

    摘要翻译: 公开了用于支持事务存储器系统中的并行嵌套事务的各种技术和技术。 为单个父事务创建多个封闭的嵌套事务,并且封闭的嵌套事务将作为并行嵌套事务并发执行。 使用各种技术来确保并行嵌套事务对父事务之外的其他事务的影响,直到父事务提交为止。 例如,版本化的写锁与并行嵌套事务一起使用。 当事务性内存单词从写入锁定更改为版本化写入锁定时,将在全局版本化写入锁定映射中创建一个条目,以存储指向版本化写入锁定替换的写入日志条目的指针。 当在事务处理期间遇到版本化的写锁时,请参考全局版本的写入锁定映射,以将版本化的写锁定转换为写入日志条目的指针。

    Transactional memory using buffered writes and enforced serialization order
    5.
    发明申请
    Transactional memory using buffered writes and enforced serialization order 有权
    事务内存使用缓冲写入和强制序列化顺序

    公开(公告)号:US20080256073A1

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

    申请号:US11786174

    申请日:2007-04-11

    IPC分类号: G06F17/30

    CPC分类号: G06F9/528

    摘要: Various technologies and techniques are disclosed that support buffered writes and enforced serialization order in a software transactional memory system. A buffered write process is provided that performs writes to shadow copies of objects and writes content back to the objects after validating a respective transaction during commit. When a write lock is first obtained for a particular transaction, a shadow copy is made of a particular object. Writes are performed to and reads from the shadow copy. After validating the particular transaction during commit, content is written from the shadow copy to the particular object. A transaction ordering process is provided that ensures that an order in which the transactions are committed matches an abstract serialization order of the transactions. Transactions are not allowed to commit until their ticket number matches a global number that tracks the next transaction that should commit.

    摘要翻译: 公开了各种技术和技术,其支持软件事务存储器系统中的缓冲写入和强制序列化顺序。 提供缓冲的写入过程,其在对象的卷影副本执行写入,并且在提交期间验证相应的事务之后将内容写回到对象。 当一个特定的事务首次获得一个写锁定时,一个影子副本是由一个特定的对象组成的。 写入被执行并从卷影副本中读取。 在提交期间验证特定事务后,将内容从卷影副本写入特定对象。 提供了事务排序过程,其确保事务被提交的顺序与事务的抽象序列化顺序相匹配。 事务不允许提交,直到他们的机票号码跟踪跟踪下一个应该提交的事务的全局号码。

    Finalizable object usage in software transactions
    6.
    发明申请
    Finalizable object usage in software transactions 有权
    软件交易中的可终止对象使用

    公开(公告)号:US20080147757A1

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

    申请号:US11639021

    申请日:2006-12-14

    IPC分类号: G06F17/30 G06F12/00

    摘要: Various technologies and techniques are disclosed for providing a software transactional memory system that supports allocation and use of finalizable objects inside transactions. By supporting such finalizable object usage inside a software transactional memory system, correct behavior is maintained when a garbage collector must determine when a particular one or more of the objects are eligible for finalization. A to-be-finalized set is provided for a transaction. An object is placed into the to-be-finalized set for the transaction whenever a finalizable object is allocated within the transaction. A finalize indicator is set for each object in the to-be-finalized set at an appropriate time to indicate that the objects are eligible for finalization. For example, if the transaction is ready to commit and the transaction is an open transaction, then the to-be-finalized set is traversed and a finalize indicator is set for each object to indicate they are eligible for finalization.

    摘要翻译: 公开了各种技术和技术,用于提供支持交易内部可完成对象的分配和使用的软件事务性存储器系统。 通过在软件事务内存系统中支持这种可终止的对象使用,当垃圾收集器必须确定何时特定的一个或多个对象有资格进行最终确定时,将维持正确的行为。 为交易提供一个即将完成的集合。 每当在事务中分配一个可终结的对象时,一个对象被放置到事务处理的集合中。 在适当的时间为待确定的集合中的每个对象设置一个最终化指标,以指示对象有资格进行最终确定。 例如,如果事务准备好提交并且事务是开放事务,则将遍历待定的集合,并为每个对象设置一个终结指示符,以指示它们有资格进行最终确定。

    Support for stack read and write operations
    7.
    发明申请
    Support for stack read and write operations 有权
    支持堆栈读写操作

    公开(公告)号:US20080127150A1

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

    申请号:US11499012

    申请日:2006-08-04

    IPC分类号: G06F9/45

    CPC分类号: G06F8/443 G06F9/466

    摘要: Various technologies and techniques facilitate stack read and write operations in a software transactional memory system. If the compiler determines that an address for a variable in a code segment is a stack location, the stack location is live on entry, and the address of the variable has not been taken and passed to another thread, the code is changed to ensure failure atomicity. One example includes modifying the code so a shadow copy is saved for local variables that are live on entry. If the same prior criteria are true except the stack location is not live on entry, the code is optimized by ensuring code for logging and software transactional memory operations are not included. If the compiler does not know the address is the stack location or that the address is not passed to another thread, the code is changed to ensure failure and concurrency atomicity.

    摘要翻译: 各种技术和技术有助于在软件事务存储系统中的堆栈读写操作。 如果编译器确定代码段中的变量的地址是堆栈位置,则堆栈位置是实时的,并且变量的地址未被采用并传递给另一个线程,代码被更改以确保失败 原子性。 一个例子包括修改代码,以便为存在于条目的局部变量保存卷影副本。 如果相同的先前条件是真实的,除了堆栈位置不存在进入,则通过确保不包括日志记录代码和软件事务内存操作来优化代码。 如果编译器不知道地址是堆栈位置还是地址未传递给另一个线程,则代码将被更改以确保失败和并发原子性。

    Method and apparatus for decreasing object copying by a generational, copying garbage collector
    8.
    发明申请
    Method and apparatus for decreasing object copying by a generational, copying garbage collector 有权
    复制垃圾收集器,用于减少对象复制的方法和装置

    公开(公告)号:US20070174370A1

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

    申请号:US11331376

    申请日:2006-01-12

    IPC分类号: G06F17/30

    CPC分类号: G06F12/0276 Y10S707/99957

    摘要: In a generational, copying garbage collector, young generation collection may be made more efficient by dynamically measuring object survival rates as a function of “fine-grained” allocation age, and choosing, on the basis of these survival rates, part of the young generation that will be not be collected, but instead scanned for pointers to objects in the rest of the young generation. The rest of the young generation, including objects referenced by the pointers, is then collected.

    摘要翻译: 在一代人复制垃圾收集器中,年轻一代的收集可以通过动态地测量对象存活率作为“细粒度”分配年龄的函数而变得更有效率,并且基于这些存活率来选择年轻一代的一部分 这将不被收集,而是扫描指向其他年轻一代的对象的指针。 然后收集年轻一代的其余部分,包括指针引用的对象。

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

    公开(公告)号:US20060218561A1

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

    申请号:US11343678

    申请日:2006-01-30

    IPC分类号: G06F9/46

    摘要: 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.

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

    Concurrent handling of exceptions in received aggregate exception structure with supplied exception handlers and marking handled exceptions
    10.
    发明授权
    Concurrent handling of exceptions in received aggregate exception structure with supplied exception handlers and marking handled exceptions 有权
    在接收到的聚合异常结构中并发处理异常,并提供异常处理程序和标记处理的异常

    公开(公告)号:US08271768B2

    公开(公告)日:2012-09-18

    申请号:US12948564

    申请日:2010-11-17

    IPC分类号: G06F9/40

    摘要: Various technologies and techniques are disclosed for providing concurrent exception handling. When one or more exceptions are received from concurrent workers, one or more exception handler functions are supplied. For each respective exception in the exception results, determine if the respective exception is one of a kind of exceptions handled by the one or more exception handler functions. If the respective exception is one of a kind handled by the exception handler functions, then run a particular handler of the exception handler functions and mark the respective exception as handled. Any unhandled exceptions are then processed appropriately. In one implementation, a collection of input data is processed to produce a collection of output results, with the exceptions being interleaved with other output results. In another implementation, a particular exception is selected that represents the multiple exceptions. The selected one particular exception is then thrown.

    摘要翻译: 公开了用于提供并发异常处理的各种技术和技术。 当从并发工作者接收到一个或多个异常时,提供一个或多个异常处理函数。 对于异常结果中的每个异常,确定相应的异常是否是由一个或多个异常处理函数处理的一种异常之一。 如果相应的异常是由异常处理函数处理的异常之一,则运行异常处理函数的特定处理程序,并将相应异常标记为已处理。 然后适当处理任何未处理的异常。 在一个实现中,处理输入数据的集合以产生输出结果的集合,除了与其他输出结果交错。 在另一个实现中,选择表示多个异常的特定异常。 然后抛出所选的一个特殊异常。