Memori Virtual
Selama bertahun-tahun, pelaksanaan berbagai strategi managemen memori yang ada menuntut keseluruhan bagian proses berada di memori sebelum proses dapat mulai dieksekusi. Dengan kata lain, semua bagian proses harus memiliki alokasi sendiri pada memori fisiknya.
Pada nyatanya tidak semua bagian dari program tersebut akan diproses, misalnya:
-
Terdapat pernyataan-pernyataan atau pilihan yang hanya akan dieksekusi jika
kondisi tertentu dipenuhi. Apabila kondisi tersebut tidak dipenuhi, maka pilihan
tersebut tak akan pernah dieksekusi/ diproses. Contoh dari pilihan itu adalah:
pesan-pesan error yang hanya akan muncul bila terjadi kesalahan dalam eksekusi
program.
-
Terdapat fungsi-fungsi yang jarang digunakan, bahkan sampai lebih dari 100x
pemakaian.
- Terdapat pealokasian memori lebih besar dari yang sebenarnya dibutuhkan. Contoh pada: array, list, dan tabel.
Hal-hal di atas telah menurunkan optimalitasi utilitas dari ruang memori fisik. Pada memori berkapasitas besar, hal ini mungkin tidak menjadi masalah. Akan tetapi, bagaimana jika memori yang disediakan terbatas?
Salah satu cara untuk mengatasinya adalah dengan overlay dan dynamic loading . Namun hal ini menimbulkan masalah baru karena implementasinya yang rumit dan penulisan program yang akan memakan tempat di memori. Tujuan semula untuk menghemat memori bisa jadi malah tidak tercapai apabila program untuk overlay dan dynamic loading . malah lebih besar daripada program yang sebenarnya ingin dieksekusi.
Maka sebagai solusi untuk masalah-masalah ini digunakanlah konsep memori virtual.
Pengertian
Memori virtual merupakan suatu teknik yang memisahkan antara memori logis dan memori fisiknya. Teknik ini mengizinkan program untuk dieksekusi tanpa seluruh bagian program perlu ikut masuk ke dalam memori.Berbeda dengan keterbatasan yang dimiliki oleh memori fisik, memori virtual dapat menampung program dalam skala besar, melebihi daya tampung dari memori utama yang tersedia.
Prinsip dari memori virtual yang patut diingat adalah bahwa: "Kecepatan maksimum eksekusi proses di memori virtual dapat sama, tetapi tidak pernah melampaui kecepatan eksekusi proses yang sama di sistem tanpa menggunakan memori virtual."
Konsep memori virtual pertama kali dikemukakan Fotheringham pada tahun 1961 pada sistem komputer Atlas di Universitas Manchester, Inggris (Hariyanto, Bambang : 2001).
Keuntungan
Sebagaimana dikatakan di atas bahwa hanya sebagian dari program yang diletakkan di memori. Hal ini berakibat pada:-
Berkurangnya I/O yang dibutuhkan (lalu lintas I/O menjadi rendah). Misal,
untuk program butuh membaca dari disk dan memasukkan dalam memory setiap kali
diakses.
-
Berkurangnya memori yang dibutuhkan (space menjadi
lebih leluasa). Contoh, untuk program 10 MB tidak seluruh bagian dimasukkan
dalam memori. Pesan-pesan error hanya dimasukkan jika
terjadi error.
-
Meningkatnya respon, sebagai konsekuensi dari menurunnya beban I/O dan
memori.
- Bertambahnya jumlah user yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan komputer untuk menerima lebih banyak permintaan data
Implementasi
Gagasan dari memori virtual adalah ukuran gabungan program, data dan stack melampaui jumlah memori fisik yang tersedia.
Sistem operasi menyimpan bagian-bagian proses yang sedang digunakan di memori
utama (main memory) dan sisanya ditaruh di disk.
Begitu bagian di disk diperlukan, maka bagian di memori yang tidak diperlukan
akan disingkirkan (swap-out) dan diganti (swap-in) oleh bagian disk yang diperlukan itu.
Memori virtual diimplementasikan dalam sistem multiprogramming. Misalnya: 10 program dengan ukuran 2
Mb dapat berjalan di memori berkapasitas 4 Mb. Tiap program dialokasikan 256
KByte dan bagian-bagian proses di-swap masuk dan
keluar memori begitu diperlukan. Dengan demikian, sistem multiprogramming menjadi lebih efisien.
Memori virtual dapat dilakukan melalui dua cara:
-
Permintaan pemberian halaman (demand paging).
- Permintaan segmentasi (demand segmentation). Contoh: IBM OS/2. Algoritma dari permintaan segmentasi lebih kompleks, karenanya jarang diimplementasikan
Pengertian Virtual memory
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 file ialah 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 linux ialah 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. Misalkan kita menggunakan memory
sebesar 1 GB, maka paging filenya sebesar 1,5 GB. Dalam Xp maupun Vista paging
file ini dinamai dengan pagefile.sys bila
anda ingin mencarinya, pasti tidak akan ketemu, karena file ini disembunyikan
atau hidden files.
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 file ialah 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
linux ialah 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. Misalkan kita
menggunakan memory sebesar 1 GB, maka paging filenya sebesar 1,5 GB. Dalam Xp
maupun Vista paging file ini dinamai dengan pagefile.sys bila anda ingin mencarinya, pasti
tidak akan ketemu, karena file ini disembunyikan atau hidden files.
Memori Virtual
Selama bertahun-tahun, pelaksanaan berbagai strategi managemen memori yang ada menuntut keseluruhan bagian proses berada di memori sebelum proses dapat mulai dieksekusi. Dengan kata lain, semua bagian proses harus memiliki alokasi sendiri pada memori fisiknya.Pada nyatanya tidak semua bagian dari program tersebut akan diproses, misalnya:
- Terdapat pernyataan-pernyataan atau pilihan yang hanya akan dieksekusi jika
kondisi tertentu dipenuhi. Apabila kondisi tersebut tidak dipenuhi, maka pilihan
tersebut tak akan pernah dieksekusi/ diproses. Contoh dari pilihan itu adalah:
pesan-pesan error yang hanya akan muncul bila terjadi kesalahan dalam eksekusi
program.
- Terdapat fungsi-fungsi yang jarang digunakan, bahkan sampai lebih dari 100x
pemakaian.
- Terdapat pealokasian memori lebih besar dari yang sebenarnya dibutuhkan. Contoh pada: array, list, dan tabel.
Hal-hal di atas telah menurunkan optimalitasi utilitas dari ruang memori fisik. Pada memori berkapasitas besar, hal ini mungkin tidak menjadi masalah. Akan tetapi, bagaimana jika memori yang disediakan terbatas?
Salah satu cara untuk mengatasinya adalah dengan overlay dan dynamic loading . Namun hal ini menimbulkan masalah baru karena implementasinya yang rumit dan penulisan program yang akan memakan tempat di memori. Tujuan semula untuk menghemat memori bisa jadi malah tidak tercapai apabila program untuk overlay dan dynamic loading . malah lebih besar daripada program yang sebenarnya ingin dieksekusi.
Maka sebagai solusi untuk masalah-masalah ini digunakanlah konsep memori virtual.
Pengertian
Memori virtual merupakan suatu teknik yang memisahkan antara memori logis dan memori fisiknya. Teknik ini mengizinkan program untuk dieksekusi tanpa seluruh bagian program perlu ikut masuk ke dalam memori.Berbeda dengan keterbatasan yang dimiliki oleh memori fisik, memori virtual dapat menampung program dalam skala besar, melebihi daya tampung dari memori utama yang tersedia.
Prinsip dari memori virtual yang patut diingat adalah bahwa: "Kecepatan maksimum eksekusi proses di memori virtual dapat sama, tetapi tidak pernah melampaui kecepatan eksekusi proses yang sama di sistem tanpa menggunakan memori virtual."
Konsep memori virtual pertama kali dikemukakan Fotheringham pada tahun 1961 pada sistem komputer Atlas di Universitas Manchester, Inggris (Hariyanto, Bambang : 2001).
Keuntungan
Sebagaimana dikatakan di atas bahwa hanya sebagian dari program yang diletakkan di memori. Hal ini berakibat pada:- Berkurangnya I/O yang dibutuhkan (lalu lintas I/O menjadi rendah). Misal,
untuk program butuh membaca dari disk dan memasukkan dalam memory setiap kali
diakses.
- Berkurangnya memori yang dibutuhkan (space
menjadi lebih leluasa). Contoh, untuk program 10 MB tidak seluruh bagian
dimasukkan dalam memori. Pesan-pesan error hanya
dimasukkan jika terjadi error.
- Meningkatnya respon, sebagai konsekuensi dari menurunnya beban I/O dan
memori.
- Bertambahnya jumlah user yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan komputer untuk menerima lebih banyak permintaan dari user.
Implementasi
Gagasan dari memori virtual adalah ukuran gabungan program, data dan stack melampaui jumlah memori fisik yang tersedia. Sistem operasi menyimpan bagian-bagian proses yang sedang digunakan di memori utama (main memory) dan sisanya ditaruh di disk. Begitu bagian di disk diperlukan, maka bagian di memori yang tidak diperlukan akan disingkirkan (swap-out) dan diganti (swap-in) oleh bagian disk yang diperlukan itu.Memori virtual diimplementasikan dalam sistem multiprogramming. Misalnya: 10 program dengan ukuran 2 Mb dapat berjalan di memori berkapasitas 4 Mb. Tiap program dialokasikan 256 KByte dan bagian-bagian proses di-swap masuk dan keluar memori begitu diperlukan. Dengan demikian, sistem multiprogramming menjadi lebih efisien.
Memori virtual dapat dilakukan melalui dua cara:
- Permintaan pemberian halaman (demand paging).
- Permintaan segmentasi (demand segmentation). Contoh: IBM OS/2. Algoritma dari permintaan segmentasi lebih kompleks, karenanya jarang diimplementasikan.
Apa
itu
Virtual Memori? Mungkin sebagian dari
pengguna Microsoft Windows sudah tidak asing lagi dengan istilah itu. Karena
sering sekali windows memberi peringatan kepada user tentang “Memory is low”,
ini terjadi karena komputer kekurangan memori untuk menjalankan sebuah
program. Hal ini sering terjadi pada saat komputer ingin menjalankan program
yang memerlukan sumber memori yang besar seperti Game,
mungkin banyak gamer sering sekali terganggu dengan masalah seperti
ini.
Sesuai
dengan namanya “Virtual Memori”
berarti :
- Memori : Ruang penyimpanan
- Virtual : Tiruan / tidak nyata.
Jadi
Virtual Memori adalah sebuah sistem yang
digunakan oleh sistem operasi untuk menggunakan sebagian dari Memori
Sekunder yaitu Harddisk seolah-olah ia menggunakannya sebagai memori
internal/utama (RAM) fisik yang terpasang di dalam sebuah sistem
komputer. Sistem ini beroperasi dengan cara memindahkan beberapa kode yang tidak
dibutuhkan ke sebuah berkas di dalam hard drive yang disebut denganpage
file.
Proses pemakaian Virtual memori di
windows umumnya dapat dilihat di Task manager, seperti gambar di bawah
ini.
Dalam
sistem operasi berbasis Windows NT, terdapat sebuah komponen yang mengatur memori
virtual yaitu Virtual
Memory Manager (VMM) yang memiliki fungsi untuk dapat memetakan
alamat-alamat virtual yang dimiliki oleh sebuah
proses yang berjalan ke dalam page memori fisik di dalam komputer.
Dengan cara ini maka setiap proses dapat memperoleh memori
virtual yang cukup agar dapat
berjalan dan tidak mengganggu memori yang sedang digunakan oleh
proses lainnya. VMM menangani paging antara RAM dan page file agar setiap
aplikasi 32-bit dapat mengakses memori hingga 4 Gigabyte, meskipun
Windows hanya membatasinya pada kisaran 2 Gigabyte.
Jadi,
untuk komputer yang mempunyai memori / RAM kecil ada baiknya
memperbesar virtual memori
agar tetap dapat menjalankan aplikasi yang membutuhkan memori
yang besar terutama untuk game.
Berikut
adalah langkah-langkah untuk memperbesar virtual memori di
Windows XP (Experience) :
- click tombil start.
- Pilih / masuk ke control panel.
- Click pilihan System.
- Maka muncul window “System properties”. Dan pilih tab Advanced
- click tombol Setting pada frame Performance.
- Maka muncul window “Performance Option”. Dan pilih tab Advanced
- kemudian click tombol Change pada frame Virtual Memory.
- Maka akan muncul gambar dibawah ini.
9. Ubahlah nilai yang saya lingkari menjadi lebih besar dari nilai default/ nilai standar, minimal sesuai dengan nilai yang ada di gambar ini. Yaitu berkisar antara 1024 – 2048 Megabyte.
10. Click tombol Set dan OK.
11. Jika Windows anda memerlukan restart maka click tombil ok untuk me-restart komputer anda.
Sebenarnya konsep virtual memory ini juga berlaku untuk Sistem operasi lainnya seperti pada sistem operasi Linux, pada sistem operasi linux konsep virtual memory ini lebih dikenal dengan Swap memory yang telah dipartisi sebelumnya. Ini berlaku untuk semua distro linux seperti: redhat (fedora core), ubuntu/debian, mandriva/mandrake , suse dan lainnya. Tetapi dalam sistem operasi linux biasanya virtual memory telah di tetapkan sebelum proses instalasi-nya yaitu dalam bentuk partisi harddisk untuk swap memory.
- Konsep dasar memori virtual
yaitu instruksi yang akan dieksekusi harus berada di memori fisik. Pada beberapa
kasus, keseluruhan program tidak diperlukan. 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
- 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.
memori logika user dari memori fisik. 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. Gambaran memori virtual dapat dilihat pada Gambar
- Demand paging adalah sistem paging dengan swapping seperti pada ilustrasi gambar dibawah.
I/O lebih rendah, kebutuhan memori lebih rendah, responlebih cepat dan lebih banyak user yang menggunakan.
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
menyebabkan trap ke sistem operasi. Karena status (register, kode kondisi, counter
instruksi) dari proses ter-interrupt disimpan bila terjadi page fault, proses dapat dimulai lagi pada tempat dan status yang sama, kecuali page yang cocok sedang di memori dan sedang diakses. Prosedur untuk menangani page fault seperti Gambar sebagai berikut :
- Sistem operasi melihat tabel untuk menentukan jika acuan invalid maka proses dihentikan dan page sedang tidak berada di memori.
- Jika acuan invalid dilakukan trap ke sistem operasi.
- Sistem mencari frame kosong
- Sistem melakukan proses swapping ke frame bebas.
- Tabel page di-reset, bit valid-invalid diset 1 atau valid
- instruksi di-restart.
frame bebas makadilakukan page replacement
yaitu
mencari beberapapage di memori yang tidak digunakan kemudian dilakukan swap out
ke 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 denganswapping 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.
- Kerja DEMAND PAGING
Demand paging memberikan efek yang signifikan dalam kinerja sistem
computer. Diasumsikan ma adalah access time ke memori dan Padalah probabilitas terjadi page fault (0 ≤ p ≤ 1), maka effective access time didefinisikan sebagai :
EAT = (1-p) x ma + p x
page_fault-time
- Trap ke sistem operasi.
- Menyimpan register dan status proses.
- Menentukan interrupt adalah page fault
- Memeriksa page acuan legal atau
tidak dan menentukan lokasi page pada disk.
- Menunggu di antrian untuk perangkat sampai permintaan membaca dilayani.
- Menunggu perangkat mencari dan / atau waktu latency.
- Mulai transfer dari page ke frame bebas
Untuk Menghitung Effective Access Time
dari sistem demand paging perhatikan contoh berikut. Diasumsikan memory access 100 ns. Rata-rata waktu latency untuk hard disk adalah 8 ms, waktu pencarian 15 ms dan rata-rata transfer sebesar 1 ms. Total waktu paging ≈ 25 ms.
EAT = (1-p) x ma + p x page_fault-time
Effective access time =
(1-p) x (100) + p x (25 ms)
= (1-p) x 100 + p x
25000000
= 100 + 24999900
x p
kurang dari 10% maka
110 > 100 + 25000000 x p
10 > 250000000
x p
p <
0.0000004
proses secara drastis.
- PAGE REPLACEMENT
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
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 tabelpage.
4. Mulai kembali proses user
Tidak ada komentar:
Posting Komentar