Yah, saya tidak mengharapkan jawaban singkat dari yang tersedia dari sini.
Yang saya pahami tentang OS 32-bit adalah, alamat dinyatakan dalam 32 bit, jadi paling banyak OS bisa menggunakan 2^32 =ruang memori 4GB
Yang paling proses bisa alamat adalah 4GB. Anda berpotensi membingungkan memori dengan ruang alamat . Sebuah proses dapat memiliki lebih banyak memori daripada ruang alamat. Itu benar-benar legal dan cukup umum dalam pemrosesan video dan aplikasi intensif memori lainnya. Suatu proses dapat mengalokasikan lusinan GB memori dan menukarnya masuk dan keluar dari ruang alamat sesuka hati. Hanya 2 GB yang dapat masuk ke pengguna ruang alamat pada suatu waktu.
Jika Anda memiliki garasi empat mobil di rumah Anda, Anda masih dapat memiliki lima puluh mobil. Anda tidak dapat menyimpan semuanya di garasi Anda. Anda harus memiliki penyimpanan tambahan di tempat lain untuk menyimpan setidaknya 46 di antaranya; mobil mana yang Anda simpan di garasi dan mana yang Anda simpan di tempat parkir di ujung jalan terserah Anda.
Apakah ini berarti OS 32-bit apa pun, baik itu Windows atau unix, jika mesin memiliki file halaman RAM + pada hard disk lebih dari 4GB, misalnya RAM 8GB dan file halaman 20GB, tidak akan pernah ada "memori habis"?
Sama sekali tidak berarti demikian. Satu proses bisa menggunakan lebih banyak memori dari itu! Sekali lagi jumlah memori yang digunakan suatu proses hampir sama sekali tidak terkait dengan jumlah ruang alamat virtual yang digunakan proses. Sama seperti jumlah mobil yang Anda simpan di garasi sama sekali tidak terkait dengan jumlah mobil yang Anda miliki.
Selain itu, dua proses dapat berbagi halaman memori non-pribadi . Jika dua puluh proses semuanya memuat DLL yang sama, semua proses berbagi halaman memori untuk kode itu. Mereka tidak berbagi ruang alamat memori virtual , mereka berbagi memori .
Maksud saya, jika tidak jelas, adalah bahwa Anda harus berhenti menganggap memori dan ruang alamat sebagai hal yang sama, karena keduanya sama sekali bukan hal yang sama.
jika mesin OS 32-bit ini memiliki RAM 2GB dan file halaman 2GB, meningkatkan ukuran file halaman tidak akan membantu kinerjanya. Apakah ini benar?
Anda memiliki lima puluh mobil dan garasi empat mobil, dan tempat parkir 100 mobil di ujung jalan. Anda menambah ukuran tempat parkir menjadi 200 tempat. Apakah ada mobil Anda yang menjadi lebih cepat karena Anda sekarang memiliki 150 tempat parkir tambahan, bukan 50 tempat parkir tambahan?
Jawaban Ramesh sepenuhnya salah. Suatu proses tidak dapat memiliki lebih banyak memori daripada ruang alamat, dan hanya karena proses tidak dapat mengatasinya !! Untuk menggunakan lebih dari 4GB, proses perlu mengaksesnya dengan alamat, seperti menggunakan ponters di C/C++. Jika Anda seharusnya dapat memiliki, misalnya, 10GB RAM, bagaimana Anda dapat mengetahui proses untuk mengakses data yang terletak di 5GB, jika penunjuk Anda, dalam 32-bit, dapat mencapai paling banyak 4gb? Tidak mungkin. Semua penjelasannya berkaitan dengan sistem operasi. Itu dapat mengaktifkan blok 4GB tertentu paling banyak, dari kumpulan, katakanlah, 64GB. Jadi selalu ada maksimum 4GB secara bersamaan, dan proses apa pun dapat mengakses paling banyak 4GB. Kemudian, untuk proses yang berbeda, SO dapat mengaktifkan blok 4GB yang berbeda dari kumpulan, tetapi prosesnya lagi akan dibatasi hingga 4GB. Sebenarnya, meskipun pointer 32-bit dapat mengatasi hingga 4GB, batas untuk 32 Proses -bit adalah 3GB.