VIRTUAL MEMORY
1. Definisi
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.
Cara Kerja
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.
Beberapa keuntungan penggunaan memori virtual
adalah sebagai berikut:
- Berkurangnya proses I/O yang dibutuhkan (lalu lintas I/O menjadi rendah). Misalnya untuk program butuh membaca dari disk dan memasukkan dalam memory setiap kali diakses.
- Ruang menjadi lebih leluasa karena berkurangnya memori fisik yang digunakan. Contoh, untuk program 10 MB tidak seluruh bagian dimasukkan dalam memori fisik. Pesan-pesan error hanya dimasukkan jika terjadi error.
- Meningkatnya respon, karena menurunnya beban I/O dan memori.
- Bertambahnya jumlah pengguna yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan komputer untuk menerima lebih banyak permintaan dari pengguna.
- Kedudukan Virtual Memory 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.
Implementasi Virtual Memori
Memori virtual biasanya diimplementasikan
menggunakan demand paging atau demand segmentation juga digunakan. Tetapi
algoritma segment-replacement lebih kompleks daripada algoritma
page-replacement karena segmen mempunyai ukuran yang bervariasi.
Ciri-ciri Demand Paging :
Ø (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.
Ø Page diload ke memory hanya ketika dibutuhkan
Ø Sedikit I/O yang dibutuhkan.
Ø Sedikit memori yang dibutuhkan.
Ø Respon yang lebih cepat.
Ø Dapat melayani lebih banyak pengguna.
Ø Lazy swapper – tidak melakukan swapping page ke memori
hingga page dibutuhkan.
Swapper yang berurusan dengan page disebut
pager.
1. Cek page ada di memori atau
tidak? Digunakan Valid-Invalid bit Setiap entri page table diasosiasikan dengan
valid dan invalid bit.
(valid) >> ada di memori
(invalid)
>> punya arti dua :
1) alamat logika tidak sesuai dengan proses
2) page ada di disk tapi tidak ada dimemori
1. Pengalokasian frame Virtual Memory
Frame adalah tempat untuk membawa halaman
dengan intruksi-intruksinya. Alokasi frame berhubungan dengan mekanisme alokasi
sejumlah memori bebas yang tetap diantara beberapa proses. Meskipun terdapat
beberapa variasi pengalokasian frame bebas ke beberapa proses, tetapi strategi
dasar jelas yaitu : proses user dialokasikan untuk sembarang frame bebas.
Jumlah minimum frame per proses ditentukan
oleh arsitektur dimana jumlah maksimum tergantung jumlah memori fisik yang
tersedia. Jumlah minimum frame ditentukan oleh arsitekturinstruction-set. Bila
terjadi page fault sebelum eksekusi intruksi selesai,intruksi harus di-restart.
Sehingga tersedia frame yang cukup untuk membawa semua page yang berbeda dimana
sembarang intruksi dapat mengacu. Misalnya mikrokomputer menggunakan memori
128K yang dikomposisikan dengan page ukuran 1K, maka terbentuk 128 frame. Jika
sistem operasi menggunakan 35K, maka 93 frame bisa digunakan program user. Bila
suatu program menyebabkan page fault sebanyak 93 kali, maka menempati 93 frame
bebas tersebut. Jika terjadi page fault yang ke 94, dari 93 frame yang terisi
harus dipilih salah satu untuk diganti yang baru. Bila program selesai, 93
frame tersebut dibebaskan kembali.
Terdapat 2 bentuk algoritma alokasi yaitu
equal allocation dan proportional allocation. Pada equal allocation, jika
terdapat m frame dan n proses, maka setiap proses dialokasikan sejumlah frame
yang sama (m/n frame). Pada proportional allocation setiap porses dialokasikan
secara proporsional berdasarkan ukurannya.
1) Trashing (Virtual Memory trashing)
Trashing adalah suatu proses yang sibuk
melakukan swap pagi in dan out. Jika suatu proses tidak mempunyai page yang
cukup, tingkat page fault menjadi tinggi. Hal tersebut dapat dilihat dari :
1. Sistem Operasi meningkatkan multiprogramming
2. Utilisasi CPU meningkat sejalan dengan
bertambahnya multiprogramming
3. Proses lain ditambhakan ke dalam sistem
0 komentar:
Posting Komentar