On-the-fly garbage collector
    1.
    发明授权
    On-the-fly garbage collector 失效
    即时垃圾收集器

    公开(公告)号:US06490599B2

    公开(公告)日:2002-12-03

    申请号:US09733085

    申请日:2000-12-11

    IPC分类号: G06F1730

    摘要: A method for performing garbage collection of memory objects in a memory heap, the method includes the steps of partitioning the heap into old and new generations. There follows the step of applying an on-the-fly garbage collection to memory objects in the young generation, whilst running simultaneously a program thread.

    摘要翻译: 一种用于执行存储器堆中的存储器对象的垃圾收集的方法,所述方法包括以下步骤:将堆分成新旧代。 随后,在同时运行程序线程的同时,将一个即时的垃圾收集应用于年轻一代的内存对象。

    Trace termination for on-the-fly garbage collection for weakly-consistent computer architecture
    2.
    发明授权
    Trace termination for on-the-fly garbage collection for weakly-consistent computer architecture 失效
    微软一致的计算机架构的即时垃圾收集跟踪终止

    公开(公告)号:US06920541B2

    公开(公告)日:2005-07-19

    申请号:US10021424

    申请日:2001-12-19

    IPC分类号: G06F11/34 G06F12/02 G06F12/00

    摘要: A method for memory management in execution of a program by a computer having a memory includes allocating respective portions of the memory to data objects using mutator threads of the program, whereby the objects are held in a heap created by the program. The data objects in the heap are traced so as to mark the data objects that are reachable at a given stage in the program. The computer loops over the mutator threads so as to verify for each of the mutator threads that every update to the allocated portions of the memory in progress by the mutator thread has been completed. The heap is then swept so as to free the memory that is allocated to the data objects that are not marked as reachable, for reallocation to new data objects.

    摘要翻译: 一种用于通过具有存储器的计算机执行程序的存储器管理的方法包括使用所述程序的变形器线程将所述存储器的各个部分分配给数据对象,由此将所述对象保存在由所述程序创建的堆中。 跟踪堆中的数据对象,以便标记程序中给定阶段可访问的数据对象。 计算机循环通过变异器线程,以便为每个更改器线程验证每个更新到由扩展器线程正在进行的内存的已分配部分的每个更新已经完成。 然后扫描堆,以释放分配给未标记为可达的数据对象的内存,以重新分配给新的数据对象。

    Method for combining card marking with remembered sets for old area of a
