Bellek ile ilgili temel bilgisayar bilgileri [yinelenen]


0

Bu sorunun zaten burada bir cevabı var:

Ana belleğin kapasitesi 2 GB olduğunda, 32 bitlik bir adres veri yolu desteği ile işlemci tarafından erişilebilen en büyük program ne olabilir?


1
İfadeleriniz oldukça gariptir, ancak Win7'nin 32 bit sürümü bir kullanıcı işlemine 2 GB (4 GB sanal adres alanının) tahsis eder. Görmek blogs.technet.microsoft.com/markrussinovich/2008/11/17/...
sawdust

Yanıtlar:


0

Eğer 32 bitlik adres alanınız varsa, 2 ^ 32 (4Gi) byte'lık belleği adresleyebilirsiniz. Sanal adres alanında çalışan bir program söz konusu olduğunda, 4GiB değerine değinmemesi ve erişememesi için hiçbir neden göremiyorum.

Bu, sanal bellek kullanan bir işletim sistemi, yardımcı olmak için bazı donanımlar (MMU) vb. Gibi bir kaç şeyi varsayar. Fakat herhangi bir modern 32 bit CPU ve herhangi bir modern işletim sistemi için bu bir sorun olmamalıdır. Her şey modern sayfalamayı destekliyor, bu yüzden şu anda fiziksel bellekte erişmekte olan 4GiB'nin bir kısmına sahip olmak zorunda.


Genel bir cevap için çok, şimdi bir tane windows ve x86 için.

Windows (win2000 çağından beri) sanal bellek ve çağrı kullanıyor. Ayrıca, 4Gi adres aralığını ikiye bölmek için de varsayılan ayardır. Çekirdeğin üst yarısı, kullanıcı programlarının alt yarısı. Bu, çekirdeği özel bir modda açtığınızda ve LARGEADDRESSAWARE programlarını kullandığınızda kullanıcı programları için yapay bir 2GiB adres sınırı veya 3GiB gerektirir.

Bu, KULLANICI programlarınızı bununla sınırlandırır.

Sonra PAE var, bellek veriyolunuzu 36 bit'e genişleten yapay. PAE çirkin bir çamurdur ve 64 bit işlemcilerden (son yirmi yıldır yaygın olan) beri gerekli değildir.

Thi, 'what-if' sonra 'X' yazısına yanıt veriyor. Bu, daha spesifik bir soruya sahip olmanın iyi olacağını gösterir.


0

Bu teoride 2GB olur, ancak bir kısmı işletim sisteminin kendisi tarafından rezerve edilir ve / veya kullanılır.

Ayrıca, kasıtlı olarak yeniden tasarlanmadıkça, 64 bit işletim sisteminde çalıştırsanız bile 32 bit işlemlerin 2 GB ile sınırlı olduğunu unutmayın. IMAGE_FILE_LARGE_ADDRESS_AWARE dikkate alınarak yeniden tasarlandıysa, limit şu şekilde olur: MSDN’ye göre , 3GB.


1
Neden 4GB olmasın? Ana bellek miktarı program boyutunu sınırlamaz ve 32 bit veri yolu 4 GB'ı adresleyebilir. Sağ?
David Schwartz

@DavidSchwartz - Sistem sadece 2 GB fiziksel belleğe sahip, bir program sistem tarafından erişilebilir fiziksel bellek miktarından daha fazlasını tahsis edemez. Bir 32-bit Windows uygulaması, PAE kullanıldığında sadece 4 GB'ı adresleyebilecektir.
Ramhound

@Ramhound Bir program kesinlikle sisteme erişilebilir fiziksel bellek miktarından fazlasını tahsis edebilir.
David Schwartz

@David Schwartz takas, gerçek bir hafıza değil, özel bir ikincil veri depolama türüdür. Kullanılabilir veya kullanılamaz. Fiziksel hafızayı kastediyordum, kullanımını genişletmek için kullanılabilecek diğer numaralar değil.
Overmind

Ve sonra süreç sınırlaması var (cevabını ekledim) ve orijinal bir 32-bit program için sıfır olması gereken en yüksek nokta işaretçilerinin sorunu var.
Overmind
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.