Anda di halaman 1dari 10

Kelompok 9

Doni Afriat 1611500172


Dwi Sofyan R. 1611500297
Hibatullah 1611501930
M. Faisal 1611501691
Rangga Aditya 1611502293
VIRTUAL MEMORY

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 Memory


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.
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:

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.
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 :
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. Page yang masuk terlebih dahulu maka page tersebut akan keluar duluan
juga. Untuk algoritma ini menggunakan structure data stack. Jadi cara kerjanya yaitu dimana
ketika tidak ada frame yang kosong saat terjadi page fault maka korban yang dipilih adalah
frame dengan stack paling bawah seperti hal nya halaman yang sudah lama tersimpan
didalam memory maka dari itu algoritma ini juga bisa memindahkan page yang sering
digunakan

.
Gambar. Contoh Page Replacement FIFO

Dulu algoritma ini di anggap cukup mengatasi pergantian page sampai pada tahun 70-
an, pada saat itu juga Belady menemukan keganjalan pada algoritma ini dan dikenal dengan
anomali Belady. Anomali Belady itu sendiri ialah keadaan dimana page fault rate meningkat
seiring dengan pertambahannya jumlah frame.
Gambar. Contoh Anomali Belady pada Algoritma 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. Pengertian dari algoritma ini
sendiri yaitu algoritma yang page nya paling optimal. Untuk prinsip dari algoritma ini sangat
efisien sekali karena hanya mengganti halaman yang sudah tidak terpakai lagi dalam jangka
waktu lama sehingga page fault yang terjadi akan berkurang dan terbebas dari anomali
Belady Selain itu juga page fault dari algoritma ini memiliki rate paling tinggi dari algoritma
lainnya dari semua kasus, akan tetapi belum bisa disebut sempurna karena sulit untuk
dimengerti dan dari segi sistem pun belum tentu bisa mengetahui page untuk berikutnya
tetapi dapat disimulasikan hanya untuk suatu program. Untuk intinya gunakanlah hingga
mendekati page optimal agar bisa memanfaatkannya.

Gambar. Contoh Algoritma Optimal

 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. Dikarenakan algoritma optimal sangat sulit dalam pengimplementasiannya, maka
dibuatlah algoritma lain yang performance-nya mendekati algoritma optimal dengan sedikit
cost yang lebih besar. Sama seperti algoritma optimal, algoritma LRU tidak mengalami
anomali Belady. Algoritma ini memakai linked list untuk mendata halaman mana yang paling
lama tidak terpakai. Linked list inilah yang membuat cost membesar, karena harus meng-
update linked list tiap saat ada halaman yang di akses.

Gambar. Contoh Algoritma LRU

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.

Sumber :

http://ikaapriliani-education.blogspot.com/2015/11/arsitektur-komputer-bab-v.html

http://bugspin.blogspot.com/2012/07/macam-macam-algoritma-page-replacement.html

Anda mungkin juga menyukai