memory heap
    3.
    发明授权
    Method for combining card marking with remembered sets for old area of a memory heap 失效
    将卡标记与内存堆旧区的记忆集合组合的方法

    公开(公告)号:US6148310A

    公开(公告)日:2000-11-14

    申请号:US139754

    申请日:1998-08-25

    IPC分类号: G06F12/02 G06F17/30

    CPC分类号: G06F12/0276 Y10S707/99957

    摘要: A system for garbage collection of memory objects in a memory heap. The system includes memory heap that is partitioned into respective old and young areas. The old area is partitioned into cars and is further associated with card markings and remembered sets data structures. The card markings include for each card, a card time stamp that represents the time that the card was updated. The car includes, for each car, a car time entry stamp that represents the time the remembered set of the car was updated. The system further includes a processor communicating with the memory, and being capable of identifying all cards that were updated later than the remembered set of a selected car. In response to the event, it performs identifying change in pointers that refer from the card to a memory object in the selected car and in response to identified change in pointers, updating the remembered set of the car with the identified pointers. The process is further capable of updating the car time stamp of the selected car.

    摘要翻译: 用于内存堆中的内存对象的垃圾收集的系统。 该系统包括分区到相应的旧和年轻区域的内存堆。 旧区域划分为汽车,并进一步与卡标记和记忆集数据结构相关联。 卡片标记包括每张卡片,表示卡片更新时间的卡片时间戳。 该汽车包括每辆汽车的汽车时间输入戳记,代表汽车记忆集更新的时间。 该系统还包括与存储器通信的处理器,并且能够识别在所选择的轿厢的记忆集之后更新的所有卡。 响应于该事件,它执行识别从所述卡引导到所选择的轿厢中的存储器对象的指针中的变化,并且响应于识别的指针变化,用所识别的指针更新所记住的汽车的集合。 该过程还能够更新所选择的轿厢的轿厢时间戳。

    Method for handling overflow of counters in comparison based actions
    4.
    发明授权
    Method for handling overflow of counters in comparison based actions 有权
    基于比较的操作处理计数器溢出的方法

    公开(公告)号:US6148309A

    公开(公告)日:2000-11-14

    申请号:US139753

    申请日:1998-08-25

    IPC分类号: G06F17/30

    CPC分类号: G06F12/0276 Y10S707/99957

    摘要: In a computer application having a counter for setting first and second counter values in respect of first and second objects. The counter has a range of n possible values and being incremented or decremented in accordance with update criterion. The application taking an action according to whether the first counter value is larger or equal to the second counter value. A method for handling a courter overflow event whereby the counter is incremented beyond said range by executing the steps of: compacting the first and second counter values to m values (m

    摘要翻译: 在具有用于设置关于第一和第二物体的第一和第二计数器值的计数器的计算机应用中。 计数器具有n个可能值的范围,并根据更新标准递增或递减。 应用程序根据第一计数器值是否大于或等于第二计数器值采取动作。 一种通过执行以下步骤来增加计数器超过所述范围的方法:将第一和第二计数器值压缩为m个值(m

    Method of delaying space allocation for parallel copying garbage collection
    5.
    发明授权
    Method of delaying space allocation for parallel copying garbage collection 有权
    延迟并行复制垃圾收集空间分配的方法

    公开(公告)号:US06427154B1

    公开(公告)日:2002-07-30

    申请号:US09630806

    申请日:2000-08-02

    IPC分类号: G06F1730

    CPC分类号: G06F12/0269 Y10S707/99957

    摘要: The present invention relates to a method of delaying space allocation for parallel copying garbage collection in a data processing system comprising a memory divided in a current area (from-space) used by at least a program thread during current program execution and reserve area (to-space), and wherein a copying garbage collection is run in parallel by several collector threads, the garbage collection consisting in stopping the program threads and flipping the roles of the current area and reserved area before copying into the reserved area the live objects stored in the current area. Such a method comprises the steps of checking (12) by one collector thread the live objects of the current area to be copied in said reserved area, the live objects being referenced by a list of pointers; storing for each live object, a record into an allocation log, this record including at least the address of the object and its size; adding (14) the object size to a total_size which is the accumulated size of all the checked objects for which a record has been stored in the allocation log; and copying (20) all the checked objects into the reserved area when the value of total_size reaches a predetermined allocation bound.

    摘要翻译: 本发明涉及一种在数据处理系统中延迟并行复制垃圾收集的空间分配的方法,该数据处理系统包括在当前程序执行期间至少由程序线程使用的当前区域(从空间)划分的存储器和预留区域 -space),并且其中复制垃圾收集由几个收集器线程并行运行,所述垃圾收集包括停止程序线程并翻转当前区域和保留区域的角色,然后复制到保留区域中存储的活动对象 当前区域。 这种方法包括以下步骤:通过一个收集器线程检查(12)将要在所述保留区域中复制的当前区域的活动对象,活动对象由指针列表引用; 存储每个活动对象,将记录存储到分配日志中,该记录至少包括对象的地址及其大小; 将对象大小添加到一个total_size中,该total_size是记录已经存储在分配日志中的所有检查对象的累积大小; 并且当total_size的值达到预定分配限制时将所有被检查对象复制(20)到保留区域中。

    On-the-fly garbage collector
    6.
    发明授权
    On-the-fly garbage collector 失效
    即时垃圾收集器

    公开(公告)号:US06317756B1

    公开(公告)日:2001-11-13

    申请号:US09167547

    申请日:1998-10-07

    IPC分类号: G06F900

    摘要: A method for performing garbage collection of memory objects in a memory heap, the method includes the steps of partitioning the heap into old and new generations. There follows the step of applying an on-the-fly garbage collection to memory objects in the young generation, while running simultaneously a program thread.

    摘要翻译: 一种用于执行存储器堆中的存储器对象的垃圾收集的方法,所述方法包括以下步骤:将堆分成新旧代。 随后在同时运行程序线程的同时,将一个即时的垃圾回收应用于年轻一代的内存对象。

    Method for combining card marking with remembered set for generational garbage collection with more than two generations
    7.
    发明授权
    Method for combining card marking with remembered set for generational garbage collection with more than two generations 失效
    将卡标记与用于代数垃圾收集的记忆集合结合两代以上的方法

    公开(公告)号:US06173294B2

    公开(公告)日:2001-01-09

    申请号:US09139752

    申请日:1998-08-25

    IPC分类号: G06F1730

    CPC分类号: G06F12/0276 Y10S707/99957

    摘要: A system for garbage collection of memory objects in a memory heap. The system includes a memory heap that is partitioned into few generations, each generation being partitioned into cards. The generations are associated with remembered sets and card markings data structure. Each card in the card markings data structure includes scan generation related data that represent generations for which the card has or has not to be scanned. The system further includes a processor communicating with the memory for scanning the cards according to the scan generation related data, and in response to identifying updated inter-generational pointers, the processor is capable of updating the remember set with the identified inter-generational pointers. The processor is further capable of updating the scan generation related data.

    摘要翻译: 用于内存堆中的内存对象的垃圾收集的系统。 该系统包括被分割成几代的内存堆,每一代都被分成卡。 世代与记忆集和卡片标记数据结构相关联。 卡标记数据结构中的每个卡包括表示卡具有或不被扫描的代码的扫描生成相关数据。 该系统还包括与存储器通信的处理器,用于根据扫描生成相关数据扫描卡,并且响应于识别更新的代际指针,处理器能够利用所识别的代际指针更新记忆集。 处理器还能够更新扫描生成相关数据。

    Incremental lock-free stack scanning for garbage collection
    8.
    发明授权
    Incremental lock-free stack scanning for garbage collection 有权
    增量的无锁堆栈扫描垃圾收集

    公开(公告)号:US08825719B2

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

    申请号:US12261920

    申请日:2008-10-30

    IPC分类号: G06F17/30 G06F12/02

    CPC分类号: G06F12/0269

    摘要: Concurrent, incremental, and lock-free stack scanning for garbage collectors is disclosed. This method uses a summary table and return barriers to allow high responsiveness. The method also supports programs that employ fine-synchronization to avoid locks, imposes negligible overhead on program execution, can be used with existing concurrent collectors, and supports the special in-stack references existing in languages such as C#.

    摘要翻译: 披露了垃圾收集器的并发,增量和无锁堆栈扫描。 该方法使用汇总表和返回障碍以允许高响应性。 该方法还支持使用精细同步来避免锁定的程序,对程序执行造成可忽略的开销,可以与现有的并发收集器一起使用,并支持以C语言编写的特殊堆栈内参考。

    Mostly concurrent garbage collection
    9.
    发明授权
    Mostly concurrent garbage collection 有权
    大部分并发垃圾收集

    公开(公告)号:US07321908B2

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

    申请号:US10625048

    申请日:2003-07-23

    IPC分类号: G06F12/00 G06F17/30

    CPC分类号: G06F12/0269 Y10S707/99957

    摘要: A method for collecting garbage in a computing environment, the method including tracing root objects to their reachable objects in a population of objects, marking the traced objects, unmarking a marked card including any of the objects, tracing any marked object on the unmarked card to an unmarked referent object of the marked object, marking the unmarked referent object, and tracing the marked referent object to its reachable objects, concurrently with the operation of a mutator upon the population of objects within the computing environment, and, while no mutator operates upon the population of objects within the computing environment, marking the traced objects, tracing unmarked root object referents to their reachable objects, marking any of the objects, and designating any unmarked object in the population of objects as available for reallocation.

    摘要翻译: 一种用于在计算环境中收集垃圾的方法,所述方法包括将根对象追溯到对象群体中的可达对象,标记所追踪对象,取消标记包括任何对象的标记卡,跟踪未标记卡上的任何标记对象, 标记未标记对象的未标记的指示对象,标记未标记的指示对象,以及将标记的对象对象追溯到其可达到的对象,与计算环境中的对象群体上的变异器的操作同时,并且在没有变异器操作的情况下 计算环境中对象的总体,标记跟踪对象,跟踪未标记的根对象指向其可到达对象,标记任何对象,以及指定可用于重新分配的对象群体中的任何未标记对象。

    Concurrent, lock-free object copying
    10.
    发明授权
    Concurrent, lock-free object copying 有权
    并发,无锁的对象复制

    公开(公告)号:US08041752B2

    公开(公告)日:2011-10-18

    申请号:US12731018

    申请日:2010-03-24

    IPC分类号: G06F12/00 G06F17/30

    CPC分类号: G06F12/0269

    摘要: Described is a technology by which a real-time data relocating mechanism is provided for multiprocessing environments, including supporting lock-free programs that run in parallel. The relocating mechanism moves an object by using a status field related to the data field, possibly in an interim (wide) object space, which is then copied to a to-space object. The status information for each data field of the original object contains information indicating where a current version of the data for each field is present, that is, in the original, wide or to-space object. In one example, a handshake mechanism of a garbage collector establishes preparation and copy phases between the mechanism and other threads that determine where memory accesses occur. Also described is support for program thread compare-and-swap (CAS) operations and/or multi-word atomic operations.

    摘要翻译: 描述了一种为多处理环境提供实时数据重定位机制的技术,包括支持并行运行的无锁程序。 重新定位机制可以通过使用与数据字段相关的状态字段来移动对象,可能在临时(宽)对象空间中,然后将其复制到空间对象。 原始对象的每个数据字段的状态信息包含指示每个字段的数据的当前版本在哪里的信息,即原始,宽或空间对象中的信息。 在一个示例中,垃圾收集器的握手机制在机制和确定存储器访问发生的其他线程之间建立准备和复制阶段。 还描述了对程序线程比较和交换(CAS)操作和/或多字原子操作的支持。