Senin, 05 Januari 2015

Virtual Memory


   Virtual memory adalah 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 Paging File. Paging File itu sendiri hanyalah data yang disimpan sementara atau bisa disebut dengan swap. Misal pada system operasi linux kita 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.



Ada bebrapa manfaat dari adanya virtual memori ini, bebrapa diantaranya yaitu :
  • 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.
  • 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.
  • Meningkatnya respon, sebagai konsekuensi dari menurunyya beban I/O dan memori.
  • Bertambahnya jumlah user yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan computer untuk menerima lebih banyak permintaan dari user.

Virtual Memory Policies

  1. Fetch Policy 
     Menentukan kapan sebuah page seharusnya dibawa ke main memory Ada 2 jenis fetch policy, yaitu : 
  • Demand Paging 
          Page hanya dibawa ke main memory jika dibutuhkan 

  • Prepaging 
          Page selain yang dibutuhkan juga ikut dibawa ke main memory. Prepaging mempunyai kelebihan yaitu bisa menghemat waktu karena pembacaan disk tidak sering. Tetapi juga memiliki kelemahan yaitu apabila page lain yang dibawa jarang atau bahkan tidak digunakan.

Placement Policy
     
Menentukan di bagian mana sebuah page akan diletakkan pada main memory. Untuk paging, page langsung diletakkan di frame yang kosong. Sedangkan untuk segmentatin, terdapat beberapa algoritma,yaitu :
  • Best Fit 
  • First Fit 
  • Next Fit

Replacement Policy      Menentukan page mana di memori yang seharusnya digantikan. Terdapat beberapa algoritma replacement dalam virtual memory,yaitu :

  • Optimal
  • Page yang dibutuhkan kembali masih lama akan diganti
  • Least Recently Used
  • Page tidak digunakan dalam waktu lama akan diganti
  • First in First Out
  • Page yang akan diganti adalah page yang pertama berada di main memory
  • Clock Policy
  • - Setiap page yang masuk ke main memory akan memiliki nilai untuk bit used = 1
    - Ada pointer yang bertugas 'mengelilingi' clock
    - Setiap kali pointer bergerak :
    - Bila bit used pada page berikutnya sama dengan 1
    - Reset jadi 0, dan lanjut ke page berikutnya
    - Bila bit used pada page berikutnya sama dengan 0
    - Ganti page tersebut dengan yang ada di secondary.

Resident Set Management      Menentukan berapa banyak page yang dibawa ke main memory. Berdasarkan ukuran Page yang harus ada di main memory, terdapat 2 jenis, yaitu :
  • Fixed Allocation
  • Setiap proses memiliki jatah frame di memory , dan jatah frame ditentukan di awal.
  • Variable Allocation
  • Jumlah frame untuk setiap proses bebas ditentukan kapanpun dan dapat berubah.

Cleaning Policy
     Menentukan kapan sebuah page harus dikeluarkan dari main memory menuju secondary memory. Ada 2 jenis cleaning policy, yaitu :
  • Demand cleaning 
  • Page hanya berpindah ke secondary memory ketika dia digantikan oleh page yang lain.
  • Precleaning 
  • Memindah page-page pada suatu proses secara bersama-sama .Metode ini bisa menghemat waktu penulisan ke harddisk.

1 komentar: