1. 程式人生 > >windows 32位作業系統中,每個程序最大可用記憶體空間為3GB

windows 32位作業系統中,每個程序最大可用記憶體空間為3GB

 在windows 32位作業系統中,每一個程序能使用到的最大空間(包含作業系統使用的核心模式地址空間)為4GB , 在通常情況下作業系統會分配2GB記憶體給程序使用,另外2GB記憶體為作業系統保留, 例如安裝了64GB記憶體,在伺服器上安裝了SQL / Exchange / ISA / IIS ..... ,那麼每個程序(SQL /Exchange / ISA /III ) 能用到的最大空間通常為2GB ,但是微軟允許通過在boot.ini 中加入/3GB引數,將作業系統保留的2GB記憶體減少到1GB,從而將分配給程序的記憶體提高到3GB 。*n~ KD-S3c2`&^9o oT

J ^2M/O&
[email protected]
&q:Y
如果希望應用程式能使用更大的記憶體,他就需要將他的作業系統和應用程式遷移到64 位平臺上。C KL(v}-H
x [hHj|Qe

|F/W&CS @ 具體說明可以看下面的文章Y3s{ev.h _)I

;BLW)xf#\ [url=http://msdn2.microsoft.com/zh-cn/library/ms189334.aspx]http://msdn2.microsoft.com/zh-cn/library/ms189334.aspx[/url]Z0e:l~#\b
$lv2nmL

[email protected]&z2o0[8Y 程序地址空間   
)Bu H1O)_%A `M.X2O
*TAr P"vlg
所有 32 位應用程式都有 4 GB 的程序地址空間(32 位地址最多可以對映 4 GB 的記憶體)。對於 Microsoft Windows 作業系統,應用程式可以訪問 2 GB 的程序地址空間,稱為使用者模式虛擬地址空間。應用程式擁有的所有執行緒都共享同一個使用者模式虛擬地址空間。其餘 2 GB 為作業系統保留(也稱為核心模式地址空間)。所有作業系統版本(從 Windows 2000 Server 開始,包括 Windows Server 2003)都有一個 boot.ini 開關,可以為應用程式提供訪問 3 GB 的程序地址空間的許可權,從而將核心模式地址空間限定為 1 GB。Z+R(j-}'in oOi

2S)lAP\S
[url=http://img.sg.dell.com/fileup/at.asp?fn=20075251094218466.jpg][img]http://img.sg.dell.com/fileup/at.asp?fn=20075251094218466.jpg[/img][/url]Vcp'G B\3x~
地址視窗化擴充套件外掛 (AWE) 通過允許訪問儘可能多的作業系統支援實體記憶體來擴充套件 32 位應用程式的功能。AWE 可以將最大記憶體容量 64 GB 的一部分對映到使用者地址空間來實現此功能。應用程式緩衝池和 AWE 對映記憶體之間的對映通過操作 Windows 虛擬記憶體表來完成。
!rqF `~ V5u{h 為了支援 3 GB 的使用者模式程序空間,必須將 /3gb 引數新增到 boot.ini 檔案中並重新啟動計算機,從而使 /3gb 引數生效。設定此引數後,使用者應用程式執行緒可以定址 3 GB 的程序地址空間,而為作業系統保留 1 GB 的程序地址空間。2_0Jn0e e"_k3udM
注意:  q"}*O)K2N4h;j ^
如果計算機上有 16 GB 以上的可用實體記憶體,作業系統需要 2 GB 的程序地址空間供系統使用,因此只能支援 2 GB 的使用者模式地址空間。為了讓 AWE 能夠使用 16 GB 以上的記憶體,應確保 boot.ini 檔案中沒有 /3gb 引數。否則,作業系統就不能定址 16 GB 以上的記憶體。