Restricting memory access to protect data when sharing a common address space

    公开(公告)号:US07277999B1

    公开(公告)日:2007-10-02

    申请号:US10918044

    申请日:2004-08-12

    IPC分类号: G06F12/00

    摘要: A first software entity occupies a portion of a linear address space of a second software entity and prevents the second software entity from accessing the memory of the first software entity. For example, in one embodiment of the invention, the first software entity is a virtual machine monitor (VMM), which supports a virtual machine (VM), the second software entity. The VMM sometimes directly executes guest instructions from the VM and, at other times, the VMM executes binary translated instructions derived from guest instructions. When executing binary translated instructions, the VMM uses memory segmentation to protect its memory. When directly executing guest instructions, the VMM may use either memory segmentation or a memory paging mechanism to protect its memory. When the memory paging mechanism is active during direct execution, the protection from the memory segmentation mechanism may be selectively deactivated to improve the efficiency of the virtual computer system.

    Work stealing queues for parallel garbage collection
    32.
    发明申请
    Work stealing queues for parallel garbage collection 有权
    并行垃圾收集工作窃取队列

    公开(公告)号:US20050132374A1

    公开(公告)日:2005-06-16

    申请号:US10996508

    申请日:2004-11-23

    IPC分类号: G06F9/46 G06F12/02 G06F17/30

    摘要: A multiprocessor, multi-program, stop-the-world garbage collection program is described. The system initially over partitions the root sources, and then iteratively employs static and dynamic work balancing. Garbage collection threads compete dynamically for the initial partitions. Work stealing double-ended queues, where contention is reduced, are described to provide dynamic load balancing among the threads. Contention is resolved by using atomic instructions. The heap is broken into a young and an old generation where parallel semi-space copying is used to collect the young generation and parallel mark-compacting the old generation. Speed and efficiency of collection is enhanced by use of card tables and linking objects, and overflow conditions are efficiently handled by linking using class pointers. A garbage collection termination employs a global status word.

    摘要翻译: 描述了一个多处理器,多程序,停止世界的垃圾收集程序。 系统最初对根源进行分区,然后迭代地采用静态和动态的工作平衡。 垃圾收集线程可以动态竞争初始分区。 被描述为在线程之间提供动态负载平衡的工作窃取双端队列,其中争用减少。 竞争通过使用原子指令来解决。 堆被打破成一个年轻和老一代,平行的半空间复制用于收集年轻一代和平行的标记压实老一代。 通过使用卡表和链接对象来增强收集的速度和效率,并且通过使用类指针进行链接来有效地处理溢出条件。 垃圾收集终端采用全局状态字。

    Dynamic adaptive tenuring of objects
    33.
    发明授权
    Dynamic adaptive tenuring of objects 有权
    物体的动态适应性固定

    公开(公告)号:US06839725B2

    公开(公告)日:2005-01-04

    申请号:US09855453

    申请日:2001-05-15

    IPC分类号: G06F12/02 G06F12/00

    CPC分类号: G06F12/0276 Y10S707/99957

    摘要: Run time sampling techniques have been developed whereby representative object lifetime statistics may be obtained and employed to adaptively affect tenuring decisions, memory object promotion and/or storage location selection. In some realizations, object allocation functionality is dynamically varied to achieve desired behavior on an object category-by-category basis. In some realizations, phase behavior affects sampled lifetimes e.g., for objects allocated at different phases of program execution, and the dynamic facilities described herein provide phase-specific adaptation tenuring decisions, memory object promotion and/or storage location selection. In some realizations, reversal of such decisions is provided.

    Object sampling technique for runtime observations of representative instances thereof
    34.
    发明授权
    Object sampling technique for runtime observations of representative instances thereof 有权
    用于其代表性实例的运行时间观测的对象采样技术

    公开(公告)号:US06799191B2

    公开(公告)日:2004-09-28

    申请号:US09855454

    申请日:2001-05-15

    IPC分类号: G06F1200

    摘要: With better knowledge of the behavior of objects in a running application, it is possible to improve execution environment decisions that affect management of such objects. For example, if available, object lifetime statistics could be employed in decisions that affect how and where objects are placed, e.g., on allocation or during operation of automatic dynamic memory management facilities such as a garbage collector. Typically, instrumenting all objects to sample lifetimes or other characteristics would impose an impractical level of overhead. We present a technique for dynamic sampling of a subset of allocated objects that incurs low runtime overheads. Coupled with automatic memory management or collection facilities, this technique allows us to improve the efficiency of a collector by segregating objects, sampled and non-sampled alike, based on observed characteristics such as object lifetime. The sampling techniques facilitate tracking of many kinds of object information. For purposes of illustration, an exemplary implementation is described in which such sampling techniques are exploited to improve performance of generational garbage collectors.

    摘要翻译: 通过更好地了解正在运行的应用程序中对象的行为,可以改进影响这些对象管理的执行环境决策。 例如,如果可用,则可以在影响如何以及在何处放置对象的决策中使用对象生命周期统计,例如在诸如垃圾收集器的自动动态存储器管理设备的分配或操作期间。 通常,将所有对象检测到样本生命周期或其他特征将会产生不切实际的开销级别。 我们提出了一种用于动态采样分配对象的子集的技术,从而导致低运行时开销。 结合自动记忆管理或收集设备,这种技术使我们能够根据诸如对象寿命等观察特征,通过分离对象,采样和非抽样等来提高收集器的效率。 采样技术有助于跟踪多种物体信息。 为了说明的目的,描述了一种示例性实现,其中利用这种采样技术来改善代代垃圾收集器的性能。

    Method, apparatus, and product for improved garbage collection in a memory system through the removal of reference conflicts
    35.
    发明授权
    Method, apparatus, and product for improved garbage collection in a memory system through the removal of reference conflicts 有权
    方法,设备和产品,用于通过删除参考冲突来改善内存系统中的垃圾收集

    公开(公告)号:US06192517B1

    公开(公告)日:2001-02-20

    申请号:US09436636

    申请日:1999-11-09

    IPC分类号: G06F945

    摘要: In accordance with the present invention a method for modifying a sequence of instructions to improve memory management within a storage device during execution of the instructions, comprises the steps, performed by a processor, of (a) analyzing the sequence of instructions for a conflict indicating an undeterminable variable type, (b) determining the type of conflict, and (c) modifying the sequence of instructions to eliminate the conflict based on the determination.

    摘要翻译: 根据本发明,一种用于在执行指令期间修改指令序列以改善存储设备内的存储器管理的方法包括由处理器执行的步骤(a)分析用于冲突的冲突指令序列 不确定的变量类型,(b)确定冲突的类型,以及(c)根据确定修改消除冲突的指令序列。

    System and method for avoiding synchronization bugs through virtualization
    36.
    发明授权
    System and method for avoiding synchronization bugs through virtualization 有权
    通过虚拟化避免同步错误的系统和方法

    公开(公告)号:US08572606B1

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

    申请号:US11365012

    申请日:2006-03-01

    IPC分类号: G06F9/455

    摘要: A system and method for reducing the likelihood of concurrency errors by identifying vulnerable segments of computer code and stalling other virtual machine threads of execution. According to one embodiment of the present invention, the vulnerable segment is identified at runtime, for example in a dynamic translator. According to another embodiment of the present invention, the vulnerable segment is identified ahead of time, for example in a static translator. According to yet another embodiment of the present invention, the vulnerable segment is identified in the binary translator of a virtual machine monitor.

    摘要翻译: 通过识别计算机代码的易受攻击的部分并拖延执行其他虚拟机线程来减少并发错误的可能性的系统和方法。 根据本发明的一个实施例,在运行时识别易受攻击的段,例如在动态翻译器中。 根据本发明的另一个实施例,提前识别易受攻击的段,例如在静态转换器中。 根据本发明的另一个实施例,在虚拟机监视器的二进制转换器中识别易受攻击的段。

    Optimizing segment access in binary translation
    37.
    发明授权
    Optimizing segment access in binary translation 有权
    优化二进制翻译中的段访问

    公开(公告)号:US08316193B2

    公开(公告)日:2012-11-20

    申请号:US12629682

    申请日:2009-12-02

    IPC分类号: G06F12/00

    摘要: A mechanism for a binary translator to emit code that will pre-generate information about a memory segment when a segment selector is assigned to a segment register. The binary translator emits code that will be executed when a memory access using that segment register is encountered and the emitted code will access the pre-generated information when evaluating the memory access request. Memory accesses, where a number of bytes being accessed is less than or equal to a predetermined value, are validated with a number of steps in the code emitted by the binary translator.

    摘要翻译: 一种二进制转换器发出代码的机制,当段选择器被分配给段寄存器时,该代码将预先生成关于存储器段的信息。 二进制翻译器发出将在遇到使用该段寄存器的存储器访问时执行的代码,并且当评估存储器访问请求时,发出的代码将访问预生成的信息。 存储器访问(其中访问的字节数小于或等于预定值)通过二进制翻译器发出的代码中的多个步骤来验证。

    Prediction mechanism for subroutine returns in binary translation sub-systems of computers
    40.
    发明授权
    Prediction mechanism for subroutine returns in binary translation sub-systems of computers 有权
    计算机二进制翻译子系统中子程序返回的预测机制

    公开(公告)号:US07555747B1

    公开(公告)日:2009-06-30

    申请号:US11862030

    申请日:2007-09-26

    申请人: Ole Agesen

    发明人: Ole Agesen

    IPC分类号: G06F9/45

    CPC分类号: G06F8/52

    摘要: A sequence of input language (IL) instructions of a guest system is converted, for example by binary translation, into a corresponding sequence of output language (OL) instructions of a host system, which executes the OL instructions. In order to determine the return address after any IL call to a subroutine at a target entry address P, the corresponding OL return address is stored in an array at a location determined by an index calculated as a function of P. After completion of execution of the OL translation of the IL subroutine, execution is transferred to the address stored in the array at the location where the OL return address was previously stored. A confirm instruction block is included in each OL call site to determine whether the transfer was to the correct or incorrect call site, and a back-up routine is included to handle the cases of incorrect call sites.

    摘要翻译: 访客系统的输入语言(IL)指令的序列例如通过二进制转换被转换成执行OL指令的主机系统的输出语言(OL)指令的相应序列。 为了在目标入口地址P处的子程序的任何IL调用之后确定返回地址,相应的OL返回地址被存储在由作为P的函数计算的索引确定的位置的阵列中。在完成执行 IL子程序的OL转换,执行被传送到在先前存储OL返回地址的位置存储在数组中的地址。 每个OL呼叫站点中都包含确认指令块,以确定传输是否为正确或不正确的呼叫站点,还包括备份程序来处理不正确的呼叫站点的情况。