virtual memory
OverviewKonsep 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 modul-modul overlaynya
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
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
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 :
a. Demand paging
b. 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
a. Jika belum ada maka page di-swap in (dalam hal ini swapper lebih tepat disebut pager, swap-in/out menjadi page-in/out)
- 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)
a. 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)
- Inisialisasi valid–invalid bit di-set 0 untuk semua entry page table
Contoh page table :
- Selama translasi address, jika valid–invalid bit dalam page table adalah 0 ? page fault.
Dukungan Software
- Kendala arsitektur : kemampuan me-restart instruksi setelah terjadi page-fault
- Page fault bisa terjadi pada :
a. Memory (data) reference
b. Instruction fetch
Page Fault Service
- Menemukan lokasi dari page di dalam disk
- Menemukan free-frame, jika ada gunakan frame tersebut untuk page yang bersangkutan dan jika tidak ada :
a. Mencari frame yang akan di-replace
b. Page-out frame tersebut ke swap-space dan ubah tabel page & frame
c. Page-in page yang diminta ke frame kosong yang baru, serta ubah tabel page & frame
d. Mulai kembali ke user proses