VIRTUAL
MEMORI
Akbar Giffary Ananda Putri Syaviri
Konsep dasar memori virtual
Teknik yang memisahkan memori logika user dari memori fisik.
Juga merupakan teknik pemetaan memori yang melibatkan memori sekunder, umumnya disk.
Secara sistem logika, ukuran memori lebih besar daripada ukuran memori utama secara fisik.
Programmer tidak perlu khawatir jumlah memori fisik yang tersedia, sehingga dapat berkonsentrasi pada permasalahan pemrograman.
Melibatkan mekanisme swapping
Lanjutan …
Image proses akan diinisialisasi di area swap space, yaitu
suatu lokasi di media penyimpan sebagai ekstensi memori
utama.
Swap space dapat berupa suatu berkas atau partisi khusus,
dan unit terkecilnya disebut page.
Pengalihan page dari swap space ke memori utama
menggunakan teknik lazy swapper, yaitu hanya page
Keuntungan
Lebih sedikit memori yang diperlukan per proses.
Manual folding (overlay) dieleminasi untuk menjalankan program-program besar
System response menjadi lebih cepat, karena tidak semua bagian image proses perlu dialokasikan ke memori utama,
proses dapat dieksekusi lebih cepat.
Lebih banyak proses yang dapat dijalankan
Ada 2 metode yang populer dalam implementasi
memori virtual :
1. Paging
Demand Pagging
Demand paging adalah sistem paging dengan swapping.
Page diletakkan di memori hanya jika diperlukan. Hal ini menyebabkan kebutuhan I/O lebih rendah, kebutuhan memori lebih rendah, respon lebih cepat dan lebih
banyak
user yang menggunakan.
Jumlah frame di memori utama tergantung tingkat multiprogramming .
semakin tinggi tingkat multiprogramming, semakin sedikit jatah frame untuk tiap proses
Menggunakan bit valid/invalid di page table
proses disimpan di memori sekunder (disk). - Jika akan dieksekusi dipindahkan (swap)
ke memori.
- Lazy Swapper --> swapping bila page
tersebut akan digunakan yang artinya
sebuah page tidak pernah ditukar ke memori kecuali page diperlukan.
- Backing store --> page yang sedang tidak
berada di memori, lalu dibawa ke memori.
- Valid-invalid bit --> membedakan antara
page pada memori dengan page pada disk.
- Valid --> jika tabel page untuk page berada
di memori.
- Invalid --> jika tabel page untuk page yang
Lanjutan…
Perangkat keras yang dibutuhkan untuk mendukung demand paging sama dengan perangkat keras untuk sistem paging dengan swapping yaitu
• Tabel page : tabel mempunyai kemampuan untuk memberi entry bit
valid-invalid atau nilai khusus untuk bit proteksi .
• Memori sekunder : digunakan untuk membawa page yang tidak di memori
Unjuk Kerja Demand Paging
(mekanisme)
Jumlah frame di memori utama tergantung tingkat multiprogramming .
semakin tinggi tingkat multiprogramming, semakin sedikit jatah frame untuk tiap proses
Menggunakan bit valid/invalid di page table
misal: bit 1 berada di memori utama bit 0 berada di swap space
Jika berstatus invalid, maka trap page fault akan dibangkitkan agar ditangani
lebih lanjut oleh rutin SO yaitu: page fault handler.
Rutin page fault handler akan menangani operasi swap-in terhadap page yang
1. Sistem operasi melihat tabel untuk menentukan jika acuan invalid maka
proses dihentikan dan page sedang tidak berada di memori.
2. Jika acuan invalid dilakukan trap ke sistem operasi.
3. Sistem mencari frame kosong
4. Sistem melakukan proses swapping ke frame bebas.
5. Tabel page di-reset, bit valid-invalid diset 1 atau valid
Page Replacement
Secara umum, algoritma dapat dibagi dua: Global Replacement
Victim frame dapat dipilih dari semua frame yang ada
Local Replacement
Algoritma Page Replacement
Algoritma FIFO (First In First Out)
Algoritma Optimal
Algoritma Page Replacement
Algoritma LRU
Algoritma Page Replacement
Algoritma FIFO
Algoritma Page Replacement
Algoritma Optimal
page yang diganti adalah page yang baru akan dipanggil lagi pada waktu yang masih lama.
Pengalokasian Frame
Pengalokasian tiap-tiap proses bervariasi tergantung pada tingkat multiprogramming
Jika tingkat multiprogramming nya semakin tinggi, maka proses akan kehilangan beberapa frame
Pengalokasian Frame
Alokasi sama rata (equal allocation)
Tiap proses mendapat jumlah frame sama banyak
Alokasi proporsional (proporsional allocation)
Tiap proses mendapat jumlah frame sesuai dengan besarnya image proses itu.
Alokasi berprioritas (priority allocation)
Thrashing
Thrashing --> kegiatan aktifitas paging yang tinggi.
- jika menghabiskan lebih banyak waktu untuk paging dari pada eksekusi.
SEGMENTASI
Selektor pada register segmen menyediakan indeks untuk memory resident table yang berisi segment descriptor
Lanjutan....
Sebagai contoh kita mempunyai nomor segmen dari 0 sampai dengan 4. Segmen-segmen ini disimpan dalam suatu memori fisik. Tabel Segmen-segmen berisi data untuk
masing-masing segmen, yang memberikan informasi tentang awal alamat dari