Modul-10 Virtual Memory
Modul-10 Virtual Memory
Pembahasan
Overview
Demand Paging
Overview
Konsep manajemen memori sebelumnya :
Me-maintain banyak proses yang running dalam
memori secara multiprogramming
Proses berada dalam memori fisik sebelum
dieksekusi
Dalam overlaying user harus men-dekomposisi struktur
program dalam algoritmanya dan menspesifikasi modulmodul overlaynya
Overview
Isi program :
Algoritma utama yang aktif mengolah data
Penanganan kondisi error (exceptional condition)
yang amat jarang terjadi
Struktur data dynamic allocated yang terpakai
secara efektif
Struktur data fixed allocated yang biasanya hanya
sebagian yang digunakan
Modul-modul tertentu yang jarang digunakan
Overview
Keuntungan jika tidak semua bagian tersebut
ada di memori (hanya bagian yang paling aktif) :
Program tidak terkendalakan oleh jumlah memori
fisik ; program bisa amat besar
Program-program pengendali error (error handling)
jarang digunakan.
Array, list atau tabel yang dialokasikan melebihi
kapasitas yang digunakan.
Program-program yang dijalankan belakangan.
Lebih banyak program yang dapat running secara
konkuren di memori; utilisasi CPU meningkat
Lebih sedikit I/O untuk loading/swapping ; program
user lebih cepat
Overview
Konsep Virtual Memory
Melihat memori sebagai cache dan disk sebagai
memori
Implementasi dengan demand paging : bagian
program berada dalam memori adalah page-page
yang sesuai dengan kebutuhan
Dapat diimplementasikan melalui :
Demand paging
Demand segmentation (page segmentasi)
Demand Paging
Sama dengan teknik paging dengan swapping
Proses berada dalam secondary storage
(biasanya disk) yang terbagi dalam sejumlah
page
Untuk dapat dieksekusi maka page proses
yang diperlukan harus ada di memori
Jika belum ada maka page di-swap in (dalam hal ini
swapper lebih tepat disebut pager, swap-in/out
menjadi page-in/out)
Ada, lalu
akses
Swap
page
Demand
page
Tidak ada,
maka page
di load
Demand Paging
Pertanyaan saat page-in :
Demand Paging
Periksa tabel internal (biasanya pada PCB =
process control block) apakah referensi
valid/invalid
Bila valid tapi belum ada maka di page-in
Jika invalid, maka batalkan proses
Dukungan Hardware
Page table : tabel memiliki valid/invalid bit serta
bit proteksi khusus
Secondary memory : memori yang menyimpan
seluruh page (biasanya disk)
Dikenal sebagai swap device dan bagian disk yang
digunakan untuk swap disebut swap space (backing
store)
Valid-Invalid Bit
Masing-masing entry page table memiliki nilai :
(1 in-memory, 0 not-in-memory)
page table
0
0
Dukungan Software
Kendala arsitektur : kemampuan me-restart
instruksi setelah terjadi page-fault
Page fault bisa terjadi pada :
Memory (data) reference
Instruction fetch
Contoh :
Instruksi 3 address ADD C, A, B dilakukan
dalam beberapa tahap :
Swap Space
Aspek penting dalam demand paging adalah
menangani penggunaan swap space (ruang disk
yang digunakan untuk swap)
Suatu bagian dalam disk dijadikan swap space
(di luar sistem file) sebagai penyimpan virtual
memory
Over-Allocating Memory
Peningkatan degree of multiprogramming akan
sampai pada situasi Over Allocating Memory
Saat terjadi page-fault & hendak page-in ternyata
tidak ada frame kosong tersedia
Solusi OS : terminate proses user ? NO.
Paging harus transparan bagi user.
Solusi
Thrashing : swap-out suatu proses (penurunan
degree of multiprogramming)
Page replacement : mencari salah satu frame
yang tidak sedang digunakan dan
membebaskannya
Menuliskan isi sebelumnya ke swap-space
Mengubah page table dimana page tidak ada di
memori
Page Replacement
Page Replacement
Terdapat banyak skema/algoritma
Kriteria pemilihan algoritma yang sesuai :
meminimisasi page-fault rate
Evaluasi dengan string : string dari aktifitasaktifitas memory reference
String dari memory reference dinamakan reference
string
Secara empiris direkam dari referensi yang terjadi
pada running program
Secara hipotesis digenerate secara acak (random
number generator)
Menghitung jumlah page fault pada string tersebut
Reference String
Dalam pembahasan algoritma-algoritma
reference string disederhanakan dengan
deretan page number (bukan address-address
referensi)
Contoh :
0100, 0432, 0101, 0612, 0102, 0103, 0104, 0101,
0611, dst
Digantikan (page size = 100 byte) dengan : 1, 4, 1, 6,
1, 6, dst
Anomaly Belady
Anomali yang terjadi : PFR naik saat jumlah
frame ditingkatkan
Contoh, jika reference string :
1,2,3,4,1,2,5,1,2,3,4,5
Jumlah frame = 3, PFR = 9 page fault
Jumlah frame = 4, PFR = 10 page fault
Pada referensi ke-4 terlihat page 7 akan direplace dengan page 2, karena page 7 baru akan
digunakan pada referensi ke-18, sedangkan page
0 akan digunakan pada referensi ke-5 dan page 1
akan digunakan pada referensi ke-14
END OF MODUL - 10