Anda di halaman 1dari 18

Virtual Memory

Anggota Kelompok:
Achmad Wahyudi
Ashar Abdul Aziz
Herdarma Suharisman
Mutiya

Virtual Memory
Adalah teknik pemetaan memori yang melibatkan memori sekunder, umumnya disk.
Teknik ini menyembunyikan aspek-aspek fisik memori dari pengguna dengan
menjadikan memori sebagai lokasi alamat virtual berupa byte yang tidak terbatas
Jika program akan dieksekusi , maka program tersebut harus ada di memori, tapi
kenyataannya ada program dalam memori yang tidak segera digunakan, sehingga
perlu membatasi program yang tidak sedang digunakan mengingat kapasitas memori
terbatas
Secara sistem logika, ukuran memori lebih besar daripada ukuran memori utama
secara fisik.
Melibatkan mekanisme swapping
Memori virtual memisahkan antara memori logis dan memori fisiknya

Virtual Memory
Prinsip dari memori virtual adalah bahwa "Kecepatan
maksimum ekseskusi proses di memori virtual dapat sama,
tetapi tidak akan pernah melampaui kecepaatan eksekusi proses
yang sama di sistem yang tidak menggunakan memori virtual".

Virtual Memory yang


Lebih Besar dari Physical Memory

Demend Paging
Demand Paging atau permintaan pemberian halaman adalah
salah satu implementasi dari memori virtual yang paling
umum digunakan.
Pada metode tradisional :
Bawa seluruh page untuk satu proses ke memory
Pada demand paging :
Sebuah page dibawa ke memori hanya ketika dibutuhkan
saja
Perpaduan swapping dan paging
Konsep Lazy swapper : jangan swap page(menukar
halaman)ke memory kecuali ia dibutuhkan
Swapper yang berhubungan dengan page swapping
disebut pager

Kelebihan Metode Demand Paging


Butuh lebih sedikit memori
Hanya page yang dibutuhkan yang di-load ke memori

Lebih sedikit I/O


Lebih sedikit page yang diload dari disk

Lebih concurrent
Lebih banyak free memory, lebih banyak proses yang bisa dijalankan
secara concurrent

Skema Valid-Invalid bit


Bagaimana cara menandai sebuah page sudah
ada di physical memory?
Gunakan (v)alid-(i)nvalid bit pada page table
(v)alid : page ada di memory
(i)nvalid : page tidak ada di memory.
Bit = 1 berarti halaman berada di memori utama
Bit = 0 berarti halaman tidak berada di memori
utama
Ada 2 kemungkinan :
page belum di-load ke memory
page tersebut tidak berhak diakses proses
tsb.
Akses pada page dengan invalid bit = 0 disebut
dengan page fault.

Frame #

valid-invalid bit
v
v
v
v
i

.
i
i

page table

Penanganan Page Fault


1.Ketika terjadi page fault, maka eksekusi dihentikan sementara
karena OS trap.
2.Cek 2 kemungkinan penyebab page fault:
Page belum di-load ke memory
Page tersebut tidak berhak diakses
3.Jika invalid karena belum di-load, ambil page dari backing
store
4.Pindahkan page tadi ke frame bebas
5.Reset page table
6.Restart instruksi

Page Replacement
Metode PR memungkinkan page yang sudah dialokasikan di
frame untuk ditukar dengan page yang masih ada di disk
Memungkinkan logical memory > physical memory

Mencegah over-allocation dengan memasukkan metode page


replacement jika terjadi page fault
PR menggunakan modify(dirty) bit untuk menandai page yang
sudah pernah dimodifikasi
Hanya page yang sudah dimodifikasi saja yang ditulis ke disk untuk
mengurangi page transfer

Dasar-dasar Page Replacement


1. Cari lokasi page pada disk
2. Cari frame bebas
Jika ada, gunakan
Jika TIDAK ada frame bebas, gunakan algoritma page replacement untuk memilih satu
page yang akan ditukar (page korban).

3. Tempatkan page korban tadi ke backing store HANYA JIKA page tadi sudah
pernah dimodifikasi (modify bit = True)
Why? Karena page yang belum pernah dimodifikasi, masih ada di disk

4. Tempatkan page yang dibutuhkan ke free frame


5. Update page table
6. Restart proses

Langkah-langkah Page Replacement


1. Carilah lokasi page yg diharapkan
di disk
2. Carilah frame kosong dgn cara:
Gunakan bila ada frame kosong
Bila tidak ada, gunakan
algoritma untuk menyeleksi
frame
3. Simpan Page korban ke disk, ubah
tabel pageBaca page yg diinginkan
ke frame kosong yg baru, ubah
tabel page
4. Mulai kembali ke proses awal.

Page Replacement Algorithm (PRA)


PRA : algoritma untuk memilih page mana yang akan
direplace jika terjadi page replacement
PRA bertujuan agar jumlah page fault menjadi sekecil
mungkin
Ada beberapa algoritma
First-In-First-Out (FIFO) Algorithm
Optimal Algorithm
Least Recently Used (LRU) Algorithm

First-In-First-Out (FIFO) Algorithm


Merupakan algoritma yang paling sederhana
Prinsip dari algoritma ini adalah seperti prinsip
antrian (antrian tak berprioritas), halaman yang
masuk lebih dulu maka akan keluar lebih dulu
juga.

Optimal Algorithm
Mengganti page yang tidak digunakan dalam waktu
dekat
Prinsip dari algoritma ini adalah mengganti halaman
yang tidak akan terpakai lagi dalam waktu lama,
sehingga efisiensi pergantian halaman meningkat
Mempunyai rata-rata page fault terendah
Algoritma ini sulit diimplementasikan/diterapkan

Least Recently Used (LRU) Algorithm


Merupakan perpaduan dari FIFO dan optimal
Page yang diganti adalah page yang telah lama tidak
digunakan

Alokasi Frame
Pengalokasian tiap-tiap proses bervariasi tergantung
pada tingkat multiprogramming
Jika tingkat multiprogramming nya semakin tinggi, maka
proses akan kehilangan beberapa frame
Sebaliknya jika tingkat multiprogramming berkurang,
maka proses akan mendapat
frame melebihi dari yang dibutuhkan.

Trashing
Jika sebuah proses mendapat alokasi frame yang rendah, maka :
Butuh page replacement
Jika local replacement tinggi, maka peluang page fault juga tinggi
Akibatnya ?
Utilitas CPU rendah
Lebih sering terjadi swap in/out daripada eksekusi instruksi
OS menyangka banyak frame bebas, maka alokasikan untuk proses lain
Kondisi dimana lebih sering terjadi swap in/out daripada eksekusi instruksi
disebut sebagai Trashing

N
A
I
K
SE
ADA YANG INGIN
BERTANYA?

Anda mungkin juga menyukai