虛擬位址空間 (記憶體管理)

進程的虛擬位址空間是一組可以使用的虛擬記憶體位址。 每個進程的位址空間都是私用的,除非共用,否則無法由其他進程存取。

虛擬位址不代表記憶體中對象的實際實體位置;相反地,系統會維護 每個進程的分頁表 ,這是用來將虛擬位址轉譯成其對應實體地址的內部數據結構。 每次線程參考位址時,系統會將虛擬位址轉譯為實體位址。

32 位 Windows 的虛擬位址空間大小為 4 GB,並分成兩個分割區:一個供進程使用,另一個保留供系統使用。 如需 64 位 Windows 中虛擬位址空間的詳細資訊,請參閱 64 位 Windows 中的虛擬地址空間。

如需虛擬記憶體的詳細資訊,請參閱下列主題:

32 位 Windows 的預設虛擬位址空間

下表顯示每個分割區的預設記憶體範圍。

記憶體範圍 使用方式
低 2GB (0x00000000到0x7FFFFFFF) 由進程使用。
高 2GB (0x80000000到0xFFFFFFFF) 由系統使用。

 

具有 4GT 的 32 位 Windows 虛擬地址空間

如果 已啟用 4 GB 微調 (4GT),則每個分割區的記憶體範圍如下所示。

記憶體範圍 使用方式
低 3GB (0x00000000到0xBFFFFFFF) 由進程使用。
高 1GB (0xC0000000到0xFFFFFFFF) 由系統使用。

 

啟用 4GT 之後,在其 映像標頭中設定IMAGE_FILE_LARGE_ADDRESS_AWARE 旗標的程式,將可存取高於低 2 GB 的額外 1 GB 記憶體。

調整 32 位 Windows 的虛擬地址空間

您可以使用下列命令來設定開機項目選項,以設定行程可使用的數據分割大小,設定介於 2048 (2 GB) 和 3072 (3 GB) 之間的值:

BCDEdit /set increaseuserva Megabytes

設定開機項目選項之後,每個分割區的記憶體範圍如下所示。

記憶體範圍 使用方式
低 (0x00000000到 MB 由進程使用。
高 (MB+1 到 0xFFFFFFFF) 由系統使用。

 

Windows Server 2003:boot.ini 中的 /USERVA 參數設定為介於 2048 和 3072 之間的值。