Apa itu Memori Virtual?
Memori Virtual (Virtual Memory) adalah mekanisme penyimpanan yang menawarkan ilusi kepada pengguna bahwa mereka memiliki memori utama yang sangat besar. Mekanisme ini dilakukan dengan memperlakukan sebagian memori sekunder sebagai memori utama. Dalam Virtual Memory, pengguna dapat menyimpan proses dengan ukuran yang lebih besar daripada memori utama yang tersedia.
Oleh karena itu, alih-alih memuat satu proses panjang di memori utama, OS memuat berbagai bagian lebih dari satu proses di memori utama. Virtual Memory sebagian besar diimplementasikan dengan demand paging dan demand segmentation.
Mengapa Perlu Virtual Memory?
Berikut ini adalah alasan penggunaan Virtual Memory:
- Setiap kali komputer Anda tidak memiliki ruang dalam memori fisik, ia menulis apa yang perlu diingatnya ke hard disk dalam berkas swap sebagai Virtual Memory.
- Jika komputer yang menjalankan Windows membutuhkan lebih banyak memori/RAM, maka yang terpasang dalam sistem, akan menggunakan sebagian kecil hard drive untuk tujuan ini.
Bagaimana Virtual Memory Bekerja?
Di dunia modern, Virtual Memory telah menjadi hal yang umum akhir-akhir ini. Virtual Memory digunakan setiap kali beberapa page perlu dimuat ke dalam memori utama untuk dieksekusi, dan memori tidak tersedia untuk banyak halaman tersebut.
Jadi, dalam kasus tersebut, daripada mencegah page masuk ke memori utama, OS mencari ruang RAM yang paling sedikit digunakan dalam beberapa waktu terakhir atau yang tidak direferensikan ke memori sekunder untuk memberi ruang bagi page baru di memori utama.
Misalnya
Mari kita asumsikan bahwa sebuah OS membutuhkan 300 MB memori untuk menyimpan semua program yang sedang berjalan. Namun, saat ini hanya ada 50 MB memori fisik yang tersedia yang tersimpan di RAM.
- OS kemudian akan menyiapkan 250 MB virtual memory dan menggunakan program yang disebut Virtual Memory Manager (VMM) untuk mengelola 250 MB tersebut.
- Jadi, dalam kasus ini, VMM akan membuat berkas pada hard disk berukuran 250 MB untuk menyimpan memori tambahan yang diperlukan.
- OS sekarang akan melanjutkan untuk menangani memori karena menganggap 300 MB memori nyata tersimpan dalam RAM, meskipun hanya 50 MB ruang yang tersedia.
- Tugas VMM adalah mengelola memori sebesar 300 MB meskipun hanya tersedia ruang memori nyata sebesar 50 MB.
Apa itu Demand Paging?

Mekanisme paging berdasarkan permintaan sangat mirip dengan sistem paging dengan pertukaran di mana proses yang disimpan dalam memori sekunder dan page dimuat hanya berdasarkan permintaan.
Jadi, ketika terjadi pergantian konteks, OS tidak akan menyalin page(halaman) program lama dari disk atau page program baru ke memori utama. Sebaliknya, ia akan mulai menjalankan program baru setelah memuat page pertama dan mengambil page program yang dirujuk.
Selama eksekusi program, jika program merujuk ke page yang mungkin tidak tersedia di memori utama karena telah ditukar, maka prosesor akan menganggapnya sebagai referensi memori yang tidak valid. Hal ini dikarenakan kesalahan page dan mentransfer kontrol kembali dari program ke OS, yang menuntut untuk menyimpan page kembali ke dalam memori.
Jenis Metode Penggantian Page
Berikut ini adalah beberapa metode penggantian page yang penting
- FIFO
- Optimal Algorithm
- LRU Page Replacement
Penggantian Page FIFO
FIFO (First-in-first-out) adalah metode implementasi yang sederhana. Dalam metode ini, memori memilih halaman untuk penggantian yang telah berada di alamat virtual memori untuk waktu yang lama.
Fitur
- Setiap kali page baru dimuat, page yang baru saja masuk ke memori akan dihapus. Jadi, mudah untuk memutuskan page mana yang perlu dihapus karena nomor identifikasinya selalu ada di tumpukan FIFO.
- Page terlama di memori utama adalah page yang harus dipilih terlebih dahulu untuk diganti.
Optimal Algorithm
Metode optimal page replacement memilih halaman pengganti yang waktu hingga referensi berikutnya paling lama.
Fitur
- Optimal algorithm menghasilkan jumlah kesalahan page paling sedikit. Algoritme ini sulit diimplementasikan.
- Metode algoritma penggantian page yang optimal memiliki rasio kesalahan page terendah dari semua algoritma. Algoritma ini ada dan seharusnya disebut MIN atau OPT.
- Ganti page yang tidak ingin digunakan dalam jangka waktu lama. Page tersebut hanya digunakan saat page tersebut perlu digunakan.
LRU Page Replacement
Bentuk lengkap LRU adalah page yang paling jarang digunakan. Metode ini membantu OS menemukan penggunaan page dalam jangka waktu yang singkat. Algoritma ini harus diimplementasikan dengan mengaitkan penghitung dengan page genap.
Bagaimana cara kerjanya?
- Page yang tidak digunakan dalam jangka waktu lama di memori utama adalah page yang akan dipilih untuk diganti.
- Mudah diimplementasikan, buat daftar, ganti page dengan melihat kembali ke masa lalu.
Fitur
- Metode LRU replacement memiliki jumlah tertinggi. Penghitung ini juga disebut aging registers, yang menentukan usianya dan seberapa banyak page terkaitnya juga harus dirujuk.
- Page yang paling lama tidak digunakan dalam memori utama adalah page yang harus dipilih untuk diganti.
- Ia juga menyimpan daftar dan mengganti page dengan melihat kembali ke masa lalu.
Fault rate
Fault rate adalah frekuensi kegagalan suatu sistem atau komponen yang dirancang. Tingkat ini dinyatakan dalam kegagalan per satuan waktu. Tingkat ini dilambangkan dengan huruf Yunani ? (lambda).
Keuntungan Virtual Memory
Berikut ini adalah kelebihan/manfaat penggunaan Virtual Memory:
- Virtual Memory membantu meningkatkan kecepatan ketika hanya segmen program tertentu yang diperlukan untuk mengeksekusi program.
- Sangat membantu dalam penerapan lingkungan multiprogramming.
- Memungkinkan Anda menjalankan lebih banyak aplikasi sekaligus.
- Membantu Anda memasukkan banyak program besar ke dalam program yang lebih kecil.
- Data atau kode umum dapat dibagikan antar memori.
- Proses mungkin menjadi lebih besar dari semua memori fisik.
- Data/kode harus dibaca dari disk kapan pun diperlukan.
- Kode dapat ditempatkan di mana saja dalam memori fisik tanpa memerlukan relokasi.
- Lebih banyak proses harus dipertahankan dalam memori utama, yang meningkatkan penggunaan CPU yang efektif.
- Setiap halaman disimpan pada disk sampai dibutuhkan, setelah itu akan dihapus.
- Memungkinkan lebih banyak aplikasi dijalankan pada saat yang bersamaan.
- Tidak ada batasan khusus mengenai derajat multiprogramming.
- Program besar harus ditulis, karena ruang alamat virtual yang tersedia lebih besar dibandingkan dengan memori fisik.
Kekurangan Virtual Memory
Berikut ini adalah kekurangan/kekurangan penggunaan Virtual Memory:
- Aplikasi mungkin berjalan lebih lambat jika sistem menggunakan Virtual Memory.
- Mungkin membutuhkan waktu lebih lama untuk beralih antar aplikasi.
- Menawarkan ruang hard drive yang lebih kecil untuk Anda gunakan.
- Ini mengurangi stabilitas sistem.
- Hal ini memungkinkan aplikasi yang lebih besar untuk berjalan dalam sistem yang tidak memiliki RAM fisik yang cukup untuk menjalankannya.
- Ia tidak menawarkan kinerja yang sama seperti RAM.
- Ini berdampak negatif pada kinerja sistem secara keseluruhan.
- Menempati ruang penyimpanan, yang mungkin digunakan untuk penyimpanan data jangka panjang.
Ringkasan
- Virtual Memory adalah mekanisme penyimpanan yang menawarkan ilusi kepada pengguna seolah-olah memiliki memori utama yang sangat besar.
- Virtual Memory diperlukan setiap kali komputer Anda tidak memiliki ruang di memori fisik
- Mekanisme paging berdasarkan permintaan sangat mirip dengan sistem paging dengan pertukaran di mana proses yang disimpan dalam memori sekunder dan page dimuat hanya berdasarkan permintaan, tidak terlebih dahulu.
- Metode penggantian page yang penting adalah 1) FIFO 2) Optimal Algorithm 3) PLRU Page Replacement.
- Dalam metode FIFO (First-in-first-out), memori memilih page untuk penggantian yang telah berada di alamat virtual memori untuk waktu yang lama.
- Metode optimal page replacement memilih page pengganti yang waktu hingga referensi berikutnya paling lama.
- Metode LRU membantu OS menemukan penggunaan halaman dalam jangka waktu yang singkat.
- Virtual Memory membantu meningkatkan kecepatan ketika hanya segmen program tertentu yang diperlukan untuk mengeksekusi program.
- Aplikasi mungkin berjalan lebih lambat jika sistem menggunakan virtual memory.