0% menganggap dokumen ini bermanfaat (0 suara)
361 tayangan

Modul-10 Virtual Memory

1. Virtual memory menggunakan konsep demand paging untuk mengelola memori dengan cara memindahkan bagian-bagian program antara memori fisik dan ruang penyimpanan sekunder seperti disk ketika dibutuhkan. 2. Terjadi page fault jika suatu instruksi atau data berada di luar memori, lalu sistem akan melakukan page in untuk memindahkan halaman memori yang dibutuhkan. 3. Kebijakan penggantian halaman penting untuk menentukan halaman

Diunggah oleh

Yuli Ariyadi S
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPT, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
361 tayangan

Modul-10 Virtual Memory

1. Virtual memory menggunakan konsep demand paging untuk mengelola memori dengan cara memindahkan bagian-bagian program antara memori fisik dan ruang penyimpanan sekunder seperti disk ketika dibutuhkan. 2. Terjadi page fault jika suatu instruksi atau data berada di luar memori, lalu sistem akan melakukan page in untuk memindahkan halaman memori yang dibutuhkan. 3. Kebijakan penggantian halaman penting untuk menentukan halaman

Diunggah oleh

Yuli Ariyadi S
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPT, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 44

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)

Diagram Virtual Memory lebih


besar dari Physical Memory

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)

Demand Paging Virtual Memory Physical Memory


Apakah page
di memori ?

Ada, lalu
akses

Swap
page

Demand
page

Tidak ada,
maka page
di load

Demand 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 ?

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

Transfer of a Paged Memory to


Contiguous Disk Space

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)

Inisialisasi validinvalid bit di-set 0 untuk semua entry


page table
Frame #
valid-invalid bit
Contoh page table :
1
1
1
1
0

page table

0
0

Selama translasi address, jika validinvalid bit dalam


page table adalah 0 page fault.

Page Table When Some Pages


Are Not in Main Memory

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 :

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

Steps in Handling a Page Fault

Apa yang terjadi jika tidak ada


frame yang kosong ?
Page replacement temukan page dalam
memori, tetapi tidak sedang digunakan, swapout page tersebut
Algoritma yang digunakan
Performance algoritma yang digunakan adalah
yang menghasilkan jumlah minimum page fault

Performance 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)

Contoh 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

Page 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.

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

Kebutuhan Page Replacement


Over-Allocating Memory

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 :
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

Page Replacement

Dirty 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.

Frame 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)

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

Page 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

Grafik Page Faults vs Jumlah


Frame

Page 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

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

Algoritma 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

FIFO 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

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

FIFO Illustrating Beladys Anamoly

Algoritma 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 direplace.
Anomali Belady tidak berlaku
Secara teoritis paling optimal tapi dalam
kenyataannya sulit diimplementasikan

Optimal 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 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

Algoritma 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

LRU 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

END OF MODUL - 10

Anda mungkin juga menyukai