64 bit işletim sisteminde 32 bit uygulama belleği kullanımı.


13

İşletim sistemim 64 bit ise, 32 bit uygulamalarım 64 bit bellek (> 3.5GB) kullanabilir mi?

Yanıtlar:


6

Uygulama AWE farkındaysa, 64 bit bir uygulamadan daha az verimli olsa da, 4Gb'nin ötesinde bir adres alanı kullanabilirler. 32 bit Windows varyantları altındaki 32 bit işlemlerin, PAE etkinleştirilmişse ve işlem bunu kullanabiliyorsa, 32 bit adres alanının izin vereceğinden daha fazlasına erişmesi bile mümkündür.

Tek bir 32 bit işlemi (AWE farkında değildir) genellikle 3 Gb (kendi sanal adres alanının ilk Gb çekirdeği ile ilgili eylem için ayrılmış olan) ile sınırlıdır ancak Birden süreçleri çalıştırıyorsanız o zaman daha kullanmak mümkün olacak içinde toplam (her biri 3 Gb için kullanabilir, izin toplam bellek) sanal adres boşluk gibidir değil ortak.

İşlem başına sınır varlık hizmetleri süreci yerine iplik bazlı daha dayanma eğilimindedir bir Unix benzeri ortamda daha yararlıdır (süreçler kaynakları tek işlem payında birden çok iş parçacığı ve bu nedenle tek bir 3Gb sanal adres alanını paylaşmak) daha sık olduğu gibi Windows altında ( Windows'ta yeni bir işlem başlatmak için oldukça pahalı iş parçacıkları tercih edilir, çoğu Unix ortamında yeni bir işlem başlatmak yeni bir iş parçacığı başlatmaktan çok daha fazla kaynak tüketmez) . Örneğin, sadece SQL Server çalıştıran bir makine için çok yararlı değildir, çünkü bu sadece bir işlem olacaktır, bu yüzden 3Gb sınırına ulaşacaktır (bazı sürümler AWE farkında olacak şekilde yapılandırılabilir, ancak hepsi değil, özelliğinin bir sonraki büyük sürümde kaldırılması planlanmaktadır) .

32 bitlik işlemlerin toplamda 3Gb'den fazlasını kullanabilmesinin yanı sıra, işletim sistemi disk önbelleğe almak için kullanılmayan herhangi bir belleği kullanabilecektir, bu nedenle işlemlerin dosyaları bu şekilde açmadığını varsayarak boşa gitmeyebilir OS'ye bunu yapmaktan rahatsız olmamasını söyleyecek.


Image_fıle_large_address_aware grubu ile 32-bit işlem 4 GB değil, 3. bir sınırı vardır msdn.microsoft.com/en-us/library/aa366778(VS.85).aspx
Marka Sowul

5

Uygulama AWE kullanıyorsa , evet (64-bit işletim sistemleri ile sınırlı olmasa da). Bu olmadan, işlem yine de 4GB adres alanı ile sınırlıdır.


-1, doğru olsa da, hiçbir (AWE olmayan) 32 bit işlemin hiç 4GB RAM'i olacağından kısmi yanıtın yanıltıcı olduğunu düşünüyorum.
pipTheGeek

@pipTheGeek Hatalı: IMAGE_FILE_LARGE_ADDRESS_AWARE ayarlı = 4GB kullanılabilir 32 bit işlem. msdn.microsoft.com/en-us/library/aa366778(VS.85).aspx
Mark Sowul

@ Mark - Bunu unutmuştum ve cevabımı aşağıda düzelttim. Yine de bu cevabın hala eksik olduğunu düşünüyorum.
pipTheGeek

3

Sorta, ne demek istediğine bağlı olarak.

Windows varsayılıyor ...

İşletim sistemi 64 bit ise, varsayılan olarak 32 bit işlem 2 GB kullanıcı adresi sanal adres alanı alır. .Exe dosyasının PE üstbilgisi IMAGE_FILE_LARGE_ADDRESS_AWARE bayrağıyla işaretlenmişse, işlem 4 GB kullanıcı adresli sanal adres alanı alır. Her iki durumda da, çekirdeğin sanal adres alanı, tüm işlemler arasında paylaşıldığından 64 bit işlemlerle aynıdır. Ayrıca, IMAGE_FILE_LARGE_ADDRESS_AWARE bayrağını ayarlamayan 64 bit işlemlerin de yalnızca 2 GB kullanıcı sanal adres alanına erişimi vardır.

Özel önyükleme bayrakları, 3 GB, / 3 GB anahtarları veya / userva hakkında duyduklarınız 32-bit işletim sistemleriyle ilgilidir ve 64-bit Windows için geçerli değildir.

Tüm bunlar, Microsoft'un Windows Sürümleri için Bellek Sınırları sayfasında çok ayrıntılı bir şekilde gözden geçirilmiştir .

@David Spillett'in yanıtı başka bir noktaya da değiniyor: Hepsi 2 GB kullanıcı alanıyla sınırlı olan birden fazla işlem, dosya önbelleği gibi, yine de önemli miktarda RAM kullanabilir.


0

32 bit işletim sistemindeki 32 bit işlemde, 2 GB işletim sistemi tarafından ayrılmış, 2 GB işlem için kullanılabilen 4 GB adres alanı vardır.
İşletim sistemi için ayrılan miktarı yalnızca 1 GB olarak değiştiren ve yalnızca işlem bayraklarda büyük adres farkında olduğunu bildiren işlemin 3 GB, AMA olmasına izin veren bir işletim sistemi (/ 3GB) belirtilebilen bir anahtar vardır. çalıştırılabilir.

64 bit işletim sisteminde, 32 bit işlem büyük adres farkındaysa 4GB, aksi takdirde 2GB alır.

Bütün bunlar AWE dışı bilinçli süreçler içindir. İşlem AWE kullanabiliyorsa, diğerlerinin söylediği gibi, büyük bir adres alanı kullanabilir, ancak 64 bit işlemden daha az verimli olabilir.

PAE, 32 bit işletim sisteminin 4 GB'den fazla RAM kullanmasına izin verir, ancak uyumluluk sorunları vardır ve XP'de hizmet paketlerinden biri tarafından devre dışı bırakılmıştır, bu nedenle yalnızca sunucu işletim sistemi sürümlerinde kullanılabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.