Resume Pertemuan Ke-10 “Virtual Memori”

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.

 

  1. 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
  1. 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
  1. 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)
  1. 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
  1. 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
  1. 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

  1. 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
  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
  1. 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
  1. 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
  1. Penggantian halaman
  • Mencegah alokasi berlebih memori dengan memodifikasi servis rutin kesalahan halaman untuk termasuk penggantian halaman
  • Menggunakan modifikasi bit untuk mengurangi overhead transfer halaman

Posted

in

by

Tags:

Comments

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

* Kode Akses Komentar:

* Tuliskan kode akses komentar diatas: