Code optimization when using multiple reader locks and a non-reader lock
    1.
    发明授权
    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.

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

    Runtime code modification in a multi-threaded environment
    2.
    发明授权
    Runtime code modification in a multi-threaded environment 有权
    多线程环境中的运行时代码修改

    公开(公告)号:US08584111B2

    公开(公告)日:2013-11-12

    申请号:US11842260

    申请日:2007-08-21

    IPC分类号: G06F9/45

    CPC分类号: G06F9/3851

    摘要: A code region forming part of a computer program is modified during execution of the computer program by a plurality of threads. In one aspect, identical modification instructions are provided to each thread for modifying a site in the code region having a desirable idempotent atomic modification, and the modification instructions direct each thread to make the desirable idempotent atomic modification. In another aspect, a thread is selected to modify the code region, each thread other than the selected thread is directed to execute an alternative execution path that generates output identical to the output of the code region after the code region has been modified, and, responsive to directing each thread other than the selected thread, the selected thread is directed to modify the code region.

    摘要翻译: 构成计算机程序的一部分的代码区域被多个线程执行计算机程序期间被修改。 在一个方面,向每个线程提供相同的修改指令,用于修改具有所需幂等原子修改的代码区域中的站点,并且修改指令指示每个线程进行所需的等幂原子修改。 在另一方面,选择线程来修改代码区域,除了所选线程之外的每个线程被引导以执行在代码区域被修改之后产生与代码区域的输出相同的输出的替代执行路径, 响应于指导除所选线程之外的每个线程,所选线程被引导以修改代码区域。

    Runtime code modification in a multi-threaded environment

    公开(公告)号:US08572596B2

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

    申请号:US11842419

    申请日:2007-08-21

    IPC分类号: G06F9/45

    CPC分类号: G06F9/3851

    摘要: A code region forming part of a computer program is modified during execution of the computer program by a plurality of threads. In one aspect, identical modification instructions are provided to each thread for modifying a site in the code region having a desirable idempotent atomic modification, and the modification instructions direct each thread to make the desirable idempotent atomic modification. In another aspect, a thread is selected to modify the code region, each thread other than the selected thread is directed to execute an alternative execution path that generates output identical to the output of the code region after the code region has been modified, and, responsive to directing each thread other than the selected thread, the selected thread is directed to modify the code region.

    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.

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

    Managing system resources
    5.
    发明授权
    Managing system resources 有权
    管理系统资源

    公开(公告)号:US08185903B2

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

    申请号:US11956167

    申请日:2007-12-13

    IPC分类号: G06F9/46

    CPC分类号: G06F9/4881

    摘要: A computer implemented method, apparatus, and computer usable program product for system management. The process schedules a set of application tasks to form a schedule of tasks in response to receiving the set of application tasks from a registration module. The process then performs a feasibility analysis on the schedule of tasks to identify periods of decreased system activity. Thereafter, the process schedules a set of system management tasks during the periods of decreased system activity to form a prioritized schedule of tasks.

    摘要翻译: 一种用于系统管理的计算机实现的方法,装置和计算机可用程序产品。 该过程调度一组应用任务以形成响应于从注册模块接收到一组应用任务的任务计划。 然后,该过程对任务计划进行可行性分析,以确定系统活动减少的时间段。 此后,该过程将在系统活动减少期间安排一系列系统管理任务,以形成优先排序的任务计划。

    Method for JIT compiler to optimize repetitive synchronization
    6.
    发明授权
    Method for JIT compiler to optimize repetitive synchronization 失效
    JIT编译器优化重复同步的方法

    公开(公告)号:US08104028B2

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

    申请号:US12414991

    申请日:2009-03-31

    IPC分类号: G06F9/45

    CPC分类号: G06F9/52 G06F9/45516

    摘要: Repetitive synchronization in program code is optimized through lock coarsening that is performed subject to a number of constraints. Using a forward pass over the program code followed by a backward pass, region extent bits may be determined that identify the points in the program where object locking can be coarsened. The program code may then be modified to realize coarsened locking regions determined based on the region extent bits. Alternatively, previously determined value numbers may provide much of the information collected by the two passes. In such a case, a single pass over the program code may locate features that limit lock coarsening opportunities. A set of synchronization operations that can be removed may then be determined and used when modifying the program code to coarsen locking regions.

    摘要翻译: 程序代码中的重复同步是通过锁定粗化进行优化的,该粗化是受许多约束条件执行的。 使用向后传递程序代码,然后是向后传递,可以确定识别程序中可以粗化对象锁定的点的区域范围位。 然后可以修改程序代码以实现基于区域范围位确定的粗化锁定区域。 或者,先前确定的值号可以提供由两次通过所收集的大部分信息。 在这种情况下,程序代码的单次传递可以定位限制锁定粗化机会的特征。 然后可以在修改程序代码以粗化锁定区域时确定并使用可以移除的一组同步操作。

    JUST-IN-TIME COMPILER SUPPORT FOR INTERRUPTIBLE CODE
    7.
    发明申请
    JUST-IN-TIME COMPILER SUPPORT FOR INTERRUPTIBLE CODE 失效
    用于中断代码的即时编译器支持

    公开(公告)号:US20090055814A1

    公开(公告)日:2009-02-26

    申请号:US11841639

    申请日:2007-08-20

    IPC分类号: G06F9/45

    CPC分类号: G06F9/45516 G06F8/4441

    摘要: A computer implemented method for performing inlining in a just-in-time compiler. Compilation of a first code of a program is begun. The first code is one of an interruptible code and a non-interruptible code. A try region is established around a second code of the program to form a wrapped second code. The try region is a boundary between interruptible and non-interruptible code such that a third code that modifies an observable state of the program cannot be moved across the boundary. The second code is, relative to the first code, the other of the interruptible code and the non-interruptible code. The wrapped second code is inlined with the first code during compilation. Compilation of the first code is completed to form a resultant code. The resultant code is stored.

    摘要翻译: 一种用于在即时编译器中执行内联的计算机实现的方法。 开始编制程序的第一个代码。 第一个代码是可中断代码和不可中断代码之一。 围绕程序的第二个代码建立一个尝试区域,以形成一个包装的第二个代码。 尝试区域是可中断和不可中断代码之间的边界,使得修改程序的可观察状态的第三个代码不能跨越边界移动。 相对于第一个代码,第二个代码是可中断代码和不可中断代码中的另一个。 封装的第二个代码与编译期间的第一个代码一致。 第一个代码的编译完成,形成一个结果代码。 生成的代码被存储。

    Transforming locks in software loops
    8.
    发明授权
    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.

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

    Real-time hash map
    9.
    发明授权
    Real-time hash map 有权
    实时哈希图

    公开(公告)号:US08423594B2

    公开(公告)日:2013-04-16

    申请号:US12874136

    申请日:2010-09-01

    IPC分类号: G06F17/30 G06F9/26

    CPC分类号: G06F17/30949

    摘要: A method for implementing a hash map to improve performance consistency is disclosed herein. In one embodiment, such a method includes providing a hash map comprising a set of tables, the set of tables initially containing a first table. When the first table is full, the method augments the hash map by adding a second table to the set of tables. Similarly, when the second table is full, the method augments the hash map by adding a third table to the set of tables. A similar technique may be used to add additional tables to the hash map. When searching for a value in any of the tables in the hash map, the method uses the same hash code. A corresponding computer program product and apparatus are also disclosed herein.

    摘要翻译: 本文公开了一种用于实现散列图以提高性能一致性的方法。 在一个实施例中,这种方法包括提供包括一组表的哈希映射,该表的集合最初包含第一表。 当第一个表已满时,该方法通过向表的集合添加第二个表来增加散列映射。 类似地,当第二个表已满时,该方法通过向表的集合添加第三个表来增加散列映射。 可以使用类似的技术来向哈希映射添加其他表。 当在哈希映射中的任何表中搜索值时,该方法使用相同的哈希码。 本文还公开了相应的计算机程序产品和装置。

    METHOD FOR JIT COMPILER TO OPTIMIZE REPETITIVE SYNCHRONIZATION
    10.
    发明申请
    METHOD FOR JIT COMPILER TO OPTIMIZE REPETITIVE SYNCHRONIZATION 失效
    JIT编译器优化重复同步的方法

    公开(公告)号:US20090235240A1

    公开(公告)日:2009-09-17

    申请号:US12414991

    申请日:2009-03-31

    IPC分类号: G06F9/45

    CPC分类号: G06F9/52 G06F9/45516

    摘要: Repetitive synchronization in program code is optimized through lock coarsening that is performed subject to a number of constraints. Using a forward pass over the program code followed by a backward pass, region extent bits may be determined that identify the points in the program where object locking can be coarsened. The program code may then be modified to realize coarsened locking regions determined based on the region extent bits. Alternatively, previously determined value numbers may provide much of the information collected by the two passes. In such a case, a single pass over the program code may locate features that limit lock coarsening opportunities. A set of synchronization operations that can be removed may then be determined and used when modifying the program code to coarsen locking regions.

    摘要翻译: 程序代码中的重复同步是通过锁定粗化进行优化的,该粗化是受许多约束条件执行的。 使用向后传递程序代码,然后是向后传递,可以确定识别程序中可以粗化对象锁定的点的区域范围位。 然后可以修改程序代码以实现基于区域范围位确定的粗化锁定区域。 或者,先前确定的值号可以提供由两次通过所收集的大部分信息。 在这种情况下,程序代码的单次传递可以定位限制锁定粗化机会的特征。 然后可以在修改程序代码以粗化锁定区域时确定并使用可以移除的一组同步操作。