Saya sedang memeriksa catatan saya untuk 'Memori Virtual' dan definisi dalam buku teks saya adalah:
Proses mengalokasikan bagian penyimpanan sekunder untuk bertindak sebagai bagian dari memori utama
Dimana seperti kata Wikipedia :
Memori virtual adalah teknik sistem komputer yang memberikan program aplikasi kesan bahwa ia memiliki memori kerja yang bersebelahan (ruang alamat)
dan (Wikipedia juga mengatakan)
Perhatikan bahwa "memori virtual" lebih dari sekadar "menggunakan ruang disk untuk menambah ukuran memori fisik"
Adakah yang bisa menawarkan klarifikasi mana yang benar?
virtual-memory
Yacoby
sumber
sumber
Jawaban:
Memori virtual adalah lapisan abstraksi yang disediakan untuk setiap proses. Komputer memiliki, katakanlah, 2GB RAM fisik, ditangani dari 0 hingga 2G. Suatu proses mungkin melihat ruang alamat 4GB, yang sepenuhnya dimiliki oleh dirinya sendiri. Pemetaan dari alamat virtual ke alamat fisik ditangani oleh unit manajemen memori, yang dikelola oleh sistem operasi. Biasanya ini dilakukan dalam "halaman" 4KB.
Ini memberikan beberapa fitur:
Buku teks Anda mendefinisikan memori virtual (salah) hanya sebagai # 3.
Bahkan tanpa bertukar, Anda perlu mewaspadai memori virtual jika Anda menulis driver perangkat untuk perangkat yang melakukan DMA (akses memori langsung). Kode driver Anda berjalan pada CPU, yang berarti akses memorinya melalui MMU (virtual). Perangkat mungkin tidak tidak pergi melalui MMU, sehingga melihat alamat fisik baku. Jadi sebagai penulis driver Anda perlu memastikan:
sumber
Saya akan mencoba memulai dengan lambat, dan kemudian menyatukan ini untuk Anda. Seperti ini:
Memori virtual, seperti yang biasa digunakan, mengacu pada "paging". Seperti namanya, paging seperti notepad manusia.
Ketika Anda menghitung jumlah sederhana, atau mempelajari informasi sederhana, Anda melakukan semuanya di kepala Anda: Anda hanya memuat semua informasi, memprosesnya, dan mendapatkan jawabannya. Ini seperti komputer yang memuat file dari hard drive - itu memuat program atau gambar atau informasi lain yang diperlukan untuk bekerja ke dalam "memori nyata" (atau "memori fisik") dan bekerja padanya dengan "otak" itu ( prosesornya).
Namun, ketika Anda mempelajari informasi yang rumit, atau bekerja dengan jumlah yang kompleks, Anda mungkin tidak dapat memasukkan semua itu di kepala Anda sekaligus. Anda menjadi bingung, mulai melambat, gagal menyimpan semuanya di sana sekaligus, dan harus melupakan sesuatu untuk mengingat hal lain.
Solusi manusia adalah menggunakan notepad. Kami mencatat pada halaman-halaman semua hal yang tidak dapat kami ingat sekaligus, tetapi merujuk mereka saat melakukan penjumlahan. Kami mungkin tidak dapat mengingat daftar besar angka penjualan untuk bulan itu, tetapi kami dapat melihat halaman-halamannya, mendapatkan informasi sedikit demi sedikit, dan memproses setiap bit. Ini seperti komputer "paging" memorinya - menulis halaman yang penuh dengan informasi, dan memasukkannya ke dalam "memori virtual" untuk referensi di kemudian hari, dan menyadari bahwa ia membutuhkan sebuah halaman, dan memuat kembali halaman itu dari memori virtual ke memori nyata. Di linux dan unix, tempat di mana halaman-halaman ini disimpan secara harfiah disebut "pagefile", dan halaman-halaman data dalam memori secara harfiah disebut "halaman". Sistem yang berbeda memiliki nama yang berbeda untuk hal-hal ini, tetapi konsep umumnya hampir sama.
Jadi sungguh, paging sangat sederhana. Semua halaman informasi tidak sesuai dengan memori, sehingga beberapa halaman dimasukkan ke dalam disk, dan dimuat lagi nanti.
Sekarang, yang menjadi lebih rumit adalah bahwa, sistem modern menampilkan pemetaan memori dan perlindungan memori, yang semuanya biasanya ditangani oleh sistem perangkat keras yang sama di komputer: unit manajemen memori, atau MMU.
Dalam komputer multitasking (modern), yang dapat menjalankan banyak program sekaligus, dan fitur perlindungan memori, setiap program biasanya dipisahkan dari program lain yang berjalan pada sistem yang sama. Dengan cara ini, satu program tidak dapat mengubah program lain hanya dengan mengakses memorinya - MMU secara fisik memisahkan ruang alamat satu program dari yang lain. Dengan kata lain, program pengguna tidak melihat program pengguna lain atau bahkan program lain. Mereka tidak melihat "memori nyata" - mereka melihat "memori virtual" mereka sendiri.
Sekarang, konsep isolasi memori dan konsep pagefile ini adalah dua hal yang berbeda secara konseptual, yang mungkin mengapa Anda bingung. Namun, kuncinya adalah keduanya bekerja menggunakan MMU - unit manajemen memori, yang membagi memori menjadi halaman, dan memetakan halaman ke ruang alamat virtual.
Jadi, ketika sebuah program meminta memori pada "alamat memori" tertentu, apa yang sebenarnya terjadi adalah bahwa halaman memori untuk program itu dan alamatnya yang sesuai ("ruang alamat" program) dicari, dan halaman yang sesuai dengan blok memori ditemukan. Halaman itu dapat dimuat di suatu tempat dalam memori nyata, dalam hal ini program tersebut diberi akses, atau, itu dapat dipindahkan ke disk. Jika paged keluar, maka hal itu memicu "kesalahan halaman" - disk diakses, dan halaman dimuat ke dalam memori. Jadi program ini bekerja bahkan ketika tidak ada cukup memori, tetapi berjalan lambat, jika harus menggunakan disk untuk apa yang biasanya menjadi akses memori yang sangat cepat.
Sekarang, jika tidak ada cukup ruang untuk memuat halaman itu ke dalam memori, maka Anda memiliki masalah. Dalam hal ini, beberapa halaman LAIN yang sudah ada dalam memori harus "ditukar" ke disk, sehingga halaman program pertama dapat dimuat. Atau, mereka mungkin sama-sama halaman dari program yang sama. Anda melihat ini kadang-kadang dalam program grafis, misalnya, pada sistem yang sarat muatan, ketika bagian dari gambar dimuat perlahan dan digambar dengan cepat, maka bagian selanjutnya dimuat dengan sama lambat dan digambar dengan cepat, dan ketika Anda kembali bekerja dengan yang pertama sebagian lagi lambat. Itu karena mereka sedang dimuat untuk dikerjakan, lalu ditukar lagi, sehingga hal lain dapat dikerjakan. Jelas, ini adalah cara yang sangat lambat untuk bekerja, dan yang benar-benar Anda butuhkan adalah memori yang NYATA.
sumber
Saya tahu sudah terlambat .... tetapi saya pikir itu masih berguna.
sumber
Nah jika kita mengerti kata virtual, saya pikir kita bisa mengerti bagaimana kaitannya dengan memori.
"Virtual" sebagaimana didefinisikan di Dictionary.com: "disimulasikan sementara atau diperluas oleh perangkat lunak komputer: disk virtual dalam RAM; memori virtual pada hard disk."
Dalam kasus Memori Virtual, sistem mensimulasikan memori sistem dengan menggunakan sumber daya memori yang lebih lambat (yaitu hard drive, thumb drive dll.) Ketika diperlukan memori tambahan, sistem akan menukar data dalam memori sistem yang tidak diperlukan ke hard drive atau sumber daya yang Anda siapkan. Ini membebaskan memori sistem sehingga aplikasi Anda dapat melanjutkan tugas yang sedang dilakukannya.
Swapping adalah proses berkelanjutan dan dengan demikian jika Anda meningkatkan memori Anda, Anda akan melihat peningkatan kinerja karena sistem seharusnya tidak memerlukan swapping untuk memperlambat memori sebagai offten.
sumber
Memori virtual adalah fitur sistem operasi (OS) yang memungkinkan komputer untuk mengkompensasi kekurangan memori fisik dengan mentransfer sementara halaman data dari memori akses acak (RAM) ke penyimpanan disk.
Artinya seperti cermin atau memori sampel yang digunakan dalam mesin virtual atau kotak virtual untuk mencoba sistem Operasi tanpa memformat komputer.
sumber
Memori Virtual adalah blok Hard Drive Anda yang digunakan sistem sebagai file paging selain RAM fisik.
Itu menjadi rumit, dan kadang-kadang lambat, karena Windows TIDAK mendefrag bagian hard drive Anda.
2 tips terbaik yang bisa saya tawarkan: 1) Virt Mem harus diatur min dan maks di sekitar 1,5X Memori fisik Anda. ex. 2GB RAM = Virt 3070MB. 2) Saat defragging, matikan file paging Anda. Defrag 2x, dan reset ke nomor semula. Ini memberikan irisan drive yang bersih dan akan meningkatkan kecepatan file paging.
sumber