Title: Virtual Memory
1Virtual Memory
2Pembahasan
3Overview
- 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 modul-modul overlaynya
4Overview
- 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
5Overview
- 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
6Overview
- 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)
7Diagram Virtual Memory lebih besar dari Physical
Memory
8Demand 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)
9Demand Paging Virtual Memory - Physical Memory
Ada, lalu akses
Swap page
Apakah page di memori ?
Demand page
Tidak ada, maka page di load
10Demand Paging
- Pertanyaan saat page-in
- Page mana yang akan di page-out ?
- Apakah frame yang akan ditempati kosong ?
- Jika suatu page yang di page-out merupakan data,
perlu / tidak page di storage di-refresh ?
11Demand 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
12Transfer of a Paged Memory to Contiguous Disk
Space
13Dukungan 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)
14Valid-Invalid Bit
- Masing-masing entry page table memiliki nilai
- (1 ? in-memory, 0 ? not-in-memory)
- Inisialisasi validinvalid bit di-set 0 untuk
semua entry page table - Contoh page table
- Selama translasi address, jika validinvalid bit
dalam page table adalah 0 ? page fault.
15Page Table When Some Pages Are Not in Main Memory
16Dukungan Software
- Kendala arsitektur kemampuan me-restart
instruksi setelah terjadi page-fault - Page fault bisa terjadi pada
- Memory (data) reference
- Instruction fetch
17Contoh
- Instruksi 3 address ADD C, A, B dilakukan dalam
beberapa tahap - Fetch instruksi ADD
- Fetch data A ke dalam register Ra
- Fetch data B ke dalam register Rb
- Add Ra dan Rb dan hasilnya di register Rc
- Store hasil Rc ke C
- Page fault terjadi pada salah satu tahap
memerlukan pengulangan dari awal
18Steps in Handling a Page Fault
19Apa yang terjadi jika tidak ada frame yang kosong
?
- Page replacement temukan page dalam memori,
tetapi tidak sedang digunakan, swap-out page
tersebut - Algoritma yang digunakan
- Performance algoritma yang digunakan adalah
yang menghasilkan jumlah minimum page fault
20Performance Demand Paging
- Rasio Page Fault 0 ? p ? 1.0
- if p 0 no page faults
- if p 1, every reference is a fault
- Effective Access Time (EAT)
- EAT (1 p) x memory access time
- p (page fault overhead
- swap page out
- swap page in
- restart overhead)
21Contoh Demand Paging
- Memory access time 1 microsecond (1 ?sec)
- 50 dari waktu page yang digantikan (replace),
membutuhkan swap-out - Swap Page Time 10 msec 10,000 ?sec
- EAT (1 p) x 1 p (15000)
- 1 15000p (dalam ?sec)
- 5000 ?sec ? overhead
22Page Replacement Policy
- Performance (page fault ratio) bergantung pada
page replace policy agar page fault rate (PFR)
sekecil mungkin. - Jadi pemilihan policy untuk page replacement
sangat kritis terhadap performance sistem
keseluruhan.
23Swap 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
24Over-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.
25Solusi
- 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
26Kebutuhan Page Replacement Over-Allocating
Memory
27Page 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 - Mencari frame yang akan di-replace
- Page-out frame tersebut ke swap-space dan ubah
tabel page frame - Page-in page yang diminta ke frame kosong yang
baru, serta ubah tabel page frame - Mulai kembali ke user proses
28Page Replacement
29Dirty bit (Modify-bit)
- Saat tidak ditemukan frame kosong maka dilakukan
dua kali page transfer (in out) - Untuk mengurangi overhead operasi ini digunakan
dirty-bit pada setiap page/frame untuk
menunjukkan perlu/tidaknya page dalam disk
diupdate (telah terjadi modifikasi) - Modify bit di-set ketika word/byte dalam page
ditulis (write) ? page telah dimodifikasi. - Ketika memilih page untuk di-replace, modify bit
dibaca dulu. - Jika bit tersebut di-set, maka page tersebut
sudah dimodifikasi sejak dibaca di disk ? write
page ke disk. - Jika bit tersebut tidak di-set, maka page
tersebut belum dimodifikasi sejak dibaca di
memory ? jika copy dari page tersebut di disk
belum di overwrite, tidak perlu lagi write page
memory ke disk karena sudah ada.
30Frame Allocation Page Replacement
- Dua masalah
- Frame allocation algorithm menentukan berapa
banyak frame dialokasikan untuk suatu/setiap
proses - Page-replacement algorithm menentukan frame
mana yang dipilih untuk di page-out - Pemilihan algoritma yang tepat sangat penting,
karena pemrosesan pada disk I/O costnya mahal
(berpengaruh pada effective acces time)
31Page Replacement
- Terdapat banyak skema/algoritma
- Kriteria pemilihan algoritma yang sesuai
meminimisasi page-fault rate - Evaluasi dengan string string dari
aktifitas-aktifitas 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
32Page Fault vs Jumlah Frame
- Bertambahnya jumlah frame akibat penambahan
physical memory space dapat mengurangi PFR - Tanpa penambahan tersebut maka memperkecil ukuran
frame/page yang akhirnya meningkatkan page fault
33Grafik Page Faults vs Jumlah Frame
34Page Replacement Policy
- Algoritma First In First Out (FIFO)
- Algoritma Optimal (OPT)
- Algoritma Least Recently Used (LRU)
- Algoritma Second Change (Clock)
- Algoritma Enhanced Second Change (Clock)
- Algoritma Counting
- Algoritma Page Buffering
35Reference 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
36Algoritma First In First Out (FIFO)
- Page yang di-replace adalah page yang paling
tua (paling lama berada di memory secara terus
menerus) - Realisasinya setiap page menyimpan data waktu
page yang bersangkutan di-page-in atau
menggunakan struktur queue - Mudah di-implementasikan tapi performance tidak
selalu baik
37FIFO Page Replacement
- Reference string 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0
,1,7,0,1 - Jumlah frame 3
- Page fault terjadi 15 kali
38Anomaly 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
39FIFO Illustrating Beladys Anamoly
40Algoritma Optimal (OPT)
- Jika diketahui page-page mana yang berikutnya
akan diakses, maka page yang tidak akan digunakan
dalam waktu dekat (ie. Selang waktu terlama
hingga diakses kembali) yang di-replace. - Anomali Belady tidak berlaku
- Secara teoritis paling optimal tapi dalam
kenyataannya sulit diimplementasikan
41Optimal Page Replacement
- Reference string 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0
,1,7,0,1 - Jumlah frame 3
- Page fault terjadi 9 kali
- Pada referensi ke-4 terlihat page 7 akan
di-replace 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
42Algoritma Least Recently Used (LRU)
- Algoritma LRU merupakan perpaduan antara FIFO dan
OPT - Mengaproksimasi Algoritma Optimal
- Perkiraan akses yang akan datang (forward
information) diestimasi dengan menggunakan
informasi akses yang lalu (backward information) - Page dalam memori yang paling lama tidak diakses
yang di-replace - Jika SR reverse S maka PFR OPT pada S sama
dengan PFR LRU pada SR
43LRU Page Replacement
- Reference string 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0
,1,7,0,1 - Jumlah frame 3
- Page fault terjadi 12 kali
44END OF MODUL - 10