【问题标题】:Understanding how memory is managed under WoW64了解在 WoW64 下如何管理内存
【发布时间】:2012-03-01 18:43:11
【问题描述】:

我们有六个 Web 应用程序需要以 32 位进程运行,但由于我们正在缓存各种内容,因此需要大量内存,由于各种原因,这不容易改变。没有一个应用程序需要超过 2GB,但合并的内存使用量将超过此。由于各种原因也不容易更改,我们计划在一对 64 位服务器上运行这些服务器,配备 16GB 的 RAM,足以满足所有 Web 应用程序组合的内存需求。

这是我的担心。我知道 Windows 为每个进程分配一个虚拟地址空间,Win32 上 2GB 用户空间和 2GB 内核空间,Win64 上 8TB 用户空间和 8TB 内核空间(在大多数情况下)。然后操作系统会处理该地址空间的哪些部分映射到物理 RAM。我也知道 WoW64 子系统将处理在 64 位操作系统上运行 32 位进程。我对 WoW64 的理解不够深入,不知道它是如何做到的,我希望它能够映射不同 32 位进程的虚拟地址空间以利用所有可用的 RAM,但我担心它可能不会这样做并且该进程仍将竞争以某种方式为 32 位进程仿真“标记”的同一组 RAM。

我知道真正的解决方案是测试我们的目标环境和配置文件以了解发生了什么,但是更多关于在 WoW64 下如何管理物理 RAM 的信息会让人放心。

【问题讨论】:

    标签: memory-management operating-system kernel 32bit-64bit wow64


    【解决方案1】:

    没有“耳标”的 32 位进程 RAM。物理 RAM 可供操作系统使用,并根据需要分配给进程,无论它们是 32 位还是 64 位。 Wow64 子系统不是虚拟机,也不是 32 位进程运行它的进程。 Wow64 子系统是一组 shim 库,用于处理 32 位到 64 位的转换,反之亦然。

    【讨论】:

    • 谢谢,这是我希望听到的。您是否有任何关于 OS 内存管理功能的 shiming 工作原理的链接?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 2020-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    相关资源
    最近更新 更多