Busy-wait-free synchronization
    1.
    发明授权
    Busy-wait-free synchronization 失效
    忙等待同步

    公开(公告)号:US06173442B2

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

    申请号:US09245778

    申请日:1999-02-05

    IPC分类号: G06F945

    CPC分类号: G06F9/52 Y10S707/99938

    摘要: An object structure's header (40) allocates a two-bit synchronization-state field (42) solely to monitor data for implementing synchronization on that object. When the object is locked by a particular execution thread, or when one or more execution threads are waiting for a lock or notification on that object, its header contains a pointer to monitor resources in the form of a linked list of lock records (50, 52, 54) associated with the threads involved. The synchronization-state field (42) ordinarily contains an indication of whether such a linked list exists and, if so, whether its first member is associated with a thread that has a lock on the object. When a thread attempts to gain access to that linked list, it employs an atomic swap operation to place a special busy value in that lock-state field (42) and write its execution-environment pointer into the object's header (40). If the previous value of that field was not the special busy value, the thread uses the header's previous contents to perform its intended synchronization operation. Otherwise, it obtains that information through its own execution environment (44, 46, or 48) or that of the thread whose identifier the object header previously contained. When the thread completes its synchronization operation, it employs an atomic compare-and-swap operation to write the results into the object's header if that header still contains the thread identifier that the thread originally wrote there. Otherwise, it communicates that information to its successor thread if the thread identifier is different and thereby indicates that at least one successor is contending for access to the linked list.

    摘要翻译: 对象结构的头部(40)仅分配两位同步状态字段(42)来监视用于实现该对象上的同步的数据。 当对象被特定执行线程锁定时,或者当一个或多个执行线程等待该对象上的锁定或通知时,其头包含指向监视资源的指针,该指针以锁定记录的链表的形式(50, 52,54)与所涉及的线程相关联。 同步状态字段(42)通常包含这样的链表是否存在的指示,如果是,则其第一个成员是否与对象上具有锁定的线程相关联。 当一个线程尝试访问该链表时,它采用原子交换操作在该锁状态字段(42)中放置一个特殊的忙值,并将其执行环境指针写入对象的头(40)。 如果该字段的先前值不是特殊忙值,线程将使用头部的以前内容来执行其预期的同步操作。 否则,它通过其自己的执行环境(44,46或48)或其标识符之前包含对象标题的线程获得该信息。 当线程完成其同步操作时,如果该头仍然包含线程最初在那里写入的线程标识符,它将使用原子比较和交换操作将结果写入对象的头。 否则,如果线程标识符不同,则将该信息传递给其后续线程,从而指示至少一个后继者正在竞争访问链表。

    Method and mechanism for finding references in a card in time linear in the size of the card in a garbage-collected heap
    2.
    发明授权
    Method and mechanism for finding references in a card in time linear in the size of the card in a garbage-collected heap 有权
    在垃圾收集堆中卡片大小时间线上查找卡片中的参考的方法和机制

    公开(公告)号:US07136887B2

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

    申请号:US10309503

    申请日:2002-12-04

    IPC分类号: G06F12/12

    摘要: A garbage collector divides the garbage-collected heap into “cards.” It maintains a table containing a card-object table entry for each card. A card's entry contains information from which the collector can determine where any references in the card are located and thereby identify objects that may be reachable. The encoding of a card's table entry is not restricted to values that indicate the location of the object in which the card begins. Instead, its possible values additionally include ones that indicate that the card begins with a certain number of references or that an object begins at a given location in the middle of the card. The collector thereby avoids consulting object's class information unnecessarily.

    摘要翻译: 垃圾收集器将垃圾收集堆分成“卡”。 它维护一个包含每个卡的卡对象表条目的表。 卡的条目包含收集者可以确定卡中的任何引用位置的信息,从而识别可达到的对象。 卡的表项的编码不限于指示卡开始的对象的位置的值。 相反,其可能的值还包括指示卡以特定数量的引用开始的对象或者对象在卡的中间的给定位置开始的值。 收集器避免了不必要地查询对象的类信息。

    PROMPT LARGE OBJECT RECLAMATION
    3.
    发明申请
    PROMPT LARGE OBJECT RECLAMATION 有权
    提出大型对象修复

    公开(公告)号:US20110208792A1

    公开(公告)日:2011-08-25

    申请号:US12708996

    申请日:2010-02-19

    IPC分类号: G06F17/00 G06F12/02 G06F12/00

    CPC分类号: G06F12/0276

    摘要: The present disclosure describes garbage collection that provides prompt reclamation of large objects. A heap space is divided into Young regions, Old regions, and Humongous regions. A remembered set is created and maintained, during the execution of one or more programs, for each region that specifies where there are references from outside the region to inside the region. A garbage collection list is generated specifying regions to perform garbage collection on. All Young regions and at least one Humongous region are included in the garbage collection list. If it is determined to include Old regions, the Old regions are selected and included in the garbage collection list. Then, a garbage collection is performed on the regions specified in the garbage collection list. During the garbage collection, the indication for each region is utilized to determine reachable objects in the region, ensuring that reachable objects are not deallocated.

    摘要翻译: 本公开描述了提供快速回收大对象的垃圾收集。 堆积空间分为青年地区,老区和Humongous地区。 在执行一个或多个程序期间,为指定从区域外部到区域内的引用的每个区域创建和维护一个记忆集。 生成垃圾收集列表指定区域进行垃圾收集。 所有年轻地区和至少一个Humongous地区都包括在垃圾收集清单中。 如果确定包含旧区域,则选择旧区域并将其包括在垃圾收集列表中。 然后,在垃圾回收列表中指定的区域执行垃圾收集。 在垃圾收集期间,利用每个区域的指示来确定该区域中的可达对象,确保可到达的对象不被释放。

    Prompt large object reclamation
    4.
    发明授权
    Prompt large object reclamation 有权
    提示大对象回收

    公开(公告)号:US08589456B2

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

    申请号:US12708996

    申请日:2010-02-19

    IPC分类号: G06F12/00

    CPC分类号: G06F12/0276

    摘要: The present disclosure describes garbage collection that provides prompt reclamation of large objects. A heap space is divided into Young regions, Old regions, and Humongous regions. A remembered set is created and maintained, during the execution of one or more programs, for each region that specifies where there are references from outside the region to inside the region. A garbage collection list is generated specifying regions to perform garbage collection on. All Young regions and at least one Humongous region are included in the garbage collection list. If it is determined to include Old regions, the Old regions are selected and included in the garbage collection list. Then, a garbage collection is performed on the regions specified in the garbage collection list. During the garbage collection, the indication for each region is utilized to determine reachable objects in the region, ensuring that reachable objects are not deallocated.

    摘要翻译: 本公开描述了提供快速回收大对象的垃圾收集。 堆积空间分为青年地区,老区和Humongous地区。 在执行一个或多个程序期间,为指定从区域外部到区域内的引用的每个区域创建和维护一个记忆集。 生成垃圾收集列表指定区域进行垃圾收集。 所有年轻地区和至少一个Humongous地区都包括在垃圾收集清单中。 如果确定包含旧区域,则选择旧区域并将其包括在垃圾收集列表中。 然后,在垃圾回收列表中指定的区域执行垃圾收集。 在垃圾收集期间,利用每个区域的指示来确定该区域中的可达对象,确保可到达的对象不被释放。