Memori virtual adalah
teknik manajemen memori yang dikembangkan
untuk kernel multitugas. Teknik ini divirtualisasikandalam berbagai bentuk arsitektur
komputer dari komputer penyimpanan data (seperti memori akses acak dan cakram penyimpanan), yang memungkinkan
sebuah program harus
dirancang seolah-olah hanya ada satu jenis memori, memori "virtual",
yang bertindak secara langsung beralamat memori baca/tulis (RAM).
Sebagian besar sistem
operasi modern yang mendukung memori virtual juga menjalankan setiap proses di ruang alamat khususnya sendiri. Setiap
program dengan demikian tampaknya memiliki akses tunggal ke memori virtual.
Namun, beberapa sistem operasi yang lebih tua (seperti OS/VS1 danOS/VS2 SVS) dan bahkan yang modern yang
(seperti IBM i) adalah sistem operasi ruang alamat tunggal yang
menjalankan semua proses dalam ruang alamat tunggal yang terdiri dari memori
virtual.
Memori virtual
membuat pemrograman aplikasi lebih mudah oleh fragmentasi persembunyian
dari memori fisik; dengan mendelegasikan ke kernel beban dari mengelola
hierarki memori (sehingga menghilangkan keharusan untuk program dalam
mengatasi hamparan secara eksplisit); dan,
bila setiap proses berjalan dalam ruang alamat khususnya sendiri, dengan
menghindarkan kebutuhan untuk merelokasi kode
program atau untuk mengakses memori dengan pengalamatan relatif.
Virtualisasi memori adalah generalisasi
dari konsep memori virtual.
Memori virtual (dalam
bahasa Inggris: virtual memory) adalah sebuah mekanisme yang digunakan oleh
aplikasi untuk menggunakan sebagian dari hierarki memori seolah-olah ia
menggunakannya sebagai RAM wujud yang terpasang di dalam sebuah sistem.
Mekanisme ini beroperasi dengan cara memindahkan beberapa kode yang tidak
dibutuhkan ke sebuah berkas di dalam kandar keras (hard drive) yang disebut
dengan berkas tukar, berkas halaman atau tukar petak. - Selengkapnya
Jadi, Virtual Memori
adalah suatu sistem yang digunakan oleh sistem operasi untuk menggunakan
sebagian dari memori sekunder (Harddisk). Seolah-olah sistem tersebut
menggunakan memori internal / primary (RAM) fisik yang terpasang pada sebuah
sistem komputer. Cara kerja sistem ini beroperasi dengan cara memindahkan
beberapa kode yang tidak dibutuhkan ke sebuah berkas pada Hard Drive yang biasa
disebut dengan Page File. Proses pemakaian virtual memori pada windows umumnya
dapat dilihat di Task Manager.
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.
Beberapa sistem
operasi memerlukan yang namanya virtual memory. Layaknya Linux yang membutuhkan
swap, microsoft windows vista ataupun XP pun membutuhkan yang namanya virtual
memory. Pengertian dari Virtual memory itu sendiri yakni memori sementara yang
digunakan komputer untuk menjalankan berbagai program aplikasi ataupun
menyimpan data yang membutuhkan memory yang lebih besar dari memory yang telah
tersedia ( Memory fisik seperti RAM, baca disini untuk lebih lengkap ). Program
ataupun data yang tidak muat dimasukan pada memory asli ( RAM ), akan disimpan
ke dalam sebuah Pagging File. Pengertian Pagging fileialah data yang
hanya disimpan sementara atau bisa disebut swap. Pada sistem operasi linux kita
diharuskan untuk membuat dua partisi utama yaitu untuk system dan untuk swap.
Virtual Memory ini Berbeda halnya dengan Memory fisik seperti RAM, karena ram
merupakan komponen yang termasuk kedalam golongan hardware. Walapun dalam
kenyatannya Virtual Memory ini disimpan di harddisk, tetapi kerjannya itu tidak
tampak, artinya berjalan secara software namun disimpan dihardware. Data yang
disimpan ini tidak dapat bertahan lama, dalam artian hanya saat di gunakan
saja. Dan bila komputer dimatikan, data data yang tadinya ada di virtual memory
akan hilang. Jadi Fungsi Virtual Memoryialah untuk mengoptimalkan kinerja
dari komputer, dengan tambahan memory, maka kemungkinan terjadi crash sangat
kecil sekali. Ukuran dari paging file biasanya berbeda - beda, kalau ukuran
paging file linuxialah 2 kali lipat dari memory aslinya. Misalkan kita memakai
memory berkapasitas 512 MB, maka ukuran paging filenya yaitu 1 GB. Walaupun
tidak harus 2 GB, tapi untuk memaksimalkan kinerja maka sebaiknya 2 kali
lipatnya. Dan untuk Ukuran Paging file Di windows XP dan Vista Yaitu
1,5 kali dari kapasitas aslinya.
Setiap page diberi label untuk menandai berapa
intruksi lagi baru dia gunakan. Page dengan label tertinggi (waktu dari
sekarang sampai pemakaian berikutnya paling lama) yang akan dikeluarkan.
- Algoritma Penggantian Page NRU (Not-Recently Used) Setiap page diberi status bit R (referenced) dan M (modified). Bit bernilai 0 jika page belum direferensi/dimodifikasi, dan 1 jika sebaliknya. Dari nilai desimalnya didapat 4 kelas Intinya algoritma ini mudah dipahami dan dikembangkan karena sangat efisien walaupun tak banyak langkah dalam pemilihan page dan kelemahannya juga tidak optimal tapi dalam kondisi normal yang memadai.
- Algoritma Penggantian Page FIFO (First In First Out) Inti dari algoritma ini adalah simple / paling sederhana karena prinsipnya sama seperti prinsip antrian tak berprioritas. Page yang masuk terlebih dahulu maka yaitu yang akan keluar duluan juga. Untuk algoritma ini menggunakan structure data stack. Jadi kerjanya yaitu dimana kalau 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. Utamanya 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.
- Algoritma Penggantian Page Modifikasi FIFO Algoritma FIFO murni jarang digunakan, tetapi dikombinasikan (modifikasi). Kelemahan FIFO yang jelas adalah algoritma dapat memilih memindahkan page yang sering digunakan yang lama berada di memori. Kemungkinan ini dapat dihindari dengan hanya memindahkan page tidak diacu Page ditambah bit R mencatat apakah page diacu atau tidak. Bit R bernilai 1 bila diacu dan bernilai 0 bila tidak diacu. Variasi dari FIFO antara lain: - Algoritma penggantian page kesempatan kedua (second chance page replacement algorithm) -Algoritma penggantian clock page (clock page replacement algorithm) Algoritma yang pertama adalah algoritma second chance. Algoritma second chance berdasarkan pada algoritma FIFO yang disempurnakan. Algoritma ini menggunakan tambahan berupa reference bit yang nilainya 0 atau 1. Jika dalam FIFO menggunakan stack , maka second chance menggunakan circular queue . Halaman yang baru di-load atau baru digunakan akan diberikan nilai 1 pada reference bit-nya. Halaman yang reference bit-nya bernilai 1 tidak akan langsung diganti walaupun dia berada di antrian paling bawah (berbeda dengan FIFO). Urutan langkah kerja algoritma second chance adalah sebagai berikut: - Apabila terjadi page fault dan tidak ada frame yang kosong, maka akan dilakukan razia (pencarian korban) halaman yang reference bit-nya bernilai 0 dimulai dari bawah antrian (seperti FIFO). - Setiap halaman yang tidak di- swap (karena reference bit-nya bernilai 1), setiap dilewati saat razia reference bit-nya akan diset menjadi 0.
- Algoritma Penggantian Page LRU (Least Recently Used) Dikarenakan algoritma optimal sangat sulit dalam pengimplementasiannya, maka dibuatlah algoritma lain yang performance-nya mendekati algoritma optimal dengan sedikit cost yang lebih besar. ama 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
No comments:
Post a Comment