|
|
Windows可管理的最大内存和Windows程序(进程)可寻址的最大空间是两个不同的概念。32位的程序最大只能寻址4GB,其中用户模式占2GB,内核占2GB。 这里的内存是Windows的虚拟内存空间,其实包括了物理内存和页面文件。因为系统内存有限,而每个进程都假设自己获得4GB的空间,所以每个进程的真实内存空间一部分在物理内存中,一部分在被交换到页面文件中。 那个boot.ini里面的/3GB参数,实际上修改的是4GB的内存分配模式,3GB给了用户模式,1GB给了内核,让应用程序能用到跟大的空间。 + D/ j2 {3 A& a: ?
' A" |4 `- @* nWindows所能管理的空间,是另一个概念。同样是32位的系统,Windows 2003 Std可管理4GB,而Enterprose就可以管理32GB。这并不奇怪, 系统在自动调配内存自由,通过的其实就是PAE,就如当年DOS下通过EMS,XMS突破1M的访问空间。 PAE也是在内存中开了一个窗口,把超出4GB的内存,映射到4GB的范围中,而应用程序的使用则是透明的。对于能管理大于4GB的操作系统,PAE是自动打开的。 系统及应用程序都能利用这些‘多’出的内存。 对于XP,2000 pro这些最多只能管理4GB的操作系统,大内存其实并没有浪费,应用程序可以调用AWE(通过PAE)来使用这些内存,自己作映射了。
/ w6 L0 g) o' t, s8 {5 @7 ?) I
$ U7 L) z" m- O6 K微软承认在某些情况下,4GB只被认出3GB。原因是由于XP或2003在某些主板的行为所致。微软的建议是升级到XP SP2或2003 SP1。 这有的时候并不成功。原因是系统硬件具有内存冗余(redundant memory)或内存镜像(memory mirroring)的功能。只能参考主板的手册,在BIOS中关闭对于的选项。
$ y% P4 l2 s* f- }: D, w9 q' F/ v& T7 z. o( `9 J" i
* h3 P. x3 h6 M3 b! {% ^Windows可管理的最大内存和Windows程序(进程)可寻址的最大空间是两个不同的概念。32位的程序最大只能寻址4GB,其中用户模式占2GB,内核占2GB。 这里的内存是Windows的虚拟内存空间,其实包括了物理内存和页面文件。因为系统内存有限,而每个进程都假设自己获得4GB的空间,所以每个进程的真实内存9 r' V. b+ u2 }1 W! a+ z
4 ?9 W# u7 F2 A0 v" p. P$ ~
[ 本帖最后由 GCSER 于 2006-11-19 00:50 编辑 ] |
|