虛擬位址空間 (記憶體管理)
進程的虛擬位址空間是一組可以使用的虛擬記憶體位址。 每個進程的位址空間都是私用的,除非共用,否則無法由其他進程存取。
虛擬位址不代表記憶體中對象的實際實體位置;相反地,系統會維護 每個進程的分頁表 ,這是用來將虛擬位址轉譯成其對應實體地址的內部數據結構。 每次線程參考位址時,系統會將虛擬位址轉譯為實體位址。
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 之間的值。