Udostępnij za pośrednictwem


Wirtualna przestrzeń adresowa (zarządzanie pamięcią)

Wirtualna przestrzeń adresowa procesu to zestaw adresów pamięci wirtualnej, których może używać. Przestrzeń adresowa dla każdego procesu jest prywatna i nie może być dostępna przez inne procesy, chyba że jest udostępniona.

Adres wirtualny nie reprezentuje rzeczywistej fizycznej lokalizacji obiektu w pamięci; Zamiast tego system utrzymuje tabelę stron dla każdego procesu, która jest wewnętrzną strukturą danych używaną do tłumaczenia adresów wirtualnych na odpowiadające im adresy fizyczne. Za każdym razem, gdy wątek odwołuje się do adresu, system tłumaczy adres wirtualny na adres fizyczny.

Wirtualna przestrzeń adresowa dla 32-bitowego systemu Windows ma rozmiar 4 gigabajtów (GB) i podzielona na dwie partycje: jedną do użycia przez proces, a drugą zarezerwowaną do użytku przez system. Aby uzyskać więcej informacji na temat wirtualnej przestrzeni adresowej w 64-bitowym systemie Windows, zobacz wirtualną przestrzeń adresową w 64-bitowym systemie Windows.

Aby uzyskać więcej informacji na temat pamięci wirtualnej, zobacz następujące tematy:

Domyślna wirtualna przestrzeń adresowa dla 32-bitowego systemu Windows

W poniższej tabeli przedstawiono domyślny zakres pamięci dla każdej partycji.

Zakres pamięci Zwyczaj
Niski rozmiar 2 GB (0x00000000 przez 0x7FFFFFFF) Używany przez proces.
Wysoka 2 GB (0x80000000 przez 0xFFFFFFFF) Używany przez system.

 

Wirtualna przestrzeń adresowa dla 32-bitowego systemu Windows z 4GT

Jeśli włączono dostrajania 4 gigabajtów (4GT), zakres pamięci dla każdej partycji jest następujący.

Zakres pamięci Zwyczaj
Niski rozmiar 3 GB (0x00000000 przez 0xBFFFFFFF) Używany przez proces.
Wysoka 1 GB (0xC0000000 przez 0xFFFFFFFF) Używany przez system.

 

Po włączeniu biletu 4GT proces, który ma flagę IMAGE_FILE_LARGE_ADDRESS_AWARE ustawioną w nagłówku obrazu, będzie miał dostęp do dodatkowego 1 GB pamięci powyżej niskiego poziomu 2 GB.

Dostosowywanie wirtualnej przestrzeni adresowej dla 32-bitowego systemu Windows

Możesz użyć następującego polecenia, aby ustawić opcję wprowadzania rozruchu, która konfiguruje rozmiar partycji, która jest dostępna do użycia przez proces do wartości z zakresu od 2048 (2 GB) do 3072 (3 GB):

BCDEdit /setincreaseuservaMegabajtów

Po ustawieniu opcji wprowadzania rozruchu zakres pamięci dla każdej partycji jest następujący.

Zakres pamięci Zwyczaj
Niski (0x00000000 przez megabajty) Używany przez proces.
Wysoki (megabajtów+1 do 0xFFFFFFFF) Używany przez system.

 

Windows Server 2003: Ustaw przełącznik /USERVA w boot.ini na wartość z zakresu od 2048 do 3072.