BAB V
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 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 framesMapping (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 :

ü  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

Calender

Powered by Icaha Sasuke

Popular Posts

Diberdayakan oleh Blogger.