Apa itu Memori Virtual?

Memori virtual adalah teknik manajemen memori di mana memori sekunder dapat digunakan seolah-olah itu adalah bagian dari memori utama. Memori virtual adalah teknik umum yang digunakan dalam sistem operasi (OS) komputer.

Memori virtual menggunakan perangkat keras dan perangkat lunak untuk memungkinkan komputer mengatasi kekurangan memori fisik, dengan cara sementara mentransfer data dari memori akses acak (RAM) ke penyimpanan disk. Pemetaan potongan-potongan memori ke file disk memungkinkan komputer untuk memperlakukan memori sekunder seolah-olah itu adalah memori utama.

Saat ini, sebagian besar komputer pribadi (PC) dilengkapi dengan setidaknya 8 GB (gigabyte) RAM. Namun, terkadang jumlah ini tidak cukup untuk menjalankan beberapa program sekaligus. Di sinilah memori virtual berperan. Memori virtual membebaskan RAM dengan cara memindahkan data yang belum digunakan baru-baru ini ke perangkat penyimpanan, seperti hard drive atau solid-state drive (SSD).

Memori virtual penting untuk meningkatkan kinerja sistem, multitasking, dan menggunakan program besar. Namun, pengguna tidak sebaiknya terlalu mengandalkan memori virtual, karena memori virtual jauh lebih lambat dibandingkan dengan RAM. Jika OS harus sering menukar data antara memori virtual dan RAM, komputer akan mulai melambat — ini disebut thrashing.

Memori virtual dikembangkan pada saat memori fisik — yang juga disebut RAM — sangat mahal. Komputer memiliki jumlah RAM yang terbatas, sehingga memori akhirnya akan habis ketika banyak program dijalankan bersamaan. Sistem yang menggunakan memori virtual memanfaatkan bagian dari hard drive untuk meniru RAM. Dengan memori virtual, sebuah sistem dapat memuat program yang lebih besar atau menjalankan beberapa program sekaligus, sehingga masing-masing dapat beroperasi seolah-olah memiliki lebih banyak ruang, tanpa harus membeli lebih banyak RAM.

Bagaimana Memori Virtual Bekerja

Memori virtual menggunakan perangkat keras dan perangkat lunak untuk beroperasi. Ketika sebuah aplikasi digunakan, data dari program tersebut disimpan dalam alamat fisik menggunakan RAM. Unit manajemen memori (MMU) memetakan alamat ke RAM dan secara otomatis menerjemahkan alamat-alamat tersebut. MMU dapat, misalnya, memetakan ruang alamat logis ke alamat fisik yang sesuai.

Jika pada suatu titik, ruang RAM dibutuhkan untuk hal yang lebih mendesak, data dapat dipindahkan keluar dari RAM dan ke memori virtual. Pengelola memori komputer bertanggung jawab untuk melacak pergeseran antara memori fisik dan virtual. Jika data tersebut dibutuhkan lagi, MMU komputer akan menggunakan context switch untuk melanjutkan eksekusi.

Saat menyalin memori virtual ke memori fisik, OS membagi memori dengan sejumlah alamat tetap ke dalam file halaman atau swap files. Setiap halaman disimpan di disk, dan ketika halaman tersebut dibutuhkan, OS menyalinnya dari disk ke memori utama dan menerjemahkan alamat virtual ke alamat nyata.

Namun, proses menukar memori virtual ke fisik ini cukup lambat. Hal ini berarti penggunaan memori virtual umumnya menyebabkan penurunan kinerja yang nyata. Karena proses penukaran ini, komputer dengan lebih banyak RAM dianggap memiliki kinerja yang lebih baik.

Jenis-jenis Memori Virtual

Operasi memori virtual dikelola oleh MMU komputer. Di sebagian besar komputer, perangkat keras MMU terintegrasi ke dalam unit pemrosesan pusat (CPU). CPU juga menghasilkan ruang alamat virtual. Secara umum, memori virtual dapat berupa paged atau tersegmentasi.

Pemrograman memori membagi memori menjadi bagian-bagian atau file halaman. Ketika komputer kehabisan RAM yang tersedia, halaman-halaman yang tidak digunakan dipindahkan ke hard drive menggunakan file swap. File swap adalah ruang yang disisihkan di hard drive untuk digunakan sebagai ekstensi memori virtual bagi RAM komputer. Ketika file swap dibutuhkan, file tersebut dikirim kembali ke RAM menggunakan proses yang disebut page swapping. Sistem ini memastikan bahwa OS dan aplikasi komputer tidak kehabisan memori nyata. Ukuran maksimal file halaman dapat mencapai 1 ½ hingga empat kali ukuran memori fisik komputer.

Proses paging memori virtual menggunakan tabel halaman, yang menerjemahkan alamat virtual yang digunakan oleh OS dan aplikasi menjadi alamat fisik yang digunakan oleh MMU. Entri dalam tabel halaman menunjukkan apakah halaman ada di RAM. Jika OS atau program tidak menemukan apa yang dibutuhkan di RAM, maka MMU merespons dengan pengecualian page fault untuk meminta OS memindahkan halaman kembali ke memori ketika dibutuhkan. Begitu halaman ada di RAM, alamat virtualnya muncul di tabel halaman.

Segmentasi juga digunakan untuk mengelola memori virtual. Pendekatan ini membagi memori virtual menjadi segmen-segmen dengan panjang berbeda. Segmen yang tidak digunakan dalam memori dapat dipindahkan ke ruang memori virtual di hard drive. Informasi atau proses yang tersegmentasi dilacak dalam tabel segmen, yang menunjukkan apakah segmen tersebut ada di memori, apakah telah dimodifikasi, dan apa alamat fisiknya. Selain itu, sistem file dalam segmentasi hanya terdiri dari segmen-segmen yang dipetakan ke dalam ruang alamat potensial suatu proses.

Segmentasi dan paging berbeda sebagai model memori dalam hal bagaimana memori dibagi; namun, proses ini juga bisa digabungkan. Dalam hal ini, memori dibagi menjadi frame atau halaman. Segmen-segmen tersebut memakan beberapa halaman, dan alamat virtual mencakup nomor segmen dan nomor halaman.

Metode penggantian halaman lainnya termasuk first-in-first-out (FIFO), algoritma optimal, dan least recently used (LRU). Metode FIFO memilih halaman yang telah ada dalam alamat virtual untuk waktu yang paling lama. Metode algoritma optimal memilih penggantian halaman berdasarkan halaman mana yang tidak mungkin diganti setelah waktu yang lama; meskipun sulit diimplementasikan, ini mengurangi page faults. Metode penggantian halaman LRU mengganti halaman yang tidak digunakan selama waktu terlama di memori utama.

Bagaimana Mengelola Memori Virtual

Manajemen memori virtual dalam OS bisa cukup mudah, karena ada pengaturan default yang menentukan jumlah ruang hard drive yang akan dialokasikan untuk memori virtual. Pengaturan ini akan bekerja untuk sebagian besar aplikasi dan proses, tetapi mungkin ada saat-saat di mana perlu untuk mengatur ulang secara manual jumlah ruang hard drive yang dialokasikan untuk memori virtual — misalnya, dengan aplikasi yang bergantung pada waktu respons cepat atau ketika komputer memiliki beberapa hard disk drive (HDDs).

Ketika mengatur ulang memori virtual secara manual, jumlah minimum dan maksimum ruang hard drive yang akan digunakan untuk memori virtual harus ditentukan. Mengalokasikan terlalu sedikit ruang HDD untuk memori virtual dapat menyebabkan komputer kehabisan RAM. Jika sistem terus membutuhkan lebih banyak ruang memori virtual, mungkin bijaksana untuk mempertimbangkan menambah RAM. OS umum biasanya menyarankan agar pengguna tidak meningkatkan memori virtual lebih dari 1 ½ kali jumlah RAM.

Manajemen memori virtual berbeda antar OS. Oleh karena itu, profesional IT harus memahami dasar-dasar saat mengelola memori fisik, memori virtual, dan alamat virtual.

Sel-sel RAM di SSD juga memiliki umur terbatas. Sel-sel RAM memiliki jumlah tulis yang terbatas, sehingga menggunakan mereka untuk memori virtual seringkali mengurangi masa pakai drive.

Apa saja manfaat menggunakan memori virtual?

Manfaat menggunakan memori virtual meliputi:

  • Memori virtual dapat menangani dua kali lebih banyak alamat dibandingkan dengan memori utama.
  • Memungkinkan penggunaan lebih banyak aplikasi sekaligus.
  • Mempermudah aplikasi untuk mengelola memori bersama dan menghindarkan pengguna dari kebutuhan menambah modul memori saat ruang RAM habis.
  • Memiliki kecepatan yang lebih tinggi ketika hanya sebagian dari program yang dibutuhkan untuk eksekusi.
  • Memiliki tingkat keamanan yang lebih tinggi karena isolasi memori.
  • Memungkinkan menjalankan beberapa aplikasi besar secara bersamaan.
  • Pengalokasian memori relatif murah.
  • Tidak memerlukan fragmentasi eksternal.
  • Penggunaan CPU efektif dalam mengelola beban kerja partisi logis.
  • Data dapat dipindahkan secara otomatis.
  • Halaman dalam proses asli dapat dibagikan saat operasi pemanggilan sistem fork yang membuat salinannya.

Selain manfaat ini, dalam lingkungan komputasi virtual, administrator dapat menggunakan teknik manajemen memori virtual untuk mengalokasikan memori tambahan ke mesin virtual (VM) yang telah kehabisan sumber daya. Taktik virtualisasi semacam ini dapat meningkatkan kinerja VM dan fleksibilitas manajemen.

Apa saja keterbatasan menggunakan memori virtual?

Meski menggunakan memori virtual memiliki berbagai manfaat, ada beberapa kekurangan yang perlu diperhatikan, seperti:

  • Aplikasi berjalan lebih lambat jika dijalankan dari memori virtual.
  • Data harus dipetakan antara memori virtual dan fisik, yang memerlukan dukungan perangkat keras tambahan untuk terjemahan alamat, yang akan memperlambat komputer lebih jauh.
  • Ukuran penyimpanan virtual dibatasi oleh jumlah penyimpanan sekunder, serta skema alamat pada sistem komputer.
  • Thrashing dapat terjadi jika tidak ada cukup RAM, yang akan memperlambat kinerja komputer.
  • Proses berpindah antar aplikasi menggunakan memori virtual dapat memakan waktu.
  • Memori virtual mengurangi jumlah ruang hard disk yang tersedia.

Memori virtual (RAM virtual) vs. memori fisik (RAM)

Perbedaan utama antara memori virtual dan fisik sering kali terletak pada kecepatan. RAM jauh lebih cepat dibandingkan dengan memori virtual. Namun, RAM cenderung lebih mahal.

Ketika komputer membutuhkan penyimpanan, RAM adalah yang pertama digunakan. Memori virtual, yang lebih lambat, hanya digunakan ketika RAM sudah penuh.

Pengguna dapat menambah RAM komputer dengan membeli dan memasang chip RAM tambahan. Hal ini berguna jika mereka mengalami penurunan kinerja karena terlalu seringnya proses pertukaran memori. Jumlah RAM tergantung pada apa yang terpasang pada komputer. Memori virtual, di sisi lain, dibatasi oleh ukuran hard disk komputer. Pengaturan memori virtual sering kali dapat dikontrol melalui sistem operasi.

Selain itu, RAM menggunakan teknik swapping, sementara memori virtual menggunakan paging. Sementara memori fisik terbatas pada ukuran chip RAM, memori virtual dibatasi oleh ukuran hard disk. RAM juga memiliki akses langsung ke CPU, sementara RAM virtual tidak.

Sejarah memori virtual

Sebelum memori virtual dikembangkan, komputer hanya memiliki RAM dan memori sekunder. Komputer awal menggunakan memori inti magnetik untuk memori utama dan drum magnetik untuk memori sekunder. Memori komputer mahal dan sering kali terbatas pada tahun 1940-an dan 1950-an. Seiring dengan berkembangnya ukuran dan kompleksitas program komputer, pengembang khawatir program mereka akan menghabiskan semua memori utama komputer dan kehabisan ruang memori.

Pada masa itu, para pemrogram menggunakan proses yang disebut overlaying untuk menjalankan program yang lebih besar daripada memori yang tersedia. Bagian-bagian dari program yang tidak selalu digunakan disusun sebagai overlay yang, saat diperlukan, akan menimpa overlay yang ada di memori. Hal ini memerlukan pemrograman yang rumit untuk membuat overlaying bekerja, dan inilah yang menjadi dorongan utama untuk pengembangan memori virtual otomatis.

Fisikia Jerman Fritz-Rudolf Güntsch dikreditkan dengan pengembangan konsep memori virtual pada tahun 1956 — meskipun hal ini diperdebatkan. Namun, Güntsch memang menggambarkan suatu bentuk memori cache.

Instansi pertama dari sistem memori virtual yang terlihat datang dari Universitas Manchester di Manchester, Inggris, dalam upayanya untuk mengembangkan sistem penyimpanan satu tingkat untuk komputer Atlas. Sistem ini menggunakan paging untuk memetakan alamat virtual kepada pemrogram ke memori utama. Atlas dikembangkan pada tahun 1959 dan kemudian dioperasikan pada tahun 1962.

Pada tahun 1961, komputer komersial pertama dengan memori virtual dirilis oleh Burroughs Corp. Versi memori virtual ini menggunakan segmentasi, bukan paging.

Pada tahun 1969, peneliti IBM menunjukkan bahwa sistem overlay memori virtual bekerja lebih baik dibandingkan dengan sistem manual sebelumnya. Hingga saat ini, masih ada perdebatan mengenai hal ini. Mainframe dan minikomputer pada tahun 1970-an umumnya menggunakan memori virtual. Teknologi memori virtual tidak dimasukkan dalam PC awal karena pengembang berpikir bahwa kehabisan memori tidak akan menjadi masalah di mesin tersebut. Asumsi ini terbukti salah. Intel memperkenalkan memori virtual dalam mode terlindungi pada prosesor 80286 pada tahun 1982, dan mendukung paging ketika 80386 muncul pada tahun 1985.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *