1. IMPLEMENTASI VIRTUAL MEMORI
PADA WINDOWS 7
NAMA :
- Amri Ahmad Riadi (09021381924135)
- Reza Qumaini (09021381924131)
- M.Rizky Al’Ashri (09021381924099)
- M.Salman Al Farisi (09021381924121)
2. Latar
blakang
Virtual memory-memisahkan memori
logika dari memori fisik. F
Hanya bagian dari program yang berada di
memori yang ak di k k i kan dieksekusi.
Ruang alamat logika dapat lebih besar
daripada ruang alamat fisik.
Mengijinkan ruang alamat digunakan
bersama-sama untuk beberapa proses.
Mengijinkan pembuatan proses yang lebih
efisien
3. Virtual memory dapat di implementasikan dengan
• Demand paging
• Demand segmentation
4. Demand Paging
• Membawa page ke dalam memori hanya jika diperlukan
• Memerlukan I/O yang lebih kecil
• Memerlukan memori yang lebih kecil
• Respon yang lebih cepat
• User yang lebih banyak
• Page diperlukan > referensikan
• Referensi invalid > abort
• Tidak dalam memori > bawa ke memori
6. Bit Valid-Invalid
• Untuk setiap masukan ke page table entry, akan dihubungkan dengan bit
valid–invalid. (1 => dalam memori, 0 => tidak dalam memori).
• Inisialisasi bit valid Inisialisasi bit valid–invalid dengan 0 pada semua
masukan
• Contoh snapshop page table
7. Page vault
• Jika terdapat masukan yang direferensi ke page, referensi pertama akan trap
ke OS => page fault.
• OS melihat ke tabel lain untuk menentukan: => Referensi Invalid => abort.
=> Sedang tidak berada di memori.
• Dapatkan frame kosong.
• Swap page ke dalam frame.
• Reset tabel, validasi bit = 1.
8. Apa yang terjadi jika tidak terdapat frame bebas?
• Page replacement – mencari beberapa page di dalam memori, titapi tidak
digunakan, swap keluar
-algoritma
-performansi – menginginkan algoritma yang menghasilkan jumlah page
fault minimal
• Page yang sama mungkin dibawa ke memori beberapa kali
9. Performansi dari Demand Paging
• Rata-rata Page Fault 0 <_ p <_1.0
-Jika p = 0 tidak ada page faults
-Jika p = 1, setiap referensi gagal
• Effective Access Time (EAT)
EAT = (1 – p) x akses memori
+ p (waktu page fault + [swap page out ] + swap page in + waktu
restart)
10. Contoh Demand Paging
• Waktu akses memori = 1 microsecond
• 50% dari waktu page harus dilakukan modifikasi sehingga perlu di swap out.
• Waktu Swap Page = 10 msec = 10,000 msec
EAT = (1 – p) x 1 + p (15000) 1 + 15000P (in msec)
11. Pembuatan Proses
• Virtual memory mempunyai keuntungan laing selama pembuatan proses:
-Copy-on-Write
-Memory-Mapped Files
12. Copy-on-Write
• Copy-on-Write (COW) mengijinkan baik proses parent dan child
menginisialisasi page yang sama. Jik l h t difik i h d Jika salah satu proses
memodifikasi shared page, page akan di-copy.
• COW memungkinkan pembuatan proses yang lebih efisian karena hanya
memodifikasi page yang di-copy.
• Page bebas dialokasikan dari sebuah pool
13. Memory-Mapped Files
• Memory-mapped file I/O memungkinkan file I/O diperlakukan sebagai routine
memory access dengan memetakan blok disk ke page di memory
• Sebuah file diinisialisasi read menggunakan demand paging. File dibaca dari
sistem file ke page pada memori fisik sesuai ukuran page. Read/write ke/dari
file diperlakukan seperti akses memori
• Akses file dengan memperlakukan file I/O sebagai akses memori lebih
sederhana daripada sistem call read() write()
• Juga memungkinkan beberapa proses untuk memetakan file yang sama
pada page di memori yang sama
15. Page Replacement
• Mencegah over-allocation dari memori dengan rutin modifikasi page-fault
untuk melakukan page replacement
• Menggunakan bit modify (dirty) untuk mengurangi kegagalan transfer page –
hanya page yang dimodifikasi yang ditulis di disk
• Page replacement membedakan memori logika dan memori fisik – memori
virtual besar dapat disediakan pada memori fisik yang kecil
17. Dasar-dasar Page Replacement
1. Cari lokasi page pada disk.
2. Cari frame bebas:
- jika terdapat frame bebas, gunakan.
- jika tidak ada frame bebas, gunakan algoritma page replacement untuk
memilih frame korban.
3. Baca page yang tepat ke frame bebas. Update tabel page.
4. Restart proses.
18. Algoritma Page Replacement
• Mencari rata-rata page-fault terkecil.
• Evaluasi algoritma dengan menjalankan pada sekumpulan string memori
referensi dan menghitung jumlah page fault pada string
• String acuan dibangkitkan secara random atau dengan menelusuri sistem
dan menyimpan alamat dari memory
=> Contoh : jika ditelusuri proses tertentu, disimpan alamat berikut :
0100, 0432, 0101, 0612,0102, 0103, 0104, 0101, 0611, 0102,
0103,0104, 0101, 0610, 0102, 0103, 0104, 0101,0609, 0102, 0105 dimana
100 byte per page direduksi ke string referensi : 14161616161
• Pada contoh berikut, string referensi sbb 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5.