有人写道,用Windows XP 32位的顶部700 MB或RAM左右是不可用的。但也有人说,安装超过3GB左右没有意义。所以这导致我这个问题。那么这个区域是由os实际驻留在那个ram中保留的,还是只是使用地址空间。换句话说,内存实际上被填充700mb的信息,或者700MB的cpu地址空间被保留和映射。因为如果不是这样,那么安装3gbs仍然会是一个问题,因为它仍然会以700MB的价格拿走?为什么Windows XP(32位)限制为3GB的可用内存?
回答
32位系统有4 GB的可用地址空间,但地址空间不仅仅用于系统内存。例如,视频卡内存的一部分可以映射到地址空间,这会减少系统内存的可用空间。这在Microsoft的Memory Limits for Windows页面的“图形卡和其他设备如何影响内存限制”一节中进行了介绍。
适用的文本低于保存为后人:
设备必须与 非PAE感知的Windows版本地图下方的4 GB内存的兼容性。因此,如果系统具有4GB的 RAM,则其中一些可能被禁用,或者被 BIOS重新映射到4GB以上。如果内存重新映射,则X64 Windows可以使用该内存。 X86 客户端版本的Windows不支持高于4GB 标记的物理内存,因此它们无法访问这些重新映射的区域。任何X64 Windows或 X86服务器版本都可以。
我猜为什么我很困惑,是因为处理器不能直接访问视频内存,还是只能将它映射到它的可寻址空间?这样做的意义何在?如果它不在内存中,并且无论如何都可以访问它,为什么这样引用它会很有用。处理器是否需要首先使用它? – rubixibuc 2012-04-23 06:01:44
它不仅仅是处理器,为了与设备进行通信,进程还需要一些方法将数据加载到这些区域。在PC上工作使得这一切都非常抽象,但对于嵌入式设备(比如GBA),绘制图片的唯一方法是将其写入视频缓冲区,这只是一个内存地址。当然,执行这些操作可能有“另一种机制”,但使用单一寻址方案是一个简单的解决方案。 – 2012-04-23 06:07:06
所以基本的想法是,700MB块不是物理地存放在内存中,而是通过cpu获取700mb的可寻址空间。所以最好不要安装大于3gbs左右的ram,因为这些地址不会被ram使用,而是被保留和映射的。 – rubixibuc 2012-04-23 06:09:50
操作系统需要为各种功能(例如中断处理程序,系统调用等)预留一些物理地址空间。这些地址对OS上的程序不可用。
- 1. 了解的虚拟内存限制为32位应用程序
- 2. 什么类型的内存在32位Windows上有2 GB限制?
- 3. 在32位为什么地址空间限制为2^31?
- 4. 在Windows XP 32位上为Windows Server 2003 64位开发
- 5. 为什么android将vm内存大小限制为任意24或32 MB?
- 6. 为什么超出内存限制?
- 7. 适用于Windows XP的PHP memcached 32位
- 8. 为什么在32位限制上2 GB而不是4 GB?
- 9. 为什么Tomcat 5.5(Java 1.4,在Windows XP 32位上运行)突然挂起?
- 10. 为什么int 32位?
- 11. 为什么内存32位只需要1的地图
- 12. 行为的在64位Windows(内存)32个应用程序
- 13. 将Windows 7 64位机器上的C#项目转换为Windows xp 32位?
- 14. 文件DB的Windows XP 32位
- 15. Windows XP(32位)和Windows 7(64位)常见的Windows SDK路径
- 16. 为什么32位二进制程序不能超过4GB的限制?
- 17. 为什么I2C_SMBUS_BLOCK_MAX限制为32个字节?
- 18. PowerBuilder 10.5应用程序在Windows XP 32位到Windows 7 64位
- 19. 64位系统上的32位应用程序的内存分配限制
- 20. 在Windows XP上运行32位程序
- 21. 为什么在Windows XP上boost.log崩溃?
- 22. 为什么wlanapi.lib丢失在Windows XP SP3
- 23. 低内存系统上的64位和32位Ubuntu - 为什么Ubuntu 64位会吃我的内存?
- 24. ff对象长度限制为64位Windows中的32位整数
- 25. 为什么在32位机器上有2GB redis.io数据库的限制
- 26. 为什么valgrind在64位架构上仅限于32 Gb?
- 27. 为什么我的Android应用程序的内存限制最大为64 MB?
- 28. 为什么Windows Vista 64位默认使用32位cmd.exe? (机专用)
- 29. Windows xp 32位d3d9.dll与Windows 7 64位d3d9.dll
- 30. 为什么打算32位寻址
具有32位“地址总线”的CPU的机器的最大地址空间不能超过4 Gb(2^{32} -1),还要考虑可用于存储器的地址空间不是可能是整个范围,因为映射到地址空间还有其他不是“用户RAM”的东西,所以可能3 Gb已经“接近”极限了;也许这是问题 – ShinTakezou 2012-04-23 05:53:08
XP确实为内核预留了一些地址空间;我希望大部分时间内大部分内容都不会被物理内存支持。但是,这意味着没有任何一个进程可以使用超过3GB的地址空间,因此不超过3GB的物理内存。内核可能仍然能够将其余用于其他目的,并且应该可以将剩下的用于其他进程,所以我不明白为什么要避免将所有4 GB放入。 – zmccord 2012-04-23 05:55:20
基本上我所要求的是回到真实模式。当前300kb左右的时候是保留的。我认为这与32位保护模式是同样的问题。实际上是否有数据驻留在700mb的ram芯片中。或者它是由处理器映射的其他数据或IO位置 – rubixibuc 2012-04-23 05:55:36