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?
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?
Yanıtlar:
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.
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.