Dasar-dasar komputer tentang memori [duplikat]

0

Ketika kapasitas memori utama adalah 2 GB, apa yang bisa menjadi program terbesar yang dapat diakses oleh prosesor dengan dukungan bus alamat 32 bit?

Praveen Roxx
sumber
1
Kata-kata Anda agak canggung, tetapi Win7 versi 32-bit mengalokasikan 2GB (dari ruang alamat virtual 4 GB) untuk proses pengguna. Lihat blogs.technet.microsoft.com/markrussinovich/2008/11/17/…
sawdust

Jawaban:

0

Jika Anda memiliki ruang alamat 32 bit maka Anda dapat mengatasi 2 ^ 32 (4Gi) byte memori. Sejauh program yang berjalan di ruang alamat virtual yang bersangkutan saya tidak melihat alasan mengapa ia tidak bisa mengatasi dan mengakses nilai 4GiB.

Ini mengasumsikan beberapa hal, seperti OS yang menggunakan memori virtual, mungkin beberapa perangkat keras (MMU) untuk membantu dll. Tetapi untuk setiap CPU 32 bit modern dan setiap OS modern ini seharusnya tidak menjadi masalah. Segala sesuatu yang modern mendukung paging, sehingga hanya harus memiliki bagian dari 4GiB yang saat ini diakses dalam memori fisik.


Begitu banyak untuk jawaban umum, sekarang satu untuk windows dan x86.

Windows (sejak era Win2000?) Tidak menggunakan memori virtual dan paging. Ini juga default untuk memisahkan kisaran alamat 4Gi menjadi dua. Bagian atas untuk kernel, bagian bawah untuk program pengguna. Itu memaksakan batas aritificial dari alamat 2GiB untuk program pengguna, atau 3GiB ketika Anda mem-boot kernel dalam mode khusus dan menggunakan program LARGEADDRESSAWARE.

Ini akan membatasi program USER Anda untuk itu.

Lalu ada PAE, secara artifisial memperluas bus memori Anda menjadi 36 bit. PAE adalah lumpur yang jelek dan tidak diperlukan sejak 64 bit CPU (yang telah umum selama dua dekade terakhir).

Ini berubah menjadi posting 'bagaimana-jika' lalu 'jawab X'. Yang berarti akan menyenangkan jika memiliki pertanyaan yang lebih spesifik.

Hennes
sumber
0

Itu akan menjadi 2GB secara teori, tetapi beberapa akan dicadangkan dan / atau digunakan oleh OS itu sendiri.

Perhatikan bahwa proses 32-bit juga terbatas pada 2GB bahkan jika Anda menjalankannya pada OS 64-bit kecuali sengaja dirancang ulang. Jika didesain ulang mempertimbangkan IMAGE_FILE_LARGE_ADDRESS_AWARE, batasnya menjadi, menurut MSDN , 3GB.

Overmind
sumber
1
Kenapa tidak 4GB? Jumlah memori utama tidak membatasi ukuran program, dan bus 32-bit dapat mengatasi 4GB. Kanan?
David Schwartz
@ Davidvidchwartz - Sistem hanya memiliki 2 GB memori fisik, sebuah program tidak dapat mengalokasikan lebih dari jumlah memori fisik yang dapat diakses oleh sistem. Aplikasi Windows 32-bit, hanya akan dapat mengatasi 4 GB, jika PAE digunakan.
Ramhound
@Ramhound Suatu program pasti dapat mengalokasikan lebih dari jumlah memori fisik yang dapat diakses oleh sistem.
David Schwartz
Swap @David Schwartz adalah kasus khusus, jenis penyimpanan data sekunder khusus - bukan memori aktual. Bisa digunakan atau tidak. Saya merujuk pada memori fisik, bukan trik lain yang dapat digunakan untuk memperpanjang penggunaannya.
Overmind
Dan kemudian ada batas proses (saya telah menambahkan itu dalam jawaban) dan masalah bit pointer atas yang harus nol untuk program 32-bit asli.
Overmind