Kode perlu berada di memori untuk dieksekusi, tetapi keseluruhuan program jarang digunakan.
Seluruh kode program tidak dibutuhkan di waktu bersamaan.
Pertimbangkan kemampuan untuk mengeksekusi program yang dimuat sebagian
- Program tidak dibatasi oleh limit memori fisik.
- Setiap program memakai lebih sedikit memori ketika berjalan (banyak program berjalan di waktu bersamaan).
- Lebih sedikit membutuhkan I/O untuk memuat atau menukar program ke memori (setiap program pengguna berjalan lebih cepat)
Virtual memori – Pemisahan memori logis pengguna dari memori fisik
- Hanya bagian dari program yang perlu di dalam memori untuk dieksekusi
- Logical address space bisa lebih besar dari physical address space .
- Memungkinkan address spaces untuk dipakai bersama oleh beberapa proses.
- Memungkinkan untuk pembuatan proses yang lebih efisien.
- Lebih banyak program berjalan bersamaan
- Lebih sedikit membutuhkan I/O untuk memuat atau menukar proses
Virtual address space – Pandangan logis bagaimana proses tersimpan di memori
- Biasanya dimulai di address 0, alamat berdekatan sampai akhir dari ruang
- Memori fisik diatur di page frames
- MMU harus memetakan logika ke fisik
Virtual memori dapat diimplementasikan melalui :
- Permintaan halaman.
- Permintaan segmentasi.
- Virtual-address space
- Biasanya desain logical address space untuk tumpukan untuk memulai pada Max logical address dan tumbuh “turun” sementara tumpukan tumbuh “naik”.
- Memaksimal ruang address digunakan
- Ruang address yang tidak digunakan diantara keduanya adalah lubang
- Memungkinkan ruang address yang jarang dengan lubang yang tersisa untuk tumbuh.
- Sistem perpustakaan dibagikan melalui pemetaan ke ruang virtual address
- Memori bersama dengan memetakan halaman baca tulis ke ruang virtual address
- Halaman bisa dibagikan selama fork (), mempercepat proses pembuatan
- Demand paging
- Bisa membawa semua proses ke memori pada waktu memuat
- Bisa membawa halaman ke memori hanya saat dibutuhkan
- Lebih sedikit I/O yang diperlukan
- Lebih sedikit memori yang diperlukan
- Respon yang lebih cepat
- Lebih banyak pengguna
- Serupa dengan sistem halaman dengan swapping
- Halaman diperlukan
- Lazzy swapper – Tidak pernah menukar halaman ke memori kecuali halaman akan diperlukan
- Konsep Dasar
- Dengan swapping, pager menebak halaman mana yang akan dipakai sebelum bertukar lagi.
- Sebaliknya pager hanya membawa halaman-halaman itu ke memori
- Cara menentukan kumpulan halaman itu adalah membutuhkan fugsionalitas MMU baru untukk mengimplementasikan demand paging
- Jika halaman yang dibutuhkan sudah pemakai memori maka tidak ada perbedaan dari non demand-paging
- Jika halaman dibutuhkan dan bukan pemakai memori maka memerlukan untuk mendeteksi dan memuat halaman ke memori dari penyimpanan (Tanpa mengubah kebiasaan program, tanpa membutuhkan pemrogram untuk mengubah kode)
- Bit Valid – Tidak Valid
- Dengan setiap entri tabel halaman valid-tidak valid dikaitkan
- Awalnya bit valid – tidak valid diset ke i pada semua entri
- Selama penerjemahan alamat MMU, jika bit valid – tidak valid di tabel halaman entri adalah i maka halaman salah
- Kesalahan Halaman (Page Fault)
Bila terdapat referensi pada halaman, referensi pertama pada halaman akan menjebak pada operasi sistem kesalahan halaman
- Operasi system melihat pada tabel lainnya untuk memutuskan referensi tidak valid dan tidak hanya di memori
- Menemukan free frame
- Menukar halaman ke frame dengan operasi penjadwalan disk
- Mengatur ulang tabel untuk mengindikasi halaman sekarang di memori
- Mengatur ulanng instruksi yang menyebabkan kesalahan halaman
- Aspek dari Demand Paging
- Kasus ekstrim – memulai proses dengan tanpa halaman di memori
- Operasi system menetapkan petunjuk instruksi untuk instruksi pertama proses, bukan pengguna memori
- Untuk setiap halaman proses lainnya di akses pertama
- Sebenarnya instruksi yang diberikan dapat mengakses beberapa halaman yang menyebabkan banyak kesalahan halaman
- Pertimbangkan mengambil dan mendekode instruksi yang menambahkan 2 angka dari memori dan menyimpan hasilnya kembali ke memori
- Pain berkurang karena lokalitas referensi
- Pendukung perangkat keras dibutuhkan untuk demand paging
- Tabel halaman dengan bit valid / tidak valid
- Memori kedua (menukar perangkat dengan ruang tukar)
- Instruksi mulai ulang
Pertimbangkan instruksi yang dapat mengakses beberapa lokasi berbeda
- Peforma dari Demand Paging
- Tahapan di demand paging (kasus buruk)
- 3 kegiatan utama :
- Servis interupsi – pengkodean dengan cermat hanya beberapa ratus instruksi dibutuhkan
- Membaca halaman dengan banyak waktu
- Memulai ulang proses dengan hanya sejumlah kecil dari waktu
- Tingkat kesalahan halaman 0 ≤ p ≤ 1
- Optimasi Demand Paging
- Menukar ruang I/O lebih cepat daripada system file I/O walaupun pada perangkat yang sama.
- Menyalin semua gambar proses ke ruang tukar pada waktu memuat proses
- Minta halaman masuk di program biner di dalam disk, tetapi membuang dibanding paging out ketika membebaskan frame
- Sistem mobile
- Copy – on – write
- Mengizinkan kedua pemrosesan orang tua dan anak ke untuk berbagi halaman yang sama di memori
- COW mengizinkan proses penciptaan yang lebih efisien sebagai hanya halaman modifikasi yang disalin
- Pasa umumnya, halaman gratis dialokasikan dari pool of zero fill on demand pages
- Yang terjadi jika tidak ada free frame
- Digunakan oleh halaman proses
- Penggantian halaman – temukan beberapa halaman di memori, tetapi tidak benar benar digunakan
- Halaman yang sama mungkin dibawa ke memori beberapa kali
- Penggantian halaman
- Mencegah alokasi berlebih memori dengan memodifikasi servis rutin kesalahan halaman untuk termasuk penggantian halaman
- Menggunakan modifikasi bit untuk mengurangi overhead transfer halaman
Tinggalkan Balasan