Saya bertanya-tanya apa perbedaan dan hubungan antara memori logis dan virtual? Bagaimana perbedaan tujuan mereka?
Apakah hubungan dan perbedaannya sama untuk alamat logis dan virtual?
Saya bertanya-tanya apa perbedaan dan hubungan antara memori logis dan virtual? Bagaimana perbedaan tujuan mereka?
Apakah hubungan dan perbedaannya sama untuk alamat logis dan virtual?
Jawaban:
Mari kita membahas perbedaan antara pengalamatan virtual dan logis terlebih dahulu. Saya percaya perbedaannya adalah bahwa "alamat logis" berarti bahwa alamat yang dilihat oleh program berbeda dari alamat fisik dari data yang disimpan dalam RAM.
Jika Anda memiliki memori virtual, mungkin tidak ada alamat fisik sama sekali, karena data yang disimpan dapat ditukar dengan disk. Namun, dimungkinkan untuk memiliki sistem tanpa memori virtual di mana alamat logis berbeda dari alamat fisik, tetapi setiap alamat logis dipetakan ke alamat fisik. Ini akan membuatnya lebih mudah untuk menjalankan beberapa program tanpa mereka saling menginjak, tetapi tidak membiarkan program menggunakan lebih banyak memori daripada memori fisik yang tersedia untuk sistem.
Jadi tidak ada "memori logis" yang terpisah di komputer, meskipun saya kira Anda bisa mengatakan bahwa komputer dengan alamat logis tetapi tidak ada sistem memori virtual yang memiliki sistem memori logis. Saya hanya akan mengatakan bahwa memori logis adalah memori yang dialamatkan melalui beberapa metode tipuan. Apakah ada sistem komputer tertentu yang Anda pikirkan?
-
Mempertimbangkan komentar Anda:
Alamat logis untuk memori fisik yang sama dapat sama atau berbeda. Biasanya dua proses tidak akan memiliki akses ke memori yang sama, karena satu dapat merusak yang lain. Namun, jika mereka telah mengatur untuk menggunakan beberapa bentuk memori bersama, mereka biasanya akan memetakan memori bersama itu ke alamat yang berbeda. Alamat virtual lebih atau kurang merupakan jenis alamat logis, jadi jika Anda memiliki sistem operasi yang mendukung VM, dan dua proses memetakan memori bersama, mereka biasanya akan melihat memori itu berada di alamat yang berbeda, sama seperti jika tidak ada virtual ingatan.
Adapun pemahaman Anda tentang tujuan logis vs virtual, memori virtual adalah untuk menggunakan HD untuk menambah memori yang Anda miliki untuk program. Pengalamatan logis dapat digunakan untuk lebih dari pemisahan proses, tetapi itu akan menjadi salah satu penggunaan utama.
Alamat memori "logis" digunakan oleh suatu proses untuk merujuk kode dan datanya. Terjemahan dari alamat logis ke alamat fisik tergantung pada model memori.
Ketika memori dipetakan secara langsung (yaitu mode nyata), alamat memori logis identik dengan alamat memori fisik.
Jika memori fisik lebih besar dari ruang alamat prosesor (seperti pada prosesor 16-bit), maka perangkat keras bank memori sering digunakan untuk memperluas jumlah memori fisik yang dapat digunakan. Prosesor Intel 8086/8088 menggunakan register segmen fleksibel bukan skema bank tetap. Terjemahan dari alamat logis (16-bit) ke alamat fisik (20-bit) akan menggunakan tabel peta bank. Untuk x86, alamat logis mungkin akan menyertakan spesifikasi register segmen.
Jika rentang alamat fisik lebih besar dari memori fisik tipikal (seperti prosesor 32-bit satu dekade lalu), maka perangkat keras memori virtual digunakan untuk menyediakan penggunaan rentang alamat lengkap. Alamat logis didukung oleh memori fisik sesuai permintaan. Untuk mengakomodasi ruang alamat virtual / logis penuh dan / atau untuk menyediakan setiap proses dengan ruang alamatnya sendiri, toko dukungan diperlukan untuk menyimpan salinan dari memori virtual yang ditukar. Memori yang ditukar dapat diatur oleh segmen atau halaman atau halaman tersegmentasi.
BTW selama bertahun-tahun saya meretas kernel Unix, saya jarang mendengar atau menggunakan ungkapan "alamat logis (memori)". Jika Anda tidak merujuk ke alamat memori fisik, maka itu adalah alamat virtual. Yaitu, "alamat logis" == "alamat virtual" (ketika memori virtual diaktifkan dalam MMU).