EFFICIENT OBJECT PINNING IN A MULTI-THREADED ENVIRONMENT
    31.
    发明申请
    EFFICIENT OBJECT PINNING IN A MULTI-THREADED ENVIRONMENT 有权
    多通道环境中的有效对象引导

    公开(公告)号:US20100042799A1

    公开(公告)日:2010-02-18

    申请号:US12190833

    申请日:2008-08-13

    CPC classification number: G06F12/0269 G06F2212/1004

    Abstract: Improvements to apparatus, methods, and computer program products are disclosed to improve the efficiency of pinning objects in a heap memory that is subject to a garbage collection system.

    Abstract translation: 公开了对设备,方法和计算机程序产品的改进,以提高在垃圾收集系统的堆存储器中钉住对象的效率。

    Concurrent evacuation of the young generation
    32.
    发明授权
    Concurrent evacuation of the young generation 有权
    同时撤离年轻一代

    公开(公告)号:US07660961B2

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

    申请号:US11732785

    申请日:2007-04-03

    CPC classification number: G06F12/0276

    Abstract: The invention relates to a method for performing generational garbage collection on a heap comprising a plurality of generations. The method involves dividing a young generation of the heap into a first young generation and a second young generation, evacuating the first young generation concurrently with allocating the second young generation, and evacuating the second young generation concurrently with allocating the first young generation and subsequent to fully evacuating the first young generation.

    Abstract translation: 本发明涉及一种在包含多代的堆上执行代数垃圾收集的方法。 这种方法包括将年轻一代的小朋友分成第一个年轻一代和第二个年轻一代,同时分配第一个年轻一代,分配第二个年轻一代,同时分配第二个年轻一代,分配第一个年轻一代, 完全疏散第一代青年。

    Method and apparatus for byte allocation accounting in a system having a multi-threaded application and a generational garbage collector that dynamically pre-tenures objects
    33.
    发明授权
    Method and apparatus for byte allocation accounting in a system having a multi-threaded application and a generational garbage collector that dynamically pre-tenures objects 有权
    在具有多线程应用的系统中的字节分配计费的方法和装置,以及动态预保护对象的代数垃圾收集器

    公开(公告)号:US07596667B1

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

    申请号:US11218179

    申请日:2005-09-01

    CPC classification number: G06F12/0276

    Abstract: In a computer system having a multithreaded application and a generational garbage collector that dynamically pre-tenures objects from a predetermined number of candidate allocation sites, allocated byte accounting is performed by each application thread using an array that contains a number of entries equal to the total number of candidate sites at any given time. Each array is indexed by a site number assigned to that site and contains a bytes allocated count for that site. At compilation time, object allocation code that is generated by the compiler is modified to update an array entry associated with a site number that is assigned when the site is selected as a candidate site. Since each array is local to the thread that contains it, each thread can write into its array without using atomic operations or locks.

    Abstract translation: 在具有多线程应用程序的计算机系统和从预定数量的候选分配站点动态预安装对象的代数垃圾回收器的计算机系统中,由每个应用程序线程使用包含等于总数的条目的数组执行分配的字节计费 任何给定时间的候选网站数量。 每个阵列由分配给该站点的站点编号索引,并包含该站点的字节分配计数。 在编译时,修改由编译器生成的对象分配代码,以更新与选择站点作为候选站点时分配的站点号相关联的数组条目。 由于每个数组都是包含它的线程的本地数组,所以每个线程都可以写入其数组而不使用原子操作或锁。

    Split-reference, two-pass mark-compaction
    34.
    发明授权
    Split-reference, two-pass mark-compaction 有权
    分割参考,二次标记压实

    公开(公告)号:US07389395B1

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

    申请号:US11169983

    申请日:2005-06-26

    Abstract: A heap may be marked and compacted while performing only two passes over the objects and object references in the heap. Specifically, objects and object references are traversed once during a marking phase and again during a compaction phase of split-reference, two-pass mark-compaction. Object references are updated in two steps. First, during marking, each object reference may be updated to include the relative offset within its block of the referenced object and-during compaction that offset may be added to the block's destination address resulting in a reference that points to the actual post-compaction location for the referenced object. Objects of a particular block may be rearranged, or permuted, with respect to each other within the block. However, the order between groups of objects in different blocks may be preserved across compaction.

    Abstract translation: 堆可以被标记和压缩,同时仅在堆中的对象和对象引用执行两次传递。 具体来说,在标记阶段期间遍历一次对象和对象引用,并在分割参考,二次标记压缩的压缩阶段再次遍历对象和对象引用。 对象引用有两个步骤更新。 首先,在标记期间,可以更新每个对象引用以包括其引用对象的块内的相对偏移量,并且 - 在压缩期间,该偏移可以被添加到块的目的地地址,导致指向实际的后压缩位置的引用 为引用的对象。 特定块的对象可以在块内相对于彼此重新布置或排列。 但是,不同块中的对象组之间的顺序可以在压缩之间保留。

    Collection-set selection using a small priority queue
    35.
    发明授权
    Collection-set selection using a small priority queue 有权
    使用小优先级队列进行集合选择

    公开(公告)号:US07293051B1

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

    申请号:US10884526

    申请日:2004-07-01

    CPC classification number: G06F12/0269 Y10S707/99957

    Abstract: A space-incremental garbage collector performs marking operations that are usually separated by several collection increments. It uses the marking results to compute collection-efficiency metrics for regions into which it treats the heap as divided. It bases its selection of regions for successive increments' collection sets on the metrics' values, whose computations also depend on the sizes of the regions' “remembered sets,” i.e., on the lists of locations where references to objects in those regions have been observed. Although the remembered-set sizes therefore potentially change between collection increments, the collector re-computes metrics in most collection increments for only a subset of the regions. It selects the subset in accordance with a sorting of all regions that it performed at the end of the most recent completed marking operation.

    Abstract translation: 空间增量垃圾回收器执行标记操作,通常以几个收集增量分隔。 它使用标记结果来计算其分割对待堆的区域的收集效率指标。 它将其区域的选择作为连续增量的集合集合在度量值上,其计算还取决于区域“记忆集”的大小,即在这些区域中对对象的引用的位置列表 观察到的。 虽然记忆集大小因此可能会在收集增量之间发生变化,但收集器只能对区域的一个子集重新计算大多数收集增量中的度量。 它根据在最近完成的标记操作结束时执行的所有区域的排序来选择该子集。

    Mostly concurrent compaction in a garbage collection system
    36.
    发明授权
    Mostly concurrent compaction in a garbage collection system 有权
    垃圾收集系统中大部分并发压缩

    公开(公告)号:US06249793B1

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

    申请号:US09329908

    申请日:1999-06-10

    CPC classification number: G06F12/0269 G06F12/0276 Y10S707/99957

    Abstract: A system for mostly concurrent compaction in a garbage collection system is disclosed. Objects that have been allocated to a program are relocated by first identifying those variables pointing to a selected set of objects that are in use within a subset of memory. As these pointers are identified, they are added to a data structure. The selection of the objects, identification of the pointers, and addition of the pointers to the data structure may all be performed concurrently with execution of the program. At the same time, a write barrier marks as “dirty” those memory regions in which one or more pointers are modified by the program. A number of locations outside the subset of memory are reserved to be used to store the selected objects. Execution of the program is then suspended. The memory regions marked as “dirty” are examined to identify any further variables pointing to the selected objects. Any such identified variables are added to the data structure. Those variables contained in the data structure that continue to point to the selected objects are modified to point to corresponding locations outside of the subset of memory. The selected set of objects is then copied to the locations outside of the subset of memory, the subset of memory is returned to the free list, and the program is restarted.

    Abstract translation: 公开了一种在垃圾收集系统中大部分并发压缩的系统。 已经分配给程序的对象通过首先识别指向在存储器子集内使用的所选择的一组对象的那些变量来重新定位。 当这些指针被识别时,它们被添加到数据结构中。 对象的选择,指针的识别以及指向数据结构的指针的添加可以与程序的执行同时执行。 同时,写屏障标记为“脏”的程序中修改了一个或多个指针的那些存储器区域。 存储器子集之外的多个位置被保留用于存储所选择的对象。 然后程序的执行被暂停。 检查标记为“脏”的记忆区域以识别指向所选对象的任何其它变量。 任何这样的标识变量都被添加到数据结构中。 包含在继续指向所选对象的数据结构中的那些变量被修改为指向存储器子集之外的对应位置。 然后将所选择的对象集合复制到存储器子集外部的位置,将存储器的子集返回到空闲列表,并重新启动程序。

    Concurrent object management
    37.
    发明授权
    Concurrent object management 有权
    并发对象管理

    公开(公告)号:US09208081B1

    公开(公告)日:2015-12-08

    申请号:US11948618

    申请日:2007-11-30

    CPC classification number: G06F12/0269 G06F9/467 G06F2212/1016

    Abstract: A processing thread obtains an initial status of a reference field associated with an object having data stored in memory. The reference field represents, at least in part, a status of current modification operations (e.g., a status of moving the object from one location in memory to another), if any, applied to the object. The processing thread applies a sequence of instructions to data retrieved from the object to produce computational results for storage in the object. Prior to storing the computational results in the object, the processing thread can confirm whether the reference field has changed since obtaining the initial status.

    Abstract translation: 处理线程获得与具有存储在存储器中的数据的对象相关联的参考字段的初始状态。 参考字段至少部分地表示当前修改操作的状态(例如,将对象从存储器中的一个位置移动到另一个位置的状态)(如果有的话)。 处理线程对从对象检索的数据应用一系列指令,以产生用于存储在对象中的计算结果。 在将计算结果存储在对象之前,处理线程可以确认参考字段是否从获得初始状态改变。

    Time-based object aging for generational garbage collectors
    38.
    发明授权
    Time-based object aging for generational garbage collectors 有权
    代代垃圾收集者的基于时间的对象老化

    公开(公告)号:US08825721B2

    公开(公告)日:2014-09-02

    申请号:US13251974

    申请日:2011-10-03

    CPC classification number: G06F12/0276 G06F12/0253

    Abstract: System and Methods for time based object aging for generational garbage collectors are provided. Time data is received from a user identifying the amount of time an object should survive in a generation defined in a heap. Generational garbage collection is performed, and objects are promoted from one generation to the next oldest generation based on the time data received.

    Abstract translation: 提供了生成垃圾收集器的基于时间的对象老化的系统和方法。 从用户那里接收时间数据,标识对象在堆中定义的生成中应该生存的时间量。 执行生成垃圾回收,根据收到的时间数据,将对象从一代晋升为下一代。

    Low-contention update buffer queuing for large systems
    39.
    发明授权
    Low-contention update buffer queuing for large systems 有权
    针对大型系统的低竞争更新缓冲区排队

    公开(公告)号:US08782306B2

    公开(公告)日:2014-07-15

    申请号:US12699370

    申请日:2010-02-03

    CPC classification number: G06F12/0253 G06F5/12 G06F9/455 G06F9/46 G06F13/00

    Abstract: A method for queuing thread update buffers to enhance garbage collection. The method includes providing a global update buffer queue and a global array with slots for storing pointers to filled update buffers. The method includes with an application thread writing to the update buffer and, when filled, attempting to write the pointer for the update buffer to the global array. The array slot may be selected randomly or by use of a hash function. When the writing fails due to a non-null slot, the method includes operating the application thread to add the filled update buffer to the global update buffer queue. The method includes, with a garbage collector thread, inspecting the global array for non-null entries and, upon locating a pointer, claiming the filled update buffer. The method includes using the garbage collector thread to claim and process buffers added to the global update buffer queue.

    Abstract translation: 排队线程更新缓冲区以增强垃圾回收的方法。 该方法包括提供全局更新缓冲器队列和全局阵列,其具有用于存储指向填充的更新缓冲器的指针的时隙。 该方法包括应用程序线程写入更新缓冲区,并在填充时尝试将更新缓冲区的指针写入全局数组。 可以随机地或通过使用散列函数来选择阵列时隙。 当由于非空插槽而导致写入失败时,该方法包括操作应用程序线程以将填充的更新缓冲区添加到全局更新缓冲区队列。 该方法包括:使用垃圾收集器线程,检查全局数组的非空条目,并在找到指针时声明填充的更新缓冲区。 该方法包括使用垃圾收集器线程来声明和处理添加到全局更新缓冲区队列中的缓冲区。

    Page-protection based memory access barrier traps
    40.
    发明授权
    Page-protection based memory access barrier traps 有权
    基于页面保护的内存访问障碍陷阱

    公开(公告)号:US08725974B2

    公开(公告)日:2014-05-13

    申请号:US11654456

    申请日:2007-01-17

    CPC classification number: G06F12/0253

    Abstract: A method, apparatus and computer program product for providing page-protection based memory access barrier traps is presented. A value for a user-mode bit (u-bit) is computed for each extant virtual page in an address space, the u-bit indicative that an object on the virtual page is being moved by a Garbage Collector process. An instruction is executed which causes an access protection fault. The state of the u-bit for the virtual page associated with the access protection fault is consulted when the access protection fault is encountered. Additionally, the access protection fault is translated into a user-trap (utrap) and the utrap is serviced when the u-bit is set.

    Abstract translation: 提出了一种用于提供基于页面保护的存储器访问障碍阱的方法,装置和计算机程序产品。 为地址空间中的每个现有虚拟页面计算用户模式位(u位)的值,表示虚拟页面上的对象正由垃圾收集器进程移动的u位。 执行导致访问保护故障的指令。 当遇到访问保护故障时,将查阅与访问保护故障相关联的虚拟页面的u位状态。 另外,访问保护故障被转换为用户陷阱(utrap),并且当u位置1时,接口保护故障被服务。

Patent Agency Ranking