8

Bu 32bit Windows uygulamalarının 2 GB RAM ile sınırlı olduğunu okuyordum çünkü üstteki 2GB adresleme alanı Windows işletim sistemi (ve iirc, VRAM) için ayrılmıştır. 32-bit WinXp'de/3GB bayrağı kullanırsanız, adresleme için 3 GB'ye kadar RAM alabilirsiniz, ancak genellikle userva değerleri ile çimdiklemeniz gerekir. Bunu, büyük bir adres olarak PE başlığında ve 4 GB'den fazla RAM'in bilincinde bir bayrağıyla, Windows'un 64 bit sürümlerinde, bir uygulamanın kendi bellek yönetimi için 4 GB'lık adresleme alanının tamamını kullanabileceğini duydum.Büyük Adres Aware bayrağı, 64 bit bilgisayarlarda 32 bit uygulamalar için nasıl çalışır?

Diğer taraftan, windows API'yi çağırdığınızda, sağladığınız 32 bit adres alanı içinde bellek konumlarını çağırmanız gerektiğinden eminim. Yani, tam olarak ne kadar RAM bir 32-bit büyük adres, 64-bit ortamda, kendisi için uygulama kullanımı farkında olabilir? Ve neden?

Teşekkür ederiz.

cevap

5

Sanal adres alanı 4 GB'ye uzatıldı. Address Windowing Extension API'u kullanmıyorsanız, erişebileceğiniz maksimum bellek miktarı 4GB'dir. Bu alandan bazıları .dlls ve benzeri diğer şeyler için OS tarafından ele alınacak, ancak bir işaretçinin 32 bitini kullanan bir geri belleğe sahip olmanız mümkün olacaktır.

Bu arada, büyük bir adresin farkında değilseniz, tüm bellek işaretçileri INT_PTR'a gönderilirken negatif olmaz. Bu, işaretçiye işaretlenmiş değerler kabul edildiğinde, büyük adres farkında bayrağını kullanırken, birkaç ince hatadan daha fazlasının kaynağıdır.

+0

Bir dakika bekleyin, bu durumda, 32 bit Windows Xp işletim sisteminde AWE'yi/3GB akıcılığı yerine 4 GB RAM'den düzgün şekilde yararlanmak için kullanmak mümkün mü? –

+7

+1/LARGEADDRESSAWARE altında çalışmayı planlıyorsanız, çeşitli yazılımların 32 bit işaretçilerden> 2GB ile hataları olduğu konusunda uyarınız. Hatta bazı MS API fonksiyonları (Size Vista'da GetCursorPos'a bakıyorum!) Bu sorunları ortadan kaldırmanın yolu ve ihtiyacınız varsa bunları çalıştırmak [üst bellek ayırma] kullanmaktır (http://msdn.microsoft) kayıt defteri ayarıyla etkinleştirilen .com/ja-jp/isv/bb190527 (l = tr-us)). –

+0

Evet, ancak fiziksel bellek sayfalarını açık bir şekilde sanal adres alanına eşlemeniz gerekir. Eski bir DOS döneminden geçiş yapan VESA bankasına benzer. – MSN

İlgili konular