【问题标题】:Virtual Address Space of a Process with PAE Enabled启用 PAE 的进程的虚拟地址空间
【发布时间】:2012-11-14 01:52:09
【问题描述】:

我有一个启用了 PAE 的 32 位 Intel 处理器。

地址总线 -> 36 位(启用 PAE)

数据总线 -> 32 位

这个系统中进程的虚拟地址空间范围是多少(windows或者linux)。

【问题讨论】:

    标签: memory-management x86 kernel


    【解决方案1】:

    在 32 位 CPU 上,虚拟地址指针是 32 位的。因此,每个虚拟地址空间(通常在现代操作系统上每个进程一个)的范围为 4GB。 PAE 只影响物理内存的处理方式,对虚拟地址没有影响。

    单个进程在任何时候最多可以映射到 4GB 的虚拟内存。通常,32 位操作系统将其限制为 3GB 或 2GB,因为它们使用一些地址空间进行内核映射。

    【讨论】:

    • 感谢大卫的回答。下面的链接告诉应用程序可以通过应用程序窗口访问超过 4GB 的数据。你能给我一些关于它是如何完成的线索吗? msdn.microsoft.com/enus/library/windows/hardware/gg487512.aspx 3. 应用程序窗口化 启用 PAE 的操作系统可以引入 API 以允许正确编码的应用程序访问系统中任何位置的物理内存,即使它可能超过 4 GB。理想情况下,API 分配“高”物理内存。这对于需要快速访问内存中大量数据的应用程序非常有利。
    • 基本上,您在 4GB 的某处保留一块或多块虚拟地址空间。然后,您从操作系统分配内存块,总大小可能超过 4GB。然后您告诉操作系统将特定块映射到虚拟地址空间中的特定窗口。在软件中,您可以根据需要将各种内存块映射到地址空间中。在 Windows 上,它被称为 AWE
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 2021-03-18
    • 2012-01-12
    • 2012-03-06
    相关资源
    最近更新 更多