Pertanyaan Berapa banyak memori yang dapat mengakses proses 32 bit pada sistem operasi 64 bit?


Pada Windows, dalam keadaan normal, proses 32 bit hanya dapat mengakses 2GB RAM (atau 3GB dengan switch khusus di file boot.ini). Ketika menjalankan proses 32 bit pada sistem operasi 64 bit, berapa banyak memori yang tersedia? Apakah ada switch atau pengaturan khusus yang dapat mengubah ini?


75
2018-03-12 17:00


asal


Jawaban:


2 GB secara default. Jika aplikasinya diketahui oleh ruang alamat besar (terkait dengan / LARGEADDRESSAWARE), aplikasi ini mendapat 4 GB (bukan 3 GB, lihat http://msdn.microsoft.com/en-us/library/aa366778.aspx)

Mereka masih terbatas pada 2 GB karena banyak aplikasi bergantung pada bit atas pointer menjadi nol.


75
2018-03-12 17:04



4 GB dikurangi apa yang sedang digunakan oleh sistem jika Anda menautkan dengan / LARGEADDRESSAWARE.

Tentu saja, Anda harus lebih berhati-hati dengan aritmatika pointer jika Anda mengatur bendera itu.


17
2018-03-12 17:03



Tidak ada yang tampaknya menyentuh fakta bahwa jika Anda memiliki banyak aplikasi 32-bit yang berbeda, subsistem wow64 dapat memetakannya di mana saja dalam memori di atas 4G, sehingga pada jendela 64-bit dengan memori yang cukup, Anda dapat menjalankan lebih banyak aplikasi 32-bit dari pada sistem 32-bit asli.


14
2018-01-22 22:09



Proses 32-bit masih terbatas pada kendala yang sama dalam OS 64-bit. Masalahnya adalah bahwa pointer memori hanya 32-bit, sehingga program tidak dapat menetapkan / menyelesaikan alamat memori yang lebih besar dari 32 bit.


7
2018-03-12 17:04



Proses 32-bit tunggal di bawah OS 64-bit terbatas pada 2Gb. Tetapi jika dikompilasi ke file EXE dengan bit IMAGE_FILE_LARGE_ADDRESS_AWARE, itu kemudian memiliki batas 4 GB, bukan 2Gb - lihat https://msdn.microsoft.com/en-us/library/aa366778(VS.85).aspx

Dalam kedua kasus, ruang alamat virtual kernel dibagi di semua proses. Itulah mengapa bahkan jika Anda memiliki jumlah proses 32-bit yang sangat besar, mereka dapat kehabisan memori terlepas dari fakta bahwa Anda memiliki banyak memori yang tersedia untuk sistem operasi 64-bit Anda, katakanlah, 16 GB - 32-bit proses secara total dapat dengan cepat kehabisan ruang alamat virtual kernel yang tersedia bagi mereka (maksimal 2GB).

Hal-hal yang Anda dengar tentang flag boot khusus, switch 3 GB, / 3GB, atau / userva semuanya tentang sistem operasi 32-bit dan tidak berlaku pada Windows 64-bit.

Lihat https://msdn.microsoft.com/en-us/library/aa366778(v=vs.85).aspx untuk lebih jelasnya.

Seperti tentang sistem operasi 32-bit, bertentangan dengan keyakinan, tidak ada batasan fisik 4GB untuk sistem operasi 32-bit. Sebagai contoh, Sistem Operasi Server 32-bit seperti Microsoft Windows Server 2008 32-bit dapat mengakses hingga 64 GB (Windows Server 2008 Enterprise dan edisi Datacenter) - dengan menggunakan Perpanjangan Alamat Fisik (PAE), yang pertama kali diperkenalkan oleh Intel di Pentium Pro, dan kemudian oleh AMD dalam prosesor Athlon - itu mendefinisikan hierarki tabel halaman dari tiga level, dengan entri tabel 64 bit masing-masing, bukan 32, memungkinkan CPU ini untuk secara langsung mengakses ruang alamat fisik lebih besar dari 4 gigabyte - secara teoritis, OS 32-bit dapat mengakses 2 ^ 64 byte secara teoritis, atau 17,179,869,184 gigabyte, tetapi segmen ini dibatasi oleh 4GB. Namun, karena alasan pemasaran, Microsoft membatasi memori maksimum yang dapat diakses pada sistem operasi non-server menjadi hanya 4GB, atau bahkan 3 GB secara efektif. Dengan demikian, satu proses dapat mengakses lebih dari 4GB pada OS 32-bit - dan server Microsoft SQL adalah contohnya.


2
2017-07-01 17:05



Anda memiliki batasan dasar yang sama ketika menjalankan proses 32-bit di bawah Win64. Aplikasi Anda berjalan dalam 32 tetapi subsistem yang melakukan yang terbaik untuk terlihat seperti Win32, dan ini akan mencakup pembatasan memori untuk proses Anda (lebih rendah 2GB untuk Anda, 2GB atas untuk OS)


-1
2018-03-12 17:03



Batasnya bukan 2g atau 3gb yang 4gb untuk 32bit.

Alasan orang berpikir 3gb-nya adalah bahwa OS menunjukkan 3gb gratis ketika mereka benar-benar memiliki 4gb sistem ram.

RAM totalnya 4 GB. Jadi jika Anda memiliki kartu video 1 gb yang dianggap sebagai bagian dari total ram yang dilihat oleh OS 32-bit.

4Gig bukan 3 bukan 2 mengerti?


-9
2018-05-14 12:27