windows - 为什么 Windows XP(32 位)的可用内存限制为 3GB?

标签 windows memory memory-management

据报道,对于 windows xp 32 位,顶部 700 mb 或 ram 左右无法使用。但也有人说,安装超过 3GB 左右的内存是没有意义的。这让我想到了这个问题。那么,操作系统保留的区域实际上驻留在该 RAM 中,还是只是使用地址空间。换句话说,RAM 物理上填充了 700MB 的信息,或者 700MB 的 CPU 地址空间被保留和映射。因为如果不是,那么安装 3gbs 仍然是一个问题,因为它仍然会以某种方式占用 700mb?

最佳答案

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

适用的文本如下,以供后代保存:

Devices have to map their memory below 4 GB for compatibility with non-PAE-aware Windows releases. Therefore, if the system has 4GB of RAM, some of it is either disabled or is remapped above 4GB by the BIOS. If the memory is remapped, X64 Windows can use this memory. X86 client versions of Windows don’t support physical memory above the 4GB mark, so they can’t access these remapped regions. Any X64 Windows or X86 Server release can.

关于windows - 为什么 Windows XP(32 位)的可用内存限制为 3GB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10275398/

相关文章:

c++ - 串行端口 : ReadFile and CloseHandle

memory - IntPtr 导致内存泄漏?

javascript - 是否可以在我的网站上显示本地存储的内存?

c++ - 私有(private)析构函数

memory-management - 在 GO 中处理大内存块

.net - System.Guid.NewGuid() 是否总是通过 Windows 上的 UuidCreate() 实现?

c# - 在 C# 中挂接 KeyPress 事件

c - 通过将 char 指针设置为 NULL 来模拟 calloc 的失败

c# - 如何做一个 "respects"以前的控制台内容的 C# Windows 控制台应用程序?

C内存分配