Virtual Memori

Definisi Virtual Memory

Virtual memory itu sendiri yakni memori sementara yang digunakan komputer untuk menjalankan berbagai program aplikasi ataupun menyimpan data yang membutuhkan memory yang lebih besar dari memory yang telah tersedia ( Memory fisik seperti RAM). Program ataupun data yang tidak muat dimasukan pada memory asli ( RAM ), akan disimpan ke dalam sebuah Pagging File. Pagging File itu sendiri hanyalah data yang disimpan sementara atau bisa disebut dengan swap. Misal pada system operasi linuxkita diharuskan untuk membuat dua pertisi utama yaitu untuk system dan untuk swap. Virtual memori yang dimaksud disini berbeda dengan memori fisik seperti RAM, karena RAM merupakan komponen yang termasik kedalam golongan hardware.

Virtual memori menggunakan hirarki dua tingkat yang terdiri dari memori utama dan memori sekunder dengan kapasitas yang berbeda. Virtual memoti ini ditunjuk oleh seperangkat alamat logic yang berasal dari pengenal (identifier) ekslisit atau implisit ditentukan di dalam objek pemakai. Lokasi penyimpanan fisik yang tetap dalam unit memori diidentifikasi oleh seperangkat alamat fisik.

Konsep pada virtual memori bekerja dimana ruang almat logic lebih besar dari pafa ruang alamat fisik. Dengan demikian virtual memori diimplementasikan dengan menyediakan mekanisme otomatis untuk pemetaan alamat, dari alamat logik ke alamat fisik.


Manfaat Virtual Memory

Ada bebrapa manfaat dari adanya virtual memori ini, bebrapa diantaranya yaitu :

  1. Berkurangnya I/O yang dibutuhkan (lalu lintas I/O menjadi rendah). Missal, untuk program butuh membaca dari disk dan memasukkan dalam memori setiap kali diakses.
  2. Berkurangnya memori yang dibutuhkan (space menjadi lebih leluasa). Contoh, untuk program 10 MB tidak seluruh bagian dimasukkn dalam memori. Pesan-pesan error hanya dimasukkan jika terjadi error.
  3. Meningkatnya respon, sebagai konsekuensi dari menurunyya beban I/O dan memori.
  4. Bertambahnya jumlah user yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan computer untuk menerima lebih banyak permintaan dari user.

 
Cara Kerja Virtual Memory

Virtual memori digunakan dengan membuat suatu file khusus yang disebut swapfile. Virtual memory digunakan pada saat sistem operasi kehabisan memori, dimana sistem operasi akan memindahkan data yang paling terakhir diakses kedalam swapfile di hardisk. Hal ini yang mengsongkan/membebaskan bebrapa ruang kosong pada memori untuk aplikasi yang akan digunakan selanjutnya. Sistem operasi akan melakukan hal ini secara terus menerus ketika data baru diisi pada RAM.

Pada saat data yang tersimpan di swapfile diperlukan, data tersebut ditukar (swap) dengan data yang paling terakhir dipakai di dalam memory (RAM). Hal ini mengakibatkan swapfile bersifat seperti RAM, walaupun program tidak dapat secara langsung dijalankan dari swapfile. Satu hal yang perlu dicatat bahwa karena sistem operasi tidak dapat secara langsung menjalankan program dari swapfile, bebrapa program mungkin tidak akan berjalan walau dengan swapfile yang besar jika kita hanya memiliki RAM yang kecil.

Kerja dari virtual memori ini juga berhubungan dengan memori fisik. Bagian-bagian dari gabungan kedua memori tersebut disebut page. Page ini memiliki ukuran yang sama besar. Tiap page ini punya nomor yang unik, yaitu Page Frame Number (PFN). Untuk setiap instruksi dalam program, CPU melakukan mapping dari alamat virtual ke memori fisik yang sebenarnya.

Penerjemahan alamat di antara virtual dan memori fisik dilakukan oleh CPU menggunakan tabel page untuk proses x dan proses y. Ini menunjukkan virtial PFN 0 dari proses x dimap ke memori fisik PFN 1. Setiap anggota tabel page mengandung informasi berikut ini:

  1. Virtual PFN
  2. PFN fisik
  3. Informasi akses page dari page tersebut

Untuk menerjemahkan alamat virtual ke alamat fisik, pertama-tama CPU harus menangani alamat virtual PFN dan offsetnya di virtual page. CPU mencari tabel page proses dan mancari anggota yang sesuai degan virtual PFN. Ini memberikan PFN fisik yang dicari. CPU kemudian mengambil PFN fisik dan mengalikannya dengan besar page untuk mendapat alamat basis page tersebut di dalam memori fisik. Terakhir, CPU menambahkan offset ke instruksi atau data yang dibutuhkan. Dengan cara ini, memori virtual dapat dimap ke page fisik dengan urutan yang teracak.

Demand Paging

Demand paging merupakan teknik meload page virtual ke memori hanya ketika program dijalankan. Demand paging terjadi saat sistem sedang sibuk saat file diload ke memori. Mekanisme ini berarti sebuah proses dapat mengeksekusi dimana file hanya sebagian dari file tersebut terdapat dalam memori fisik.

Hal yang penting dalam demand paging ini yaitu restart instruksi setelah page fault terjadi dan restart pada lokasi dan state yang sama. Hardware yang ada untuk demand paging antara lain page table dan secondary memory (high-speed disk).

Swaping

Jika memori fisik tiba-tiba habis dan proses ingin memindahkan sebuah page ke memori, sistem operasi harus memutuskan apa yang harus dilakukan. Sistem operasi harus adil dalam mambagi page fisik dalam sistem diantara proses yang ada, bisa juga sistem operasi menghapus satu atau lebih page dari memori untuk membuat ruang untuk page baru yang dibawa ke memori. Cara page virtual dipilih dari memori fisik berpengaruh pada efisiensi sistem.

Dalam pengaksesan virtual memori secara bersama, memori virtual mempermudah proses untuk berbagi memori saat semua akses ke memori menggunakan tabel page. Proses yang akan berbagi memori virtual yang sama, page fisik yang sama direference oleh banyak proses. Tabel page untuk setiap proses mengandung anggota page table yang mempunyai PFN fisik yang sama.

, , ,

  1. Tinggalkan komentar

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: