Defer separating children in parallel copying garbage collection
    1.
    发明授权
    Defer separating children in parallel copying garbage collection 失效
    延迟分离儿童并行复制垃圾收集

    公开(公告)号:US08694751B2

    公开(公告)日:2014-04-08

    申请号:US12347256

    申请日:2008-12-31

    IPC分类号: G06F13/00

    CPC分类号: G06F9/52 G06F12/0276

    摘要: Automatic memory management with a generational copy collector garbage collection algorithm running on parallel threads to perform simultaneous and independent copying and scanning. An object is scanned. It is determined whether an object referenced within the slot of the object being scanned may be copied to the same generation as the scanned object. A mark may be made to indicate that the referenced object may be copied to a different generation than the scanned object. The mark defers the copying of the referenced object.

    摘要翻译: 自动内存管理与代码复制收集器垃圾收集算法运行在并行线程上,以执行同时独立的复制和扫描。 扫描物体。 确定被扫描对象的槽内引用的对象是否可以复制到与扫描对象相同的一代。 可以进行标记以指示所引用的对象可能被复制到与扫描对象不同的一代。 标记会延迟引用对象的复制。

    Computer-implemented method, system and program product for establishing multiple read-only locks on a shared data object
    2.
    发明授权
    Computer-implemented method, system and program product for establishing multiple read-only locks on a shared data object 有权
    用于在共享数据对象上建立多个只读锁的计算机实现的方法,系统和程序产品

    公开(公告)号:US07823150B2

    公开(公告)日:2010-10-26

    申请号:US11042778

    申请日:2005-01-25

    IPC分类号: G06F9/46

    CPC分类号: G06F9/526 G06F2209/523

    摘要: Under the present invention, a locking primitive associated with a shared data object is automatically transformed to allow multiple read-only locks if certain conditions are met. To this extent, when a read-only lock on a shared data object is desired, a thread identifier of an object header lock word (hereinafter “lock word”) associated with the shared data object is examined to determine if a read-write lock on the shared data object already exists. If not, then the thread identifier is set to a predetermined value indicative of read-only locks, and a thread count in the lock word is incremented. If another thread attempts a read-only lock, the thread identifier will be examined for the predetermined value. If it is present, the thread count will be incremented again, and a second read-only lock will be simultaneously established.

    摘要翻译: 在本发明中,如果满足某些条件,则与共享数据对象相关联的锁定原语被自动转换以允许多个只读锁。 在这种情况下,当需要共享数据对象上的只读锁时,检查与共享数据对象相关联的对象头锁定字(以下称为“锁字”)的线程标识符,以确定是否读写锁 对共享数据对象已经存在。 如果不是,则将线程标识符设置为指示只读锁定的预定值,并且增加锁定字中的线程数。 如果另一个线程尝试只读锁,则将检查线程标识符的预定值。 如果它存在,则线程计数将再次递增,并且将同时建立第二个只读锁。

    LOCK RESERVATION USING COOPERATIVE MULTITHREADING AND LIGHTWEIGHT SINGLE READER RESERVED LOCKS
    3.
    发明申请
    LOCK RESERVATION USING COOPERATIVE MULTITHREADING AND LIGHTWEIGHT SINGLE READER RESERVED LOCKS 失效
    使用合作多用途和轻型单读取器保留锁定的锁定预留

    公开(公告)号:US20090064094A1

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

    申请号:US11845364

    申请日:2007-08-27

    IPC分类号: G06F9/44

    摘要: A method for lock reservation using cooperative multithreading is provided. The method includes analyzing code containing async points to support cooperative multithreading. The method also includes identifying a class of code as a candidate for reservation via determining locking properties within the code as a function of locations of async points within the code, and generating reserving code that reserves the shared object when code performing the reservation is considered hot code. The method further includes performing runtime monitoring of reservation performance to detect a contention level for the shared object, and removing the reservation when the runtime monitoring determines that a low level of contention exists. A method for lightweight single reader reserved locks is also provided, including identifying a candidate for reservation containing a read-only locking sequence, conditionally marling the sequence, and generating code using an artificial dependency to control execution order of out-of-line code.

    摘要翻译: 提供一种使用协作多线程进行锁定预约的方法。 该方法包括分析包含异步点的代码以支持协作多线程。 该方法还包括通过根据代码内的异步点的位置确定代码内的锁定属性,将代码类别识别为候选者,并且在执行预约的代码被认为是热的时候产生保留共享对象的预留代码 码。 该方法还包括执行对预留性能的运行时监视以检测共享对象的争用级别,以及当运行时监视确定存在低级别的争用时,去除该预留。 还提供了一种用于轻量级单读取器保留锁的方法,包括识别包含只读锁定序列的预约候选,有条件地对序列进行绑定,以及使用人为依赖来生成代码来控制代码的执行顺序。

    Transforming locks in software loops
    4.
    发明授权
    Transforming locks in software loops 失效
    在软件循环中转换锁

    公开(公告)号:US08276134B2

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

    申请号:US12135311

    申请日:2008-06-09

    IPC分类号: G06F9/45

    CPC分类号: G06F8/443 Y10S707/99938

    摘要: An improved system and computer programming product for acquisition and release of locks within a software program is disclosed. In an exemplary embodiment, a lock within a loop is transformed by relocating acquisition and release instructions from within the loop to positions outside the loop. This may significantly decrease unnecessarily lock acquisition and release during execution of the software program. In order to avoid contention problems which may arise from acquiring and keeping a lock on an object over a relatively long period of time, a contention test may be inserted into the loop. Such a contention test may temporarily release the lock if another thread in the software program requires access to the locked object.

    摘要翻译: 公开了用于在软件程序内采集和释放锁的改进的系统和计算机程序设计产品。 在示例性实施例中,通过将采集和释放指令从循环内的位置重新定位到环路外的位置来变换环路内的锁定。 这可能会在执行软件程序时不必要地锁定获取和释放。 为了避免在相对长的时间段内获取和保持对象的锁定可能引起的争用问题,可以将竞争测试插入到循环中。 如果软件程序中的另一个线程需要访问被锁定的对象,则这样的争用测试可临时释放该锁。

    Defer Separating Children in Parallel Copying Garbage Collection
    5.
    发明申请
    Defer Separating Children in Parallel Copying Garbage Collection 失效
    并行复制垃圾收集时分散儿童

    公开(公告)号:US20100169593A1

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

    申请号:US12347256

    申请日:2008-12-31

    IPC分类号: G06F12/16 G06F12/00 G06F9/46

    CPC分类号: G06F9/52 G06F12/0276

    摘要: Automatic memory management with a generational copy collector garbage collection algorithm running on parallel threads to perform simultaneous and independent copying and scanning. An object is scanned. It is determined whether an object referenced within the slot of the object being scanned may be copied to the same generation as the scanned object. A mark may be made to indicate that the referenced object may be copied to a different generation than the scanned object. The mark defers the copying of the referenced object.

    摘要翻译: 自动内存管理与代码复制收集器垃圾收集算法运行在并行线程上,以执行同时独立的复制和扫描。 扫描物体。 确定被扫描对象的槽内引用的对象是否可以复制到与扫描对象相同的一代。 可以进行标记以指示所引用的对象可能被复制到与扫描对象不同的一代。 标记会延迟引用对象的复制。

    COPY-ON-WRITE OPTIMIZATION OF IMMUTABLE OBJECTS FOR OBJECT ORIENTED LANGUAGES
    6.
    发明申请
    COPY-ON-WRITE OPTIMIZATION OF IMMUTABLE OBJECTS FOR OBJECT ORIENTED LANGUAGES 失效
    面向对象语言的不可复制对象的复制优化

    公开(公告)号:US20090031292A1

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

    申请号:US11782148

    申请日:2007-07-24

    IPC分类号: G06F9/45

    CPC分类号: G06F9/4493

    摘要: A computer implemented method, apparatus, and computer program product for copy-on-write optimization of immutable objects. An immutable object is marked as read-only to form a read-only object. The read-only object is formed to delay copying of the immutable object until a runtime determination is made that a write to the immutable object will be made. In response to an attempt to write to the read-only object, an internal value of the read-only object is copied to read-and-write storage using runtime information to form a writable copy of the read-only object. A set of references for the read-only object is updated to point to the writable copy of the read-only object. Delaying copying of the immutable object optimizes a copy-on-write of the immutable object.

    摘要翻译: 一种计算机实现的方法,装置和计算机程序产品,用于不可变对象的写时优化。 不可变对象被标记为只读对象以形成只读对象。 形成只读对象以延迟不可变对象的复制,直到进行到不可变对象的写入的运行时确定为止。 为了响应写入只读对象的尝试,只读对象的内部值将使用运行时信息复制到读写存储,以形成只读对象的可写副本。 只读对象的一组引用被更新为指向只读对象的可写副本。 延迟复制不可变对象优化了不可变对象的写时复制。

    Transforming locks in software loops
    7.
    发明授权
    Transforming locks in software loops 失效
    在软件循环中转换锁

    公开(公告)号:US07404183B2

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

    申请号:US10845542

    申请日:2004-05-13

    CPC分类号: G06F8/443 Y10S707/99938

    摘要: An improved method and system for acquisition and release of locks within a software program is disclosed. In an exemplary embodiment, a lock within a loop is transformed by relocating acquisition and release instructions from within the loop to positions outside the loop. This may significantly decrease unnecessarily lock acquisition and release during execution of the software program. In order to avoid contention problems which may arise from acquiring and keeping a lock on an object over a relatively long period of time, a contention test may be inserted into the loop. Such a contention test may temporarily release the lock if another thread in the software program requires access to the locked object.

    摘要翻译: 公开了用于在软件程序内采集和释放锁的改进的方法和系统。 在示例性实施例中,通过将采集和释放指令从循环内的位置重新定位到环路外的位置来变换环路内的锁定。 这可能会在执行软件程序时不必要地锁定获取和释放。 为了避免在相对长的时间段内获取和保持对象的锁定可能引起的争用问题,可以将竞争测试插入到循环中。 如果软件程序中的另一个线程需要访问被锁定的对象,则这样的争用测试可临时释放该锁。

    Code optimization when using multiple reader locks and a non-reader lock
    8.
    发明授权
    Code optimization when using multiple reader locks and a non-reader lock 有权
    使用多个读卡器锁和非读卡器锁时的代码优化

    公开(公告)号:US08230409B2

    公开(公告)日:2012-07-24

    申请号:US11864401

    申请日:2007-09-28

    IPC分类号: G06F9/45

    CPC分类号: G06F8/458

    摘要: A way to use multiple-reader locks for those paths where no writes occur is provided. Only if one of the writing paths executes will a full writer lock be acquired. Two copies of the critical section comprising a reading version and a writing version are created. The default execution leads to the reader version, which only acquires a reader-lock. The reader version of the code executes prior to execution of the writer lock only version, otherwise bypassing the writer lock only version. If the execution leads to a path in which a write would occur, the reader only version branches to the beginning of the writer version. The writer version is identical to the original code and obtains a full writer lock. If execution in the reader lock does not lead to a path that writes, then only the reader lock is acquired.

    摘要翻译: 提供了一种在不发生写入的路径上使用多读卡器锁的方式。 只有执行写入路径之一才能获取完整的写入器锁。 创建了包含读取版本和写入版本的关键部分的两个副本。 默认执行导致读取器版本,它只获取读取器锁定。 代码读取器版本在执行写入器锁定版本之前执行,否则绕过写入器锁定版本。 如果执行导致发生写入的路径,则只读版本分支到写入器版本的开头。 作者版本与原始代码相同,并获得完整的作者锁。 如果读卡器锁中的执行不会导致写入路径,则只能读取读卡器锁。

    Methods and Systems for Improving Hash Table Performance
    9.
    发明申请
    Methods and Systems for Improving Hash Table Performance 有权
    改进哈希表表现的方法和系统

    公开(公告)号:US20090271366A1

    公开(公告)日:2009-10-29

    申请号:US12109444

    申请日:2008-04-25

    IPC分类号: G06F17/30

    CPC分类号: G06F17/30949

    摘要: Methods and systems for generating a hashcode for a hash table are provided to improve the hash table performance. A particular method includes receiving an input of a key; applying a hash function to the key to generate an incoming hashcode of the key; encoding a key type into the incoming hashcode to generate a first hashcode; and storing the first hashcode. A particular method includes encoding the key type into at least one bit of a bucket index portion of the incoming hashcode.

    摘要翻译: 提供了用于生成散列表的哈希码的方法和系统,以改善散列表的性能。 特定方法包括接收密钥的输入; 对所述密钥应用哈希函数以生成所述密钥的传入哈希码; 将密钥类型编码到所述传入哈希码中以生成第一哈希码; 并存储第一个哈希码。 一种特定的方法包括将密钥类型编码到传入哈希码的桶索引部分的至少一个比特中。

    Computer-implemented method, system and program product for establishing multiple read-only locks on a shared data object
    10.
    发明申请
    Computer-implemented method, system and program product for establishing multiple read-only locks on a shared data object 有权
    用于在共享数据对象上建立多个只读锁的计算机实现的方法,系统和程序产品

    公开(公告)号:US20060168585A1

    公开(公告)日:2006-07-27

    申请号:US11042778

    申请日:2005-01-25

    IPC分类号: G06F9/46

    CPC分类号: G06F9/526 G06F2209/523

    摘要: Under the present invention, a locking primitive associated with a shared data object is automatically transformed to allow multiple read-only locks if certain conditions are met. To this extent, when a read-only lock on a shared data object is desired, a thread identifier of an object header lock word (hereinafter “lock word”) associated with the shared data object is examined to determine if a read-write lock on the shared data object already exists. If not, then the thread identifier is set to a predetermined value indicative of read-only locks, and a thread count in the lock word is incremented. If another thread attempts a read-only lock, the thread identifier will be examined for the predetermined value. If it is present, the thread count will be incremented again, and a second read-only lock will be simultaneously established.

    摘要翻译: 在本发明中,如果满足某些条件,则与共享数据对象相关联的锁定原语被自动转换以允许多个只读锁。 在这种情况下,当需要共享数据对象上的只读锁时,检查与共享数据对象相关联的对象头锁定字(以下称为“锁字”)的线程标识符,以确定是否读写锁 对共享数据对象已经存在。 如果不是,则将线程标识符设置为指示只读锁定的预定值,并且增加锁定字中的线程数。 如果另一个线程尝试只读锁,则将检查线程标识符的预定值。 如果它存在,则线程计数将再次递增,并且将同时建立第二个只读锁。