Pertanyaan Ruang alamat virtual dalam sistem 64 bit berjalan dalam mode kompatibilitas


Saya melihat bahwa pada OS windows 64 bit, ruang alamat virtual pengguna yang tersedia adalah 8 terra byte. Tetapi jika program yang kita jalankan pada ini berjalan dalam mode kompatibilitas 32 bit apakah ini banyak ruang pengguna masih tersedia? atau apakah itu berperilaku seperti OS 32 bit normal dan hanya memberikan ruang alamat 2GB pengguna?


9
2018-01-29 04:58


asal


Jawaban:


Microsoft memiliki bagan yang menunjukkan berbagai batasan: Batas Memori untuk Rilis Windows

Untuk meringkas hanya ruang alamat virtual pengguna-mode:

  • Windows 32-bit:
    • Proses 32-bit: 2 GB secara default; 3 GB dengan /LARGEADDRESSAWARE:YES dan 4GT
  • Windows 64-bit (arsitektur x64):
    • Proses 32-bit: 2 GB secara default; 4 GB dengan /LARGEADDRESSAWARE:YES
    • Proses 64-bit: 8 TB secara default; 2 GB dengan /LARGEADDRESSAWARE:NO

4GT adalah tuning 4 gigabyte:

  • XP: /3GB boot.ini beralih
  • Vista: bcdedit /set increaseuserva 3072

Mark Russinovich membuat entri blog yang menjelaskan banyak batasan ini: Mendorong Batas Windows: Memori Virtual 


12
2018-01-29 06:13



Proses Anda hanya akan melihat ruang alamat virtual 4GB ketika sedang berjalan sebagai proses 32 bit. Itu tidak akan bisa mengatasi apa pun yang lebih tinggi.


0
2018-01-29 05:01



Jawaban asli saya sangat buruk. Berikut ini adalah tautan yang menjelaskan apa yang JaredPar katakan dengan cukup baik.

http://msdn.microsoft.com/en-us/library/ms189334.aspx 


0
2018-01-29 05:48



Sejauh perangkat keras yang bersangkutan, ketika Anda menjalankan dalam mode kompatibilitas (yaitu IA32_EFER.LMA diatur dan bit L jelas dalam pendeskripsi segmen CS) segmen tersebut berperilaku seperti segmen 32-bit. Itu adalah:

  • basis segmen dibatasi hingga 32 bit.
  • batas segmen dibatasi hingga 32 bit juga (menggunakan bit G).

Ini secara efektif membatasi Anda untuk 4GB alamat virtual. Saya tidak akrab dengan bagaimana OS partisi memori virtual dalam berbagai mode, tetapi ini adalah batas perangkat keras. (maaf ... saya seorang pria hardware, bukan ahli OS)


0
2018-01-29 07:15



Jika program Anda berjalan sebagai proses 32 bit di subsistem Wow64, program ini akan melihat ruang alamat yang sama persis seperti yang akan terlihat pada OS 32 bit yang sebenarnya. Tanpa opsi khusus, proses 32 bit akan memiliki 2GB memori yang tersedia.

Satu-satunya perbedaan adalah memori yang tersedia jika Anda menggunakan LargeAddressAware pilihan. Dalam proses 32 bit yang normal, ini memungkinkan memori 3GB yang dapat dialamatkan. Dalam proses Wow64, ia dapat melihat hingga 4GB (Sumber)


0
2018-01-29 05:07



Perlu dicatat bahwa menjalankan proses 32-bit pada IIS 6.0+ dengan mesin 64-bit / OS, proses dapat mengatasi hingga 4GB memori.


0
2018-04-12 13:45