A. VIRTUAL MEMORY
Memori virtual adalah suatu teknik yang memisahkan antara memori
logis dan memori fisiknya. Memori logis merupakan kumpulan keseluruhan halaman
dari suatu program. Tanpa memori virtual, memori logis akan langsung dibawa ke memori
fisik (memori utama). Disinilah memori virtual melakukan pemisahan dengan
menaruh memori logis ke secondary storage (disk sekunder) dan
hanya membawa halaman yang diperlukan ke memori utama (memori fisik). Teknik
ini menempatkan keseluruhan program di disk sekunder dan membawa
halaman-halaman yang diperlukan ke memori fisik sehingga memori utama hanya
akan menyimpan sebagian alamat proses yang sering digunakan dan sebagian
lainnya akan disimpan dalam disk sekunder dan dapat diambil sesuai dengan kebutuhan.
Jadi jika proses yang sedang berjalan membutuhkan instruksi atau data yang
terdapat pada suatu halaman tertentu maka halaman tersebut akan dicari di
memori utama. Jika halaman yang diinginkan tidak ada maka akan dicari ke disk
sekunder.
Virtual Memory (VM) memiliki tiga fungsi penting :
1. Sebagai perangkat cache
2. Sebagai perangkat manajemen memori
ü VM menyederhanakan manajemem memori
dengan melakukan teknik pengalamatan yang seragam untuk setiap proses
ü Pengalamatan disk, memori, cache
dilakukan secara uniform
3. Sebagai perangkat untuk memproteksi
memori
ü VM melindungi alokasi alamat setiap
proses terhadap gangguan
ü Suatu proses tidak dapat diganggu
oleh proses lain.
Gambar. Virtual Memori |
Pada gambar diatas ditunjukkan ruang sebuah memori virtual
yang dibagi menjadi bagian-bagian yang sama dan diidentifikasikan dengan
nomor virtual pages. Memori fisik dibagi menjadi page
frames yang berukuran sama dan diidentifikasikan dengan nomor page
frames. Bingkai (frame) menyimpan data dari halaman. Atau memori
virtual memetakan nomor virtual pages ke nomor page
frames. Mapping (pemetaan) menyebabkan halaman virtual
hanya dapat mempunyai satu lokasi alamat fisik.
Dalam sistem paging, jika sebuah ruang
diperlukan untuk proses dan halaman yang bersangkutan tidak sedang digunakan,
maka halaman dari proses akan mengalami paged out (disimpan ke
dalam disk) atau swap out, memori akan kosong untuk halaman aktif
yang lain. Halaman yang dipindah dari disk ke memori ketika diperlukan
dinamakan paged in (dikembalikan ke memori) atauswap in.
Ketika sebuah item dapat mengalami paging, maka item tersebut
termasuk dalam item yang menempati ruang virtual, yang diakses dengan alamat
virtual dan ruangan yang ada dialokasikan untuk informasi pemetaan. Sistem
operasi mengalokasikan alamat dari item tersebut hanya ketika item tersebut
mengalami paging in.
B.
KONSEP DASAR MEMORI VIRTUAL
Pelaksanaan manajemen memori pada intinya adalah dengan
menempatkan semua bagian proses yang akan dijalankan ke dalam memori sebelum
proses dapat mulai dieksekusi. Dengan demikian semua bagian proses tersebut
harus memiliki alokasi sendiri di dalam memori fisik.
C.
CARA KERJA VIRTUAL MEMORI
Virtual Memory digunakan dengan membuat suatu file khusus
yang disebut swapfile atau paging file. Virtual memory digunakan pada saat
operating system kehabisan memory, dimana o.s. akan memindahkan data yang
paling terakhir diakses ke dalam swapfile di hardisk. Hal ini mengosongkan/
membebaskan beberapa ruang kosong pada memory untuk aplikasi yang akan
digunakan selanjutnya. Operating system akan melakukan hal ini secara terus
menerus ketika data baru diisi pada ram.
Kemudian, pada saat data yang tersimpan di swapfile
diperlukan, data tersebut ditukar (swap) dengan data yang paling terakhir
dipakai di dalam memory (ram). Hal ini mengakibatkan swapfile bersifat seperti
ram, walaupun program tidak dapat secara langsung dijalankan dari swapfile.
Satu hal yang perlu dicatat bahwa karena operating system tidak dapat secara
langsung menjalankan program dari swapfile, beberapa program mungkin tidak akan
berjalan walau dengan swapfile yang besar jika kita hanya memiliki ram yang
kecil.
D.
TEKNIK MEMORI VIRTUAL
Teknik memori virtual akan memudahkan pekerjaan seorang
programmer ketika besar data dan programnya melampaui kapasitas memori utama.
Sebuah multiprogramming dapat mengimplementasikan teknik
memori virtual sehingga sistem multiprogramming menjadi lebih
efisien. Contohnya: 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.
Prinsip dari memori virtual adalah bahwa “Kecepatan maksimum ekseskusi proses di
memori virtual dapat sama, tetapi tidak akan pernah melampaui kecepatan
eksekusi proses yang sama di sistem yang tidak menggunakan memori virtual”.
Memori virtual dapat diimplementasikan dengan dua cara:
1. Demand Paging yaitu dengan menerapkan konsep
pemberian halaman pada proses
2. Demand segmentation, lebih kompleks diterapkan ukuran
segmen yang bervariasi.
E.
IMPLEMENTASI MEMORI VIRTUAL
a. Demand Paging
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.
Gambar. Demand Paging |
Proses disimpan di memori sekunder (disk).
Jika proses akan dieksekusi, maka
dipindah (swap) ke memori. Menggunakan lazy swapper untuk melakukan swapping
bila page tersebut akan digunakan yang berarti sebuah page tidak pernah ditukar ke
memori kecuali page diperlukan. Jika page diperlukan, dilakukan acuan ke page
tersebut, tetapi jika acuan invalid maka dilakukan penghentian.
dipindah (swap) ke memori. Menggunakan lazy swapper untuk melakukan swapping
bila page tersebut akan digunakan yang berarti sebuah page tidak pernah ditukar ke
memori kecuali page diperlukan. Jika page diperlukan, dilakukan acuan ke page
tersebut, tetapi jika acuan invalid maka dilakukan penghentian.
Untuk membedakan antara page pada
memori dengan page pada disk digunakan
valid-invalid bit. Tabel page untuk page yang berada di memori diset "valid',
sedangkan tabel page untuk page yang tidak sedang di memori (ada pada disk) diset "invalid". Seperti Gambar dibawah ini:
valid-invalid bit. Tabel page untuk page yang berada di memori diset "valid',
sedangkan tabel page untuk page yang tidak sedang di memori (ada pada disk) diset "invalid". Seperti Gambar dibawah ini:
Gambar. Tabel Page |
Apabila tidak ditemukan frame bebas
makadilakukan page replacement yaitu mencari beberapapage di
memori yang tidak digunakan kemudian dilakukan swap outke backing
store. Terdapat beberapa algoritma page replacement dimana
performansi algoritma diharapkan
menghasilkan jumlah page faultminimum. Beberapa page
kemungkinan dibawa ke memori beberapa kali.
Perangkat keras yang dibutuhkan untukmendukung 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 dan biasanya adalah
disk kecepatan tinggi yang disebut swap device.
b. Page Replacement
Page replacement diperlukan pada
situasi dimana proses dieksekusi perlu frame
bebas tetapi tidak tersedia frame bebas. Sistem harus menemukan satu frame yang
sedang tidak digunakan dan membebaskannya. Untuk membebaskanframe dengan cara
menulis isinya untuk ruang swap dan mengubah tabel page (dan tabel lain) yang
menunjukkan page tidak lagi di memori.
bebas tetapi tidak tersedia frame bebas. Sistem harus menemukan satu frame yang
sedang tidak digunakan dan membebaskannya. Untuk membebaskanframe dengan cara
menulis isinya untuk ruang swap dan mengubah tabel page (dan tabel lain) yang
menunjukkan page tidak lagi di memori.
Kebutuhan
akan page replacement dapat dilihat pada Gambar dibawah ini:
Gambar. Page Replacement |
Langkah-langkah untuk page fault yang memerlukan page
replacement seperti
Gambar dibawah iniadalah sebagai berikut :
Gambar dibawah iniadalah sebagai berikut :
1.
Carilah lokasi pageyang diharapkan pada disk.
2.
Carilah framekosong dg cara :
ü Bila ada frame kosong,
gunakan.
ü Bila tidak ada,
gunakan algoritma page replacement untuk menyeleksi frame yang akan menjadi korban.
ü Simpan page korban
ke disk, ubah tabel page.
3.
Baca page yang diinginkan ke frame kosong
yang baru, ubah tabelpage.
4.
Mulai kembali proses user.
c. Algoritma Page Replacement
Terdapat beberapa algoritma page replacement setiap sistem
operasi mempunyai skema yang unik. Algoritma page replacement secara umum
diinginkan yang mempunyai rata-rata page fault terendah. Algoritma dievaluasi
dengan menjalankannya pada string tertentu dari memory reference dan menghitung
jumlah page fault String yang mengacu ke memori disebut reference string
(string acuan). String acuan dibangkitkan secara random atau dengan menelusuri
sistem dan menyimpan alamat dari memori acuan. Terdapat beberapa algoritma page
replacement antara lain algoritma first in first our (FIFO), optimal dan least
recently use (LRU).
ü Algoritma FIFO
Algoritma FIFO merupakan algoritma paling sederhana.
Algoritma FIFO diasosiasikan dengan sebuah Page bila Page tersebut dibawa ke
memori. Bila ada suatu Page yang akan ditempatkan, maka posisi Page yang paling
lama yang akan digantikan. Algoritma ini tidak perlu menyimpan waktu pada saat
sebuah Page dibawa ke memori. Algoritma page replacement FIFO :
ü Algoritma Optimal
Algoritma optimal merupakan hasil penemuan dari Belady’s
anomaly. Algoritma ini mempunyai rata-rata page fault terendah. Algoritma
optimal akan mengganti page yang tidak akan digunakan untuk periode waktu
terlama. Algoritma ini menjamin rata-rata page fault terendah untuk jumlah
frame tetap tetapi sulit implementasinya.
ü Algoritma Least Recently Use (LRU)
Algoritma LRU merupakan perpaduan dari algoritma FIFO dan
optimal. Prinsip dari algoritma LRU adalah mengganti page yang sudah tidak
digunakan untuk periode waktu terlama.
F.
VIRTUAL
MEMORY DI WINDOWS
Virtual Memory Di Linux
a.
Managemen Memori fisik di Linux
Memori managemen merupakan salah
satu bagian terpenting dalam sistem operasi. Karena adanya keterbatasan memori,
diperlukan suatu strategi dalam menangani masalah ini. Jalan keluarnya adalah
dengan menggunakan memori virtual. Dengan memori virtual, memori tampak lebih
besar daripada ukuran yang sebenarnya.
b.
Load dan Eksekusi Program
1. Penempatan program dalam memori
Linux membuat tabel-tabel fungsi untuk loading program,
memberikan kesempatan kepada setiap fungsi untuk meload file yang diberikan
saat sistem call exec dijalankan. Pertama-tama file binari dari page
ditempatkan pada memori virtual. Hanya pada saat program mencoba mengakses page
yang telah diberikan terjadi page fault, maka page akan diload ke memori fisik.
2. Linking statis dan linking dinamis
a. Linking statis:
Librari-librari yang digunakan oleh program ditaruh secara
langsung dalam file binari yang dapat dieksekusi. Kerugian dari linking statis
adalah setiap program harus mengandung kopi library sistem yang umum.
b. Linking dinamis.
Hanya sekali meload librari sistem menuju memori. Linking
dinamis lebih efisien dalam hal memori fisik dan ruang disk.
0 komentar:
Posting Komentar