Tugas yang kami kerjakan secara berkelompok ini berbentuk sebuah makalah dengan materi "Virtual Memori", berikut isi dari makalah kami:
v Latar Belakang
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.
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/diproses. 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
- Ada
pernyataan-pernyataan atau pilihan yang hanya akan dieksekusi jika kondisi
tertentu dipenuhi
- Terdapat
fungsi-fungsi yang jarang digunakan
- Pengalokasian
memori yang lebih besar dari yang sebenarnya dibutuhkan.
Pada memori berkapasitas besar, hal-hal ini
tidak akan menjadi masalah. Namun pada memori dengan kapasitas yang sangat
terbatas, hal ini akan menurunkan optimalisasi utilitas dari ruang memori fisik
(memori utama).
v Memory Virtual
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/logis user dari
memori fisik. 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.
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.
v Demand Paging
Sistem Paging
mengimplentasikan ruang alamat besar pada memori kecil menggunakan index
register, base register, dan segment register, dan lain-lain. Pemakai seolah
mempunyai ruang memori sangat besar tanpa mengelola overlay. Beberapa istilah
pada sistem paging adalah virtual address, real address, page, page frame, page
fault, MMU.
Virtual Address adalah
alamat yang dihasilkan perhitungan menggunakan index register, base register,
segment register, dan sebagainya. Ruang alamat yang dibentuk virtual address
adalah disebut virtual address space dilambangkan dengan V. Jumlah alamat pada
V disimbolkan dengan │V│. Virtual address ini yang diacu pada proses yang
running.
Real Address adalah
alamat di memori utama fisik. Ruang alamat yang dibentuk real address disebut
real address space dilambangkan dengan R. Jumlah alamat pada R disimbolkan
dengan │R│. Pada implementasi sistem memori virtual, normalnya │V│>>│R│.
Meski pengacuan proses
dilakukan berdasarkan memori virtual, proses sesungguhnya berjalan di memori
nyata. Virtual address harus dipetakan menjadi real address saat proses
dieksekusi. Pemetaan harus dilakukan dengan sangat cepat atau kinerja komputer
akan menurun drastis.
Sistem komputer akan menerjemahkan memori virtual menjadi alamat fisik.
Bagian yang bertugas untuk memetakan adalah MMU.
Page adalah unit terkecil
virtual address space. Ruang memori virtual proses merupakan kelipatan page
yang berukuran sama.
Page frame adalah unit
terkecil memori fisik. Memori fisik secara konseptual dibagi menjadi sejumlah
unit berukuran tetap disebut page frame. Page frame sering disingkat frame.
Page fault adalah
exception untuk permintaan alokasi page ke memori. Dalam konteks memori maya,
page fault sering disingkat fault.
Memory Management Unit (mmu) adalah chip atau kumpulan chip yang memetakan
virtual address ke real address.
Pada komputer tanpa
memori virtual, alamat langsung diletakkan ke bus dan menyebabkan word memori
fisik alamat itu dibaca atau ditulis.
Pada komputer dengan
memori virtual, alamat tidak diletakkan ke bus secara langsung tapi lewat MMU
yang kemudian memetakan virtual address ke alamat memori fisik.
Demand
Paging halaman adalah salah
satu implementasi dari memori virtual yang paling umum digunakan. Sistem Demand
Paging pada prinsipnya hampir sama dengan sistem permintaan halaman yang
menggunakan swapping, hanya saja pada sistem demand paging, halaman tidak akan
dibawa ke dalam memori fisik sampai ia benar-benar diperlukan. Oleh sebab itu
dibutuhkan bantuan perangkat keras untuk mengetahui lokasi dari halaman saat ia
diperlukan. Daripada melakukan swapping, keseluruhan proses ke dalam memori
utama, digunakanlah yang disebut lazy swapper yaitu tidak pernah menukar sebuah
halaman ke dalam memori utama kecuali halaman tersebut diperlukan.
Demand paging
memberikan efek yang
signifikan dalam kinerja
sistem computer. Diasumsikan ma
adalah access time ke memori dan p adalah probabilitas terjadi page fault (0 ≤
p ≤ 1), maka effective access time didefinisikan sebagai :
EAT = (1-p) x ma + p x page_fault-time
Untuk menghitung effective access time, harus
diketahui berapa waktu yang diperlukan untuk melayani page
fault. Page fault menyebabkan terjadi
1. Trap
ke sistem operasi.
2.
Menyimpan register dan status proses.
3.
Menentukan interrupt adalah page fau.t
4.
Memeriksa page acuan legal atau tidak dan menentukan lokasi page pada
disk.
5. Membaca
dari disk ke frame bebas :
a. Menunggu
di antrian untuk perangkat sampai permintaan membaca dilayani.
b.
Menunggu perangkat mencari dan / atau waktu latency.
c.
Memulai transfer dari page ke frame bebas.
6.
Sementara menunggu, alokasikan CPU untuk user lain.
7.
Interrupt dari disk (melengkapi I/O).
8.
Menyimpan register dan status process user lain.
9. Menentukan
interrupt dari disk.
10. Memperbaiki tabel page dan tabel lain
untuk menunjukkan page yang dimaksud sudah di memori.
11. Menunggu CPU dialokasikan untuk proses ini
kembali.
12. Menyimpan
kembali register, status
proses dan tabel
page baru, kemudian melanjutkan kembali instruksi yang
di-interupsi.
v 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.
Langkah-langkah untukpage fault yang memerlukan
page replacement seperti
Gambar 8-6 adalah 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
menyeleksiframe
yang akan menjadi korban.
• Simpan page korban ke disk, ubah tabel page.
3. Baca page yang diinginkan ke frame kosong yang baru, ubah tabel page.
4. Mulai kembali proses user.
Algoritma Page Replacement
v ALOKASI FRAME
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 framebebas.
- Jumlah minimum frame per proses ditentukan oleh
arsitektur dimana jumlah maksimum tergantung jumlah memori fisik yang
tersedia.
- Jumlah minimim frame ditentukan oleh arsitektur
instruction-set.
Bila terjadi page fault sebelum
eksekusi instruksi selesai, instruksi harus di-restart. Sehingga tersedia frame
yang cukup untuk membawa semuapage yang berbeda dimana sembarang instruksi
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 sisa digunakan program user. Bila suatu
program menyebabkan page fault sebanyak 93 kali, maka menempati 93 frame bebas
tersebut. Jika terjadi page fault 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. Jika
ukuran virtual memori untuk proses pi adalah si dan total jumlah frame yang
tersedia m, maka frame ke ai dapat
dialokasikan ke proses pi sama dengan :
Si =
besarnya proses Pi
S =
Si
m =
jumlah total bingkai
ai =
alokasi bingkai untuk Pi ((Si/S ) x m)
m =
64
S1 =
10
S2 =
127
a1 =
(10/137) x 64 = 5 bingkai
a2 =
(127/137) x 64 = 59 bingkai
Selain
itu terdapat algoritma alokasi berprioritas yang menggunakan skemaproporsional
dengan lebih melihat prioritas proses dari pada ukuran proses. Jika proses Pi
membangkitkan page fault, dipilih satu dariframe-frame dari proses yang mempunyai
nomor prioritas terendah.
Global replacement
mengijinkan
suatu proses untuk menyeleksi suatu frame yang akan dipindah
dari sejumlah frame, meskipun frame tersebut sedang dialokasikan ke proses yang
lain. Pada Local Replacement, jumlah frame yang dialokasikan untuk proses tidak
berubah. Setiap proses dapat memilih dari frame-frameyang dialokasikan
untuknya. Permasalahan pada global replacement adalah proses tidak dapat mengontrol
rata-rata page fault. Sejumlah page pada memori untuk sebuah proses tidak hanya
tergantung pada perilaku paging untuk proses tersebut, tetapi juga perilaku
paging untuk proses yang lain. Bagaimanapun, karena algoritma global
replacement menghasilkan through put yang lebih besar, metode ini sering
digunakan.