Bab 9: Virtual Memory Latar Belakang Demand Paging Pembuatan Proses Page Replacement Alokasi Frame Thrashing Contoh Sistem Operasi 0. Latar Belakang Virtual memory memisahkan memori logika dari memori fisik. Hanya bagian dari program yang berada di memori yang akan dieksekusi. k i 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. Virtual memory dapat diimplementasikan dengan : Demand paging Demand segmentation 0.2
Virtual Memory lebih besari daripada Memori Fisik 0.3 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 0.4 2
Transfer Page dari Memori ke Ruang Disk yang Berurutan 0.5 Bit Valid-Invalid Untuk setiap masukan ke page table entry, akan dihubungkan dengan bit valid invalid ( dalam memori, 0 tidak dalam memori) Inisialisasi bit valid invalid invalid dengan 0 pada semua masukan. Contoh snapshop page table Frame # page table 0.6 valid-invalid bit Selamat menterjemahkan alamat, jika bit valid-invalid dalam masukan page table adalah 0 page fault. 0 0 0 3
Page Table jika beberapa Page tidak berada di Memori Utama 0.7 Page Fault 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 =. Restart instruksi: Least Recently Used Pindah blok Lokasi auto increment/decrement 0.8 4
Langkah-langkah menangani Page Fault 0.9 Apa uang 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 0.0 5
Performansi dari Demand Paging Rata-rata Page Fault 0 p.0 Jika p = 0 tidak ada page faults Jika p =, setiap referensi gagal Effective Access Time (EAT) EAT = ( p) x akses memori + p (waktu page fault + [swap page out ] + swap page in + waktu restart) 0. Contoh Demand Paging Waktu akses memori = microsecond 50% dari waktu page harus dilakukan modifikasi sehingga perlu di swap out. Waktu Swap Page = 0 msec = 0,000 msec EAT = ( p) x + p (5000) + 5000P (in msec) 0.2 6
Pembuatan Proses Virtual memory mempunyai keuntungan laing selama pembuatan proses: - Copy-on-Write - Memory-Mapped Files 0.3 Copy-on-Write Copy-on-Write (COW) mengijinkan baik proses parent dan child menginisialisasi page yang sama. Jika salah satu proses memodifikasi i 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 0.4 7
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 0.5 Memory Mapped Files 0.6 8
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 0.7 Kebutuhan Page Replacement 0.8 9
Dasar-dasar Page Replacement. 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. 0.9 Page Replacement 0.20 0
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 : 000, 0432, 00, 062,002, 003, 004, 00, 06, 002, 003,004, 00, 060, 002, 003, 004, 00,0609, 002, 005 dimana 00 byte per page direduksi ke string referensi :, 4,, 6,, 6,, 6,, 6, Pada contoh berikut, string referensi sbb, 2, 3, 4,, 2, 5,, 2, 3, 4, 5. 0.2 Graf Page Fault VS Jumlah Frame 0.22
Algoritma First-In-First-Out (FIFO) String Referensi:, 2, 3, 4,, 2, 5,, 2, 3, 4, 5 3 frame (3 page dapat di memori pada satu waktu per proses) 4 5 2 2 3 9 page faults 3 3 2 4 4 frame 2 2 5 3 3 2 4 4 3 4 5 0 page faults FIFO Replacement Belady s Anomaly Lebih banyak frames page fault lebih kecil 0.23 Page Replacement FIFO 0.24 2
Ilustrasi Belady s Anamoly pada FIFO 0.25 Algoritma Optimal Mengganti page yang tidak akan digunakan untuk periode waktu yang terlama. Contoh 4 frame, 2, 3, 4,, 2, 5,, 2, 3, 4, 5 4 2 6 page faults 3 4 5 Bagaimana cara mengetahuinya? Digunakan untuk mengukur bagaimana performansi dari algoritma. 0.26 3
Page Replacement Optimal 0.27 Algoritma Least Recently Used (LRU) Mengganti page yang sudah tidak digunakan untuk periode waktu yang terlama. String Referensi:, 2, 3, 4,, 2, 5,, 2, 3, 4, 5 5 Implementasi Counter 2 3 5 4 4 3 Setiap masukan page mempunyai counter; setiap waktu page direferensi melalui masukan, copy clock ke dalam counter. Jika sebuah page perlu diubah, cari counter untuk menentukan mana yang diubah. 0.28 4
Page Replacement LRU 0.29 Algoritma LRU (Lanj.) Implementasi Stack menyimpan stack yang berisi nomor page dalam bentuk double link: Page yang direferensi: Pindahkan ke atas Membutuhkan 6 pointer yang diubah Tidak ada pencarian replacement 0.30 5
Penggunaan Stack untuk menyimpan Page Referensi yang Sering digunakan 0.3 Allokasi Frame Setiap proses membutuhkan jumlah page minimum. Contoh: IBM 370 6 page untuk menangani instruksi SS MOVE: Instruksi 6 byte, bisa ditambah 2 page. 2 page untuk menangani from. 2 page untuk menangani to. Dua skema utama alokasi Alokasi fix Alokasi prioritas 0.32 6
Alokasi Fix Alokasi sama (equal) contoh, jika 00 frame dan 5 proses, masing-masing mendapat 20 page. Alokasi proporsional Alokasi berdasarkan ukuran proses. si ukuran proses pi S si m total jumlah frame si ai alokasi untuk pi m S m 64 s i s 2 0 27 0 a 64 5 37 27 a2 64 59 37 0.33 Alokasi Prioritas Menggunakan skema alokasi proposional menggunakan prioritas, bukan ukuran. Jika proses P i membangkitkan page fault, Memilih untuk replacement satu dari framenya. Memilih untuk reprecement sebuah frame dari sebuah proses dengan nomor prioritas terendah. 0.34 7
Alokasi Global vs. Lokal Replacement Global proses memilih sebuah replacement frame dari sekumpulan semua frame; satu proses dapat mengambil sebuah frame dari yang lain. Replacement Local setiap proses dari hanya dari kumpulan alokasi frame nya sendiri. 0.35 Thrashing Jika sebuah proses tidak cukup page, rata-rata pagefault sangat tinggi. Hal ini menyebabkan: Utilitas CPU yang rendah. Sistem opreasi perlu meningkatkan tingkat multiprogramming. Proses lain ditambahkan ke sistem. Thrashing sebuah proses yang sibuk melakukan swapping page ke dalam dan keluar. 0.36 8
Thrashing Mengapa paging bekerja? Model lokalitas li Proses migrasi dari satu lokasi ke lokasi lain. Lokasi kemungkinan overlap. Mengapa terjadi thrashing? ukuran lokasi > total ukuran memori 0.37 Contoh Sistem Operasi Windows NT Solaris 2 0.38 9
Windows NT Menggunakan demand paging dengan clustering. Clustering membawa page fault. Proses diset working set minimum dan working set maximum. Working set minimum adalah jumlah minimum page pada proses yang dijamin mendapat lokasi memori Sebuah proses mungkin digunakan untuk beberapa page dapat ditambahkan ke working set maximum. Jika jumlah memori bebas dalam sistem memenuhi threshold, automatic working set trimming digunakan untuk menyimpan jumlah memori bebas. Working set trimming menghapus page dari proses yang mempunyai page melebihi working set minimum. 0.39 Solaris 2 Menyimpan daftar page bebas untuk menentukan proses yang fault. Lotsfree parameter threshold untuk memulai paging. g Paging dibentuk dengan proses pageout. Pageout mencari page menggunakan algoritma modified clock. Scanrate adalah rata-rata page mana yang dicari. Jangkauan dari slowscan ke fastscan. Pageout dipanggil lebih sering tergantung jumlah ketersediaan memori bebas. 0.40 20
Solar Page Scanner 0.4 2