Virtual Memory
Konsep
Virtual memori jika kita artikan secara terpisah adalah, virtual mempunyai arti maya/tidak
nyata. Sedangkan memori bisa berarti sebagai penyimpanan. Jadi, jika kita gabung
pengertiannya, virtual memori adalah suatu penyimpanan data sementara yang disimpan
dalam bentuk memori maya. Memori virtual ini biasanya bisa berukuran beberapa kali lipat
lebih besar dibandingkan dengan memori utama atau memori fisik. Jadi bila programmer
memiliki memori fisik yang kecil, bisa menggunakan memori virtual ini.
Alasan memakai virtual memory :
Jika komputer menjalankan sistem operasi windows atau sejenisnya membutuhkan lebih
banyak RAM/memori daripada RAM yang terpasang pada system, makai ia menggunakan
sebagian kecil dari hard drive untuk tujuan ini. Misalkan ada situasi computer kita tidak
memiliki ruang pada memori fisik, maka ia menulis beberapa hal yang perlu diingat ke dalam
file swap dan itu sebagai memori virtual.
Kelebihan menggunakan virtual memori :
- Jumlah pengguna yang bisa dilayani bertambah
- Respon meningkat, hal itu dikarenakan beban input dan output menurun
- Penggunaan memori fisik menjadi berkurang, sehingga ruang memori fisik menjadi
lebih lega - Proses input dan output menjadi rendah
Demand Paging
- Proses ada pada memori sekunder dan halaman dimuat hanya berdasar permintaan
tidak di awal. - Sebuah CPU membutuhkan page di dalam main memori
- Jika halaman tidak ada dalam memori utama maka bisa dinamakan dengan page fault
- Jika page fault terjadi, maka CPU akan mengirim control program menuju system
operasi untuk mengembalikan page yang dibutuhkan ke dalam memori.
Page Fault
- Page fault terjadi jika kebutuhan page tidak ada di dalam memori
- Page fault bisa ditangani oleh system operasi:
– Invalid reference → abort
– Tidak ada memori utama → load the page
Paging
- Misal Virtual Memori berukuran 64 KB, dan memori fisiknya hanya 32 KB
- Ukuran programnya bisa 64 KB
- Urutan pagenya di memori fisik belum tentu samadengan yang ada di virtual memori
- Urutan pagenya di memori fisik belum tentu samadengan yang ada di virtual memori
Page Replacement Algorithm (PRA)
- Page replacement algorithm adalah algoritma untuk memilih page mana yang akan
diganti, apabila nantinya akan terjadi page replacement. - PRA ini memiliki tujuan supaya jumlah page fault menjadi sekecil mungkin
- Terdapat bebarapa jenis algoritma, diantaranya adalah sebagai berikut:
1. First In First Out (FIFO)
2. Least Recently Used Algorithm
3. Second Change Algorithm
4. Optimal Algorithm
- FIFO : Page yang dialokasikan lebih awal akan direplace lebih awal
- Optimal Algorithm
• Replace page yang tidak akan digunakan untuk jangka waktu yang lama
• Page fault terendah dari semua algoritma page replacement
• Tidak ada anomaly belady
• Ideal, tapi sulit diaplikasikan
• Hanya berguna untuk mengukur performa algoritma yang lainnya - Least Recently Used
• Mengganti page yang sudah tidak berguna untuk periode waktu yang terlama
• Lebih realistis dibandingkan sebelumnya karena menggunakan informasi
sebelumnya
• Ada 12 page fault
• Lebih baik dari FIFO, akan tetapi belum pasti optimal
• Ada 2 cara impelementasi LRU: LRU dengan counter, dan dengan stack
Implementasi LRU
LRU dengan Counter
➢ Setiap page yang masuk mempunyai counter
➢ Setiap saat suatu page diferensi, copy clock menuju dalam counter
➢ Mencari page yang akan diganti menurut nilai counternya
LRU dengan Stack
➢ Gunakan stack yang berisi page number
➢ Jika suatu page diferensi, pindah ke stack paling atas
➢ Tidak perlu searching
Algoritma Alokasi
- Alokasinya sama
- Misal 200 frame dan 10 proses, berikan 20 page untuk setiap proses
- Misal 200 frame dan 10 proses, berikan 20 page untuk setiap proses
kendalanya :
- Setiap proses memiliki ukuran yang berbeda-beda
- Yang dapat dialokasikan menjadi lebih banyak
Proposional Allokasi
- Mengalokasikan menurut ukuran proses itu sendiri
Priority Allkokasi
Menggunakan skema alokasi proporsional, tetapo menggunakan prioritas, bukan ukuran
Misal terjadi P, menggenerate page fault maka terdapat 2 kemungkinan, yaitu :
- Lokal Replacement : memilih salah satu frame miliknya untuk ditukar
- Global replacement : memilih framenya proses lain dan prioritas lebih rendah untuk
ditukar