内核内存地址空间

时间:2011-02-20 17:14:51

标签: windows memory-management x86 kernel

我读过,在具有4GB系统内存的32位系统上,2GB分配给用户模式,2GB分配给内核模式。但是,如果我有一个512 MB内存的系统,它会被分区为用户256 MB和内核地址空间256 MB吗?

3 个答案:

答案 0 :(得分:2)

您正在混淆物理和虚拟内存。 2GB分配给用户/系统,但它是虚拟内存。更确切地说,它们没有被分配,但它们构成了寻址空间。最初,这个空间根本不受物理内存的约束。当应用程序实际需要内存时(第一次启动),物理内存被分配,地址空间中的一些地址被映射到它。当分配内存但没有使用足够长的时间或者PC耗尽物理内存时,数据可以转储到交换文件中,并保留在那里直到请求。这种映射对应用程序是透明的,它不知道当前数据的位置:片上或HDD。所以地址空间总是以相同的方式分割。

答案 1 :(得分:0)

As far as I can tell, what you are referring to are limits of how much memory can be allocated。这与操作系统在运行时分配的内存量有很大不同。

答案 2 :(得分:0)

这不是关于内存(物理或虚拟),而是关于地址空间。

您可以将16GB物理内存插入计算机并制作100GB交换文件,但32位(非企业)Windows仍然只能看到4GB(并且GPU内存减去0.75 GB等)。通过PAE,它可以使用更多,但非企业版本不会这样做。

实际内存量之上,有地址空间,也限制为4GB。基本上它不多于也不少于可以用32位数表示的“数字”(在这种情况下是地址)的集合。 由于内核也需要内存,因此会绘制一些任意线条,它恰好位于32位Windows的2GB边界,但也可以进行不同的配置。

nothing 与计算机上的内存量(虚拟或动态)无关,但它是在单个程序实例中可以使用多少内存的限制因素。然而,不是是几个程序可以使用的内存的限制因素。