2012-04-23 58 views
2

有人写道,用Windows XP 32位的顶部700 MB或RAM左右是不可用的。但也有人说,安装超过3GB左右没有意义。所以这导致我这个问题。那么这个区域是由os实际驻留在那个ram中保留的,还是只是使用地址空间。换句话说,内存实际上被填充700mb的信息,或者700MB的cpu地址空间被保留和映射。因为如果不是这样,那么安装3gbs仍然会是一个问题,因为它仍然会以700MB的价格拿走?为什么Windows XP(32位)限制为3GB的可用内存?

+0

具有32位“地址总线”的CPU的机器的最大地址空间不能超过4 Gb(2^{32} -1),还要考虑可用于存储器的地址空间不是可能是整个范围,因为映射到地址空间还有其他不是“用户RAM”的东西,所以可能3 Gb已经“接近”极限了;也许这是问题 – ShinTakezou 2012-04-23 05:53:08

+0

XP确实为内核预留了一些地址空间;我希望大部分时间内大部分内容都不会被物理内存支持。但是,这意味着没有任何一个进程可以使用超过3GB的地址空间,因此不超过3GB的物理内存。内核可能仍然能够将其余用于其他目的,并且应该可以将剩下的用于其他进程,所以我不明白为什么要避免将所有4 GB放入。 – zmccord 2012-04-23 05:55:20

+0

基本上我所要求的是回到真实模式。当前300kb左右的时候是保留的。我认为这与32位保护模式是同样的问题。实际上是否有数据驻留在700mb的ram芯片中。或者它是由处理器映射的其他数据或IO位置 – rubixibuc 2012-04-23 05:55:36

回答

4

32位系统有4 GB的可用地址空间,但地址空间不仅仅用于系统内存。例如,视频卡内存的一部分可以映射到地址空间,这会减少系统内存的可用空间。这在Microsoft的Memory Limits for Windows页面的“图形卡和其他设备如何影响内存限制”一节中进行了介绍。

适用的文本低于保存为后人:

设备必须与 非PAE感知的Windows版本地图下方的4 GB内存的兼容性。因此,如果系统具有4GB的 RAM,则其中一些可能被禁用,或者被 BIOS重新映射到4GB以上。如果内存重新映射,则X64 Windows可以使用该内存。 X86 客户端版本的Windows不支持高于4GB 标记的物理内存,因此它们无法访问这些重新映射的区域。任何X64 Windows或 X86服务器版本都可以。

+0

我猜为什么我很困惑,是因为处理器不能直接访问视频内存,还是只能将它映射到它的可寻址空间?这样做的意义何在?如果它不在内存中,并且无论如何都可以访问它,为什么这样引用它会很有用。处理器是否需要首先使用它? – rubixibuc 2012-04-23 06:01:44

+0

它不仅仅是处理器,为了与设备进行通信,进程还需要一些方法将数据加载到这些区域。在PC上工作使得这一切都非常抽象,但对于嵌入式设备(比如GBA),绘制图片的唯一方法是将其写入视频缓冲区,这只是一个内存地址。当然,执行这些操作可能有“另一种机制”,但使用单一寻址方案是一个简单的解决方案。 – 2012-04-23 06:07:06

+0

所以基本的想法是,700MB块不是物理地存放在内存中,而是通过cpu获取700mb的可寻址空间。所以最好不要安装大于3gbs左右的ram,因为这些地址不会被ram使用,而是被保留和映射的。 – rubixibuc 2012-04-23 06:09:50

1

操作系统需要为各种功能(例如中断处理程序,系统调用等)预留一些物理地址空间。这些地址对OS上的程序不可用。

相关问题