Virtual Memori
Konsep manajemen memori:
- Mengelola beberapa proses yang berjalan di memori secara multiprogramming
- Proses berada di memori fisik sebelum dieksekusi
- Overlaying mengharuskan pengguna untuk menguraikan struktur program ke dalam algoritma dan menentukan modul overlaynya
Isi program:
- Algoritma utama yang secara aktif memproses data
- Penanganan kondisi error yang sangat langka
- Struktur data dynamic allocated yang digunakan secara efisien
- Struktur data fixed allocated yang biasanya hanya digunakan sebagian
- Beberapa modul yang jarang digunakan
Keuntungan jika tidak semua bagian ada di memori (hanya bagian yang paling aktif):
- Program tidak dibatasi oleh jumlah memori fisik; Programnya bisa sangat lengkap
- Program pengecekan kesalahan (error handling) jarang digunakan.
- Array, daftar, atau tabel yang dialokasikan melebihi kapasitas yang digunakan.
- Program yang dijalankan saat ini.
- Beberapa program dapat berjalan secara bersamaan di memori; Penggunaan CPU meningkat
- Lebih sedikit I/O untuk memuat/menukar; program pengguna lebih cepat
Konsep virtual memory:
- Melihat memori sebagai “cache” dan disk sebagai “memori”.
- Implementasi dengan demand paging: Bagian dari program di memori adalah page yang memenuhi permintaan
- Dapat dilaksanakan melalui:
- Demand paging
- Demand segmentation (page segmentasi)
Demand paging
- Hal yang sama berlaku untuk teknik paging dengan swapping
- Prosesnya berada di secondary storage (biasanya disk), yang dibagi menjadi beberapa page
- Untuk menjalankan, page proses yang diperlukan harus ada di memori
- Jika tidak ada, page tersebut di swap in (pada kasus ini swapper lebih tepat disebut pager, swap-in/out menjadi page-in/out)
Dukungan hardware
- Tabel Halaman: Tabel berisi bit yang valid/tidak valid dan bit proteksi khusus
- Secondary storage: Penyimpanan yang menyimpan semua halaman (biasanya disk)
- Dikenal sebagai swap device, dan bagian dari disk yang dipakai untuk swapping disebut swap space
Dukungan software
- Gangguan arsitektur: Kemampuan untuk memulai kembali instruksi setelah kesalahan page terjadi
- Kesalahan page dapat terjadi pada:
- Memory (data) reference
- Instruction fetch
Page Replacement Policy
- Performance (page fault ratio) tergantung pada page replace policy untuk menjaga page fault rate (PFR) serendah mungkin.
- Dengan demikian, pilihan policy untuk page replacement sangat penting untuk kinerja sistem secara keseluruhan.
Swap space
- Aspek penting dari demand paging adalah mengelola penggunaan swap (ruang yang digunakan untuk swap).
- Bagian dari disk digunakan sebagai swap space (selain dari sistem file) untuk menyimpan “virtual memory”.
Over-Allocating Memory
- Meningkatkan degree of multiprogramming mengarah ke situasi Over Allocating Memory
- Saat terjadi page fault dan hendak page in ternyata tidak tersedia frame kosong
- Solusi OS: Matikan Proses Pengguna? Tidak
- Paging harus transparan bagi pengguna.
Solusi
- Thrashing: swap out proses (penurunan degree of multiprogramming)
- Page replacement: Temukan dan bebaskan frame yang tidak digunakan
- Tulis konten sebelumnya ke swap space
- Mengubah page table saat page tidak ada dalam memori
Page Fault Service
- Temukan lokasi page di disk
- Temukan free-frame, jika ada, gunakan frame ini untuk page yang dimaksud, dan jika tidak tersedia:
- Mencari frame untuk ditukar
- Page-out frame ke swap space dan edit tabel page dan frame
- Page-in page yang diminta ke dalam frame kosong baru dan edit table page dan frame
- Mulai ulang user proses
Dirty bit (Modify-bit)
- Jika tidak ada frame kosong yang ditemukan, maka dilakukan dua kali page transfer (in & out)
- Untuk mengurangi overhead operasi ini, dirty bid digunakan pada setiap page atau frame untuk menunjukkan apakah page pada disk perlu diperbarui (telah terjadi perubahan).
- Modify bit diatur ketika word/byte ditulis ke page dan page telah dimodifikasi.
- Saat memilih page yang akan diganti, modify bit yang dibaca terlebih dahulu.
- Jika bit ini disetel, halaman telah dimodifikasi sejak dibaca dari disk dan page akan segera ditulis ke disk.
- Jika bit ini tidak di-set, page belum dimodifikasi sejak dibaca dari memori, jika copy disk page belum di overwrite, tidak perlu write page memory pada disk karena sudah ada.
Frame Allocation – Page Replacement
- Dua masalah:
- Frame allocation algorithm: Menentukan jumlah frame yang dialokasikan untuk setiap proses
- Page-replacement algorithm: Menentukan frame mana yang dipilih untuk page-out
- Memilih algoritma yang tepat sangat penting karena pemrosesan pada disk I/O intensif (mempengaruhi effective acces time).
Page Replacement
- Ada banyak skema atau algoritma
- Kriteria untuk memilih algoritme yang sesuai: Meminimalkan page fault rate
- Evaluasi dengan String: String aktivitas memory reference
- String referensi memori disebut reference string
- Dikumpulkan secara empiris dari petunjuk-petunjuk yang terjadi pada program yang sedang berjalan
- Secara hipotesis dihasilkan secara acak (random number generator)
- Hitung jumlah kesalahan page fault dalam string
- Mencegah alokasi memori yang berlebihan dengan memodifikasi page-fault service routine untuk memasukkan page replacement
- Gunakan modify (dirty) bit untuk mengurangi overhead page transfer – hanya page yang dimodifikasi yang ditulis ke disk
- Penggantian halaman menyelesaikan pemisahan antara logical memory dan physical memory – virtual memory yang besar dapat disediakan pada physical memory yang lebih kecil
Page Fault vs Jumlah Frame
- Meningkatnya jumlah frame karena penambahan physical memory space dapat mengurangi PFR
- Tanpa penambahan ini, ukuran frame atau page berkurang, yang pada akhirnya meningkatkan page fault
0 Comments