我看到在64位Windows操作系统上,可用的用户虚拟地址空间为8 terra字节。但是如果我们正在执行的程序在32位兼容模式下运行,那么这么多用户空间仍然可用?还是它的行为像一个普通的32位操作系统,并只提供2GB的用户地址空间?以兼容模式运行的64位系统中的虚拟地址空间
回答
微软有表示各种限制的图表:Memory Limits for Windows Releases
总结只是用户模式虚拟地址空间:
- 32位Windows:
- 32位进程:默认2 GB; 3 GB与
/LARGEADDRESSAWARE:YES
和4GT
- 32位进程:默认2 GB; 3 GB与
- 64位Windows(x64体系结构):
- 32位进程:2 GB默认; 4 GB与
/LARGEADDRESSAWARE:YES
- 64位进程:默认8 TB; 2 GB的
/LARGEADDRESSAWARE:NO
- 32位进程:2 GB默认; 4 GB与
4GT为4 GB的调整:
- XP:
/3GB
BOOT.INI切换 - Vista的:
bcdedit /set increaseuserva 3072
标记Russinovich做了一个博客后解释许多这些限制:Pushing the Limits of Windows: Virtual Memory
当您的进程以32位进程运行时,您的进程只能看到4GB的虚拟地址空间。它无法解决更高的问题。
如果您的程序在Wow64子系统上作为32位进程运行,它将看到在实际的32位操作系统上看到的完全相同的地址空间。没有特殊的选项,32位进程将有2GB的内存可用。
唯一的区别是可用内存,如果您使用LargeAddressAware选项。在普通的32位处理中,这可以提供3GB的可寻址内存。在Wow64的过程中,它可以看到高达4GB(Source)
/LARGEADDRESSAWARE:YES会为您提供WoW64下的4 GB虚拟地址空间,而不是3 GB。 – bk1e 2009-01-29 06:15:43
我原来的回答很糟糕。这是一个链接,解释了JaredPar说得很好。
就硬件而言,当您在兼容模式下运行(即, IA32_EFER.LMA被置位并且CS的段描述符中的L位清零)段的行为与32位段相同。即:
- 段基限制为32位。
- 段限制也限制在32位(使用G位)。
这有效地限制了你的虚拟地址4GB。我不熟悉操作系统如何在各种模式下分区虚拟内存,但这个是硬件限制。 (对不起...我是一个硬件的家伙,而不是OS专家)
应当指出的是,上运行IIS 6.0及更高版本的32位程序在64位机/ OS,一个进程可以解决了到4GB的内存。
- 1. 虚拟地址系统上的进程地址空间
- 2. 系统DLLs地址空间
- 3. 将内核空间虚拟地址映射到Windows 10驱动程序中的用户空间虚拟地址
- 4. 多线程虚拟地址空间?
- 5. 虚拟地址空间和寻呼
- 6. Linux进程虚拟地址空间的地址范围
- 7. 在64位系统中,32位列占用的空间比64位少?
- 8. 安装VC++运行时64位如果系统是64位
- 9. 什么是用户空间中的虚拟文件系统或文件系统?
- 10. 处理虚拟地址空间和内核地址空间?怎么样?
- 11. 虚拟地址空间大小vs物理地址空间大小
- 12. 以管理员身份运行:requireAdministrator&ClickOnce +模拟系统时间
- 13. 如何在x86-64 Centos系统上构建32位兼容libselinux
- 14. VMWare - 虚拟操作系统的静态IP地址
- 15. 使用64位整数迭代器的32位地址空间?
- 16. 内核虚拟地址空间中的高内存映射
- 17. 上运行64位操作系统给ERROR 64位操作系统Android的工作室:32位Linux的Android模拟器的二进制文件已被弃用
- 18. 32位64位兼容
- 19. 虚拟地址
- 20. 创建与32位和64位系统兼容的mac仪表板小部件
- 21. 具有32位操作系统程序兼容性的64位处理器?在64位处理器上的
- 22. 虚拟linux系统
- 23. 64位系统上的GDI +
- 24. 64位系统上的NCover
- 25. 需要完整的虚拟地址空间图片
- 26. 是整个过程的虚拟地址空间分割成页
- 27. 图形卡内存和进程的虚拟地址空间
- 28. 全局构造的虚拟地址空间
- 29. 在“无头模式”下运行虚拟操作系统意味着什么?
- 30. 保留64位的地址空间大小为4 GB
在Windows中,一个32位的过程只能访问2GB的内存。 – JaredPar 2009-01-29 05:08:19
我想“看”也许是错误的词。我的理解是,高于2GB的内核是为内核保留的,但仍然是该进程的虚拟地址空间的一部分,并且2 GB可用于用户分配。 – RussellH 2009-01-29 05:38:07