Anda di halaman 1dari 20

Virtual Memory

Virtual Memory
• Teknik yang mengijinkan eksekusi proses tidak
selalu lengkap ada di memory utama.
• Tidak semua proses yang sudah ada di
memory utama akan segera di proses,
seperti :
– Proses yang akan dieksekusi jika kondisi tertentu
dipenuhi
– Terdapat fungsi yang jarang digunakan
Virtual Memory
• Virtual memory adalah teknik memisahkan
memory logika user dari memory fisik
• Virtual memory memungkinkan suatu proses
dengan penggunaan memory yang besar pada
memory fisik yang kecil
Paging
• Memory fisik dibagi menjadi blok-blok dengan
ukuran tertentu yang disebut dengan frame
• Memory logika dibagi menjadi blok-blok yang
disebut dengan page
• Setiap alamat yang diberikan oleh CPU dibagi
menjadi dua bagian, yaitu nomor page dan page
offset
• Dengan kombinasi nomor page dan page offset akan
mengacu ke frame pada memory fisik
Paging
• Alamat fisik mengacu kepada memory fisik
• Alamat logika mengacu kepada memory logika
• Untuk melakukan pemetaan dari/ke memory
fisik ke/dari memory logika menggunakan
Memory Management Unit (MMU)
Demand Paging
• Proses disimpan ke momory sekunder (disc).
• Jika proses akan dieksekusi, maka akan
dipindahkan ke memory utama.
• Untuk melakukan pengalihan ke memory
utama digunakan lazy swapper.
• Lazy swapper tidak pernah mengalihkan page
ke memory kecuali page tersebut akan
digunakan.
Demand Paging
Demand Paging
• Untuk membantu mengetahui apakah suatu
page yang diinginkan sudah ada atau belum
pada memory utama, digunakan valid/invalid
bit.
• Bit di set ke valid jika page yang diinginkan
sudah ada di memory utama, namun jika
tidak, maka bit di set ke invalid
Demand Paging
Demand Paging
• Jika suatu proses menginginkan page, namun
page tersebut belum ada di memory utama,
maka akan terjadi page fault
• Cara mengatasi page fault :
– Mengecek page table untuk menentukan bit
referensi valid atau invalid
– Jika invalid, maka proses dihentikan
– Sistem mencari frame kosong
Demand Paging
• Cara mengatasi page fault :
– Sistem melakukan swapping ke frame
bebas/kosong
– Jika proses swapping sudah selesai, isi page table
diupdate, di set menjadi valid
– Instruksi di-restart
– Jika tidak terdapat frame yang kosong maka
dilakukan page replacement
Page Replacement
• Langkah untuk page fault yang memerlukan
page replacement :
– Cari lokasi page yang diharapkan pada disk
– Cari frame kosong
• Jika ada, gunakan
• Jika tidak ada, gunakan algoritma page replacement
untuk menyeleksi frame yang akan diganti.
• Simpan page yang diganti ke disk
Page Replacement
• Langkah untuk page fault yang memerlukan page
replacement :
– Ambil page yang diinginkan ke frame yang sudah
dikosongkan
– Memulai kembali user proses
• Algoritma dievalusi dengan menjalankannya pada
string tertentu dari memory reference dan
menghitung jumlah page fault
• Semakin tinggi jumlah frame, maka semakin rendah
kemungkinan terjadinya page fault
Algoritma Page Replacement
• Algoritma FIFO
– Jika ada suatu page yang akan ditempatkan, maka
posisi page yang paling lama yang akan
digantikan.
– Sebagai contoh terdapat 3 frame dengan string
reference : 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
Algoritma FIFO
Algoritma FIFO
• Algoritma ini dianggap cukup mengatasi
masalah tentang page fault
• Pada tahun 1970-an, Belady menemukan
keanehan pada algoritma ini yang dikenal
kemudian dengan anomali Belady
• Anomali Belady adalah keadaan di mana page
fault rate meningkat seiring dengan
pertambahan jumlah frame
Algoritma Optimal
• Algoritma optimal akan mengganti page yang
tidak akan digunakan untuk periode waktu
terlama
• Algoritma ini menjamin rata-rata page fault
terendah untuk jumlah frame
Algoritma Optimal
Algoritma Least Recently Use (LRU)
• Algoritma LRU merupakan perpaduan antara
algoritma FIFO dan Optimal.
• Algoritma LRU akan mengganti page yang
sudah tidak digunakan untuk periode waktu
terlama
Algoritma Least Recently Use (LRU)

Anda mungkin juga menyukai