Memori virtual adalah suatu teknik yang memisahkan antara
memori logis dan memori fisiknya. Teknik ini menyembunyikan aspek-aspek fisik
memori dari pengguna dengan menjadikan memori sebagai lokasi alamat virtual
berupa byte yang tidak terbatas dan menaruh beberapa bagian dari memori virtual
yang berada di memori logis. Berbeda dengan keterbatasan yang dimiliki oleh
memori fisik, memori virtual dapat menampung program dalam skala besar,
melebihi daya tampung dari memori fisik yang tersedia.
Prinsip dari memori virtual yang patut diingat adalah bahwa:
"Kecepatan maksimum eksekusi proses di memori virtual dapat sama, tetapi
tidak pernah melampaui kecepatan eksekusi proses yang sama di sistem tanpa
menggunakan memori virtual."
IMPLEMENTASI MEMORI VIRTUAL
Gagasan utama
dari memori virtual adalah ukuran gabungan program, data dan stack melampaui
jumlah memori fisik yang tersedia. Sistem operasi menyimpan bagian-bagian
proses yang sedang digunakan di memori fisik (memori utama) dan sisanya
diletakkan di disk. Begitu bagian yang berada di disk diperlukan, maka bagian
di memori yang tidak diperlukan akan dikeluarkan dari memori fisik (swap-out)
dan diganti (swap-in) oleh bagian disk yang diperlukan itu.
Memori virtual
diimplementasikan dalam sistem multiprogramming. Misalnya: 10 program dengan
ukuran 2 Mb dapat berjalan di memori berkapasitas 4 Mb. Tiap program
dialokasikan 256 KByte dan bagian-bagian proses (swap in) masuk ke dalam memori
fisik begitu diperlukan dan akan keluar
(swap out) jika sedang tidak diperlukan. Dengan demikian, sistem
multiprogramming menjadi lebih efisien. Memori virtual dapat dilakukan melalui
dua cara. Yang pertama adalah permintaan pemberian halaman (demand paging). Dan
yang kedua adalah permintaan segmentasi (demand segmentation)
Demand Paging
Demand paging
atau permintaan pemberian halaman adalah salah satu implementasi dari memori
virtual yang paling umum digunakan. Demand paging pada prinsipnya hampir sama dengan permintaan
halaman (paging) hanya saja halaman (page) tidak akan dibawa ke ke dalam memori
fisik sampai ia benar-benar diperlukan. Untuk itu diperlukan bantuan perangkat
keras untuk mengetahui lokasi dari halaman saat ia diperlukan.
2. Demand
Segmentation
Konsep
segmentasi adalah user atau programmer tidak memikirkan sejumlah rutin program
yang dipetakan ke main memori sebagai array linier dalam byte tetapi memori
dilihat sebagai kumpulan segmen dengan ukuran berbeda-beda, tidak perlu
berurutan diantara segment tersebut.
Segmentasi adalah skema manajemen memori yang memungkinkan user untuk
melihat memori tersebut. Ruang alamat logika adalah kumpulan segmen. Setiap
segmen mempunyai nama dan panjang. Spesifikasi alamat berupa nama segmen dan
offset. Segment diberi nomor dan disebut dengan nomor segmen (bukan nama
segmen) atau segment number. Segmen dibentuk secara otomatis oleh
compiler.Sebuah program adalah kumpulan segmen. Suatu segmen adalah unit logika
seperti program utama, prosedur, fungsi, metode, obyek, variabel lokal,
variabel global, blok umum, stack, tabel simbol, array dan lain-lain.
MANAJEMEN MEMORI VIRTUAL
Sebagian besar
algoritma manajemen memori memerlukan satu kebutuhan dasar yaitu instruksi yang
akan dieksekusi harus berada di memori fisik. Pada beberapa kasus, keseluruhan
program tidak diperlukan. Misalnya :
Program mempunyai kode untuk menangani kondisi error yang
tidak biasa. Karena error error ini jarang terjadi, kode ini hampir tidak
pernah dieksekusi.
Array, list dan tabel dialokasikan lebih dari kapasitas
memori yang diperlukan.
Pilihan dan gambaran program jarang digunakan.
Pada kasus
dimana keseluruhan program dibutuhkan, mungkin tidak semua diperlukan pada saat
yang sama. Kemampuan mengeksekusi program hanya pada beberapa bagian dari
memori mempunyai beberapa keuntungan yaitu :
Program tidak terbatas jumlah memori fisik yang tersedia
sehingga user dapat menulis
Program untuk ruang alamat virtual yang sangat besar yang
berarti menyederhanakan programming task.
Karena setiap program user dapat menggunakan memori fisik
yang lebih kecil, pada waktu yang sama dapat menjalankan lebih banyak program.
I/O yang lebih sedikit diperlukan untuk load atau swap
program user ke memori, sehingga setiap program user dapat berjalan lebih
cepat.
Memori virtual
adalah teknik yang memisahkan memori logika user dari memori fisik. Menyediakan
memori virtual yang sangat besar diperuntukkan untuk programmer bila tersedia
memori fisik yang lebih kecil. Programmer tidak perlu khawatir jumlah memori
fisik yang tersedia, sehingga dapat berkonsentrasi pada permasalahan
pemrograman.
Sumber Refrensi:
http://journal.amikom.ac.id/index.php/KIDA/article/viewFile/3312/1348
http://opensource.telkomspeedy.com/repo/abba/v06/Kuliah/SistemOperasi/2003/49/produk/SistemOperasi/c56.html
https://skylacha.wordpress.com/2010/10/23/perbedaan-partition-segmentation-dan-paging/
Tidak ada komentar:
Posting Komentar