- 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
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 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.
- Unjuk 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.
- Membaca dari disk ke frame bebas :
- Menunggu di antrian untuk perangkat sampai permintaan membaca dilayani.
- Menunggu perangkat mencari dan / atau waktu latency.
- Memulai transfer dari page ke frame bebas.
- Sementara menunggu, alokasikan CPU untuk user lain.
- Interrupt dari disk (melengkapi I/O).
- Menyimpan register dan status process user lain.
- Menentukan interrupt dari disk.
- Memperbaiki tabel page dan tabel lain untuk menunjukkan pageyang dimaksud sudah di memori.
- Menunggu CPU dialokasikan untuk proses ini kembali.
- Menyimpan kembali register, status proses dan tabel page baru, kemudian melanjutkan kembali instruksi yang di-interupsi.
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.
- ALGORITMA PAGE REPLACEMENT
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.
- 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 pagedibawa ke memori.
Ilustrasi algoritma FIFO dapat dilihat pada Gambar
Meskipun algoritma FIFO mudah dipahami dan diimplementasikan, performansi
tidak selalu bagus karena algoritma FIFO menyebabkan Belady's anomaly. Belady's
anomaly mematahkan fakta bahwa untuk beberapa algoritma page replacement, bila
rata-rata page fault meningkat, akan meningkatkan jumlah alokasiframe. Sebagai
contoh, jika menggunakan string acuan :
1, 2, 3, 4, 1, 2, 5, 1, 2, 5, 1, 2, 3, 4, 5
- Algoritma Optimal
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. Ilustrasi dari algoritma optimal dapat dilihat pada Gambar
- Algoritma Least Recently Use (LRU)
Prinsip dari algoritma LRU adalah mengganti page yang sudah tidak digunakan untuk
periode waktu terlama. Untuk mengimplementasikan algoritma LRU, digunakan dua model yaitu :
• Counter : setiap entry tabel pagee diasosiasikan dengan sebuah "time-of-use" dan
sebuah clock logika atau counter ditambahkan ke CPU. Clock ini dinaikkan untuk
setiap acuan ke memori. Jika sebuah acuan ke page dibuat, isi clock register dicopy
ke time-of-use pada tabel page untuk page tersebut.
• Stack : stack dari nomor page diatur. Jika sebuah page digunakan acuan, maka
page dihapus dari stack dan meletakkan pada top of stack. Dengan cara ini, stack
selalu digunakan page dan bagian bawah untuk page LRU. Implementasi stack
untuk algoritma LRU diilustrasikan pada Gambar
- ALOKASI FRAME
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 Pengalokasi yaitu equal allocation
dan proportional allocation. Pada equal allocation, jika terdapatm frame dan n proses, maka setiap
proses dialokasikan sejumlah frame yang sama (m/n frame). Padaproportional allocation setiap proses dialokasikan secara proporsional berdasarkan ukurannya. Jika ukuran virtual memori untuk proses piadalah si dan total jumlah frame yang tersedia m.
Selain itu terdapat algoritma alokasi berprioritas yang menggunakan skema
proporsional 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 akandipindah 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.
mengijinkan suatu proses untuk menyeleksi suatu frame yang akandipindah 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.
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.
- Thrashing
Misalnya sembarang proses tidak mempunyai frame yang cukup. Meskipun secara teknis dapat mengurangi jumlah frame yang dialokasikan sampai minimum, terdapat sejumlah page yang sedang aktif digunakan. Jika suatu proses tidak memiliki jumlah frame yang cukup, maka sering terjadi page fault. Sehingga harus mengganti beberapa page. Tetapi karena semua page sedang digunakan, harus mengganti page yang tidak digunakan lagi. Konsekuensinya, sering terjadi page fault lagi dan lagi. Proses berlanjut page fault, menggantipage untuk page fault dan seterusnya. Kegiatan aktifitas paging yang tinggi disebut thrashing. Sebuah proses mengalamithrashing jika menghabiskan lebih banyak waktu untuk paging daripada eksekusi. Efek thrashing dapat dibatasi dengan menggunakan algoritma local (priority) replacement. Grafik terjadinya proses thrashing pada sistem multiprogramming dapat dilihat pada Gambar
membuat virtual box dan pengertian nya
VirtualBox adalah perangkat lunak virtualisasi, yang dapat digunakan untuk mengeksekusi sistem operasi "tambahan" di dalam sistem operasi "utama". Sebagai contoh, jika seseorang mempunyaisistem operasi MS Windows yang terpasang di komputernya, maka seseorang tersebut dapat pula menjalankan sistem operasi lain yang diinginkan di dalam sistem operasi MS Windows.
Fungsi ini sangat penting jika seseorang ingin melakukan ujicoba dan simulasi instalasi suatu sistem tanpa harus kehilangan sistem yang ada. Aplikasi dengan fungsi sejenis VirtualBox lainnya adalah VMware dan Microsoft Virtual PC.
Kadangkala, ada suatu program tertentu yang ingin kita jalankan namun
terkendala dengan kompatibiltas Operating System (OS). Misalnya ada
aplikasi yang kita tahu dulu bisa berjalan di WinXP tapi kini setelah
dicoba lagi di Win7 tidak bisa dibuka (crash).
Atau bahkan bisa juga ada aplikasi khusus yang kita butuhkan untuk
pekerjaan, namun teryata aplikasi tersebut hanya bisa berjalan di
Windows sementara komputer kita berbasis Linux.
Tentu saja, kita bisa menggunakan sistem Dual Booting untuk menanam dua
OS dalam satu komputer. Tapi kadang cara ini kurang praktis karena
banyak yang harus dipersiapkan seperti misalnya mengatur partisi,
mengatur file, dll. Selain itu apabila suatu saat kita sudah tidak membutuhkan lagi OS yang kedua, maka proses uninstall-nya tidak mudah. Yang sering terjadi akhirnya malah format ulang, dan itu berarti atur partisi dan file lagi.
Sebenarnya, ada satu solusi yang praktis untuk hal ini, yaitu dengan
menggunakan VirtualBox. Dengan VirtualBox, Anda bisa seolah-olah membuat
komputer baru (virtual machine) dan meng-install-nya
dengan OS yang Anda inginkan (Guest OS). Lebih hebatnya lagi, Anda
bisa menjalankan keduanya dalam waktu yang bersamaan; berpindah dari
Guest ke Host dan sebaliknya dengan mudah. Jika sudah tidak membutuhkan
lagi, Anda tinggal menghapus saja (remove) virtual machine tersebut tanpa proses yang rumit.
Nah, di artikel ini saya akan menjelaskan mengenai cara membuat virtual machine menggunakan
VirtualBox. Karena banyak hal yang harus dijelaskan, untuk kemudahan,
maka saya membaginya dalam beberapa section yaitu: Download & Installl Virtual Box, Setup Virtual Machine & Guest OS, dan terakhir adalah Setting. Di contoh ini, saya akan meng-install WinXP di virtual machine yang
akan dibuat. Adapun VirtualBox-nya sendiri saya jalankan di sistem
operasi Win7. Jadi, Guest OS = WinXP dan Host OS = Win7. Berikut
langkah-langkahnya:
DOWNLOAD & INSTALL VIRTUALBOX
- Pertama download dulu installer-nya di sini. Pilih sesuai dengan tipe OS yang Anda gunakan.
- Setelah itu jalankan file installer-nya. Klik Next> pada saat VirtualBox Setup Wizard muncul.
- Selanjutnya Anda bisa memilih lokasi instalasinya. Klik Next> untuk melanjutkan.
- Pilih di mana saja Anda ingin shortcut dibuat, lalu klik Next>.
- Biasanya akan muncul peringatan bahwa koneksi ke jaringan akan diputus sementara pada selama proses instalasi. Klik saja Next>.
- Klik Install untuk memulai proses instalasi.
- Jika UAC muncul, klik saja Yes.
- Sampai disini Anda sudah berhasil meng-install VirtualBox. Klik Finish untuk menjalankan program VirtualBox.
SETUP VIRTUAL MACHINE & GUEST OS
- Selanjutnya yang perlu dilakukan adalah membuat virtual machine-nya. Klik New di VirtualBox Manager untuk memulai.
- Anda akan disambut oleh New Virtual Machine Wizard. Klik Next untuk melanjutkan.
- Di sini Anda akan memilih jenis OS apa yang akan Anda install sebagai Guest OS. Dalam contoh ini kita akan meng-install WinXP. Klik Next jika sudah selesai memilih jenis OS.
- Anda bisa menentukan berapa besar memory (RAM) untuk virtual machine ini nantinya. Geser slider ke angka yang inginkan, lalu klik Next.
- Untuk pertama kali, pastikan Anda men-centang/contreng Boot Hard Disk dan juga memilih Create new hard disk, seperti ilustrasi di bawah ini. Jika sudah, klik Next.
- Selanjutnya Anda akan masuk ke Create New Virtual Disk Wizard. Klik Next untuk melanjutkan.
- Anda bisa memilih apakah ukuran virtual hard disk ini nantinya besarnya bisa berubah atau selalu tetap. Untuk penghematan sebaiknya Anda memilih yang Dynamically expanding storage. Klik Next jika sudah memilih.
- Di sini Anda bisa memilih lokasi dimana virtual hard disk ini akan dibuat, sekaligus juga menentukan ukuran maksimal hard disk (hard disk maximum size). VirtualBox secara default menyarankan ukuran sebesar 10 G. Namun Anda juga bisa men-set lebih kecil selama Anda yakin bahwa ukuran tersebut sudah cukup untuk kebutuhan Anda nantinya. Klik Next.
- Ini adalah Summary dari proses Create New Virtual Disk Wizard. Klik Finish.
- Ini adalah Summary dari proses pembuatan New Virtual Machine. Klik Finish.
- Terlihat bahwa Anda sudah mempunyai satu virtual machine bernama WinXP, walaupun isinya masih kosong. Nah tugas selanjutnya adalah mengisi virtual machine ini dengan Guest OS. Dobel-klik pada entry WinXP tersebut untuk memulai.
- Anda akan disambut oleh First Run Wizard. Klik saja Next.
- Di sini Anda akan memilih media yang akan Anda gunakan sebagai sumber instalasi. Dalam contoh ini saya menggunakan CD WinXP (bootable tentunya), yang saya masukkan ke Drive E (DVD ROM). Jika sudah, klik Next.
- Ini adalah Summary dari First Run Wizard. Ada baiknya disini Anda sudah menyiapkan installer-nya ke Drive yang Anda pilih sebelumnya. Klik Finish untuk memulai proses instalasi.
- Tampilan instalasi WinXP pun akan mulai keluar. Tekan Enter untuk melanjutkan.
- Pilih Format the partition using the NTFS file system, lalu tekan Enter.
- Silahkan tunggu sampai proses instalasi WinXP selesai.
- Selamat, Anda kini sudah mempunyai Guest OS WinXP di virtual machine Anda! Sebelum Anda mulai “bermain-main” dengan virtual machine baru ini ada baiknya dilakukan beberapa perubahan setting dulu supaya Anda semakin nyaman dalam menggunakannya nanti. Beberapa setting mengharuskan virtual machine dalam keadaan non-aktif, beberapa hanya bisa dilakukan dalam Guest OS Safe Mode. Karenanya untuk sekarang shutdown dulu Guest OS Anda.
SETTING
- Kali ini akan dibahas mengenai beberapa setting-an penting supaya Anda semakin nyaman dalam menggunakan virtual machine Anda. Pastikan virtual machine Anda dalam keadaan mati (powered off), setelah itu dobel-klik untuk menghidupkan dan bersiaplah menekan F8 karena kita akan masuk ke Safe Mode.
- Pilih Safe Mode, lalu tekan Enter.
- Tekan Enter sekali lagi ketika masuk ke tampilan seperti di bawah ini.
- Setelah masuk Safe Mode, klik Yes untuk menutup window pemberitahuan tersebut.
- Pada menu VirtualBox, pilih Devices -> Install Guest Additions…
- Akan muncul Windows Explorer. Dobel-klik VBoxWindowsAdditions.
- Anda akan disambut oleh VirtualBox Guest Additions Setup Wizard. Klik Next> untuk melanjutkan.
- Pilih lokasi instalasi, lalu klik Next>.
- Jika Anda berencana menjalankan aplikasi di Guest OS yang membutuhkan Direct3D (games misalnya), maka pastikan Direct3d Support dipilih. Jika sudah klik Install.
- Proses instalasi Guest Additions pun selesai. Klik OK.
- Klik Finish untuk restart dan masuk ke WinXP secara normal.
- Selanjutnya kita akan membuat Shared Folders. Kegunaannya adalah sebagai tempat untuk bertukar (transfer) file antara Guest dan Host. Caranya adalah pilih Devices -> Shared Folders…
- Klik tombol Add di sebelah kanan atas window.
- Pada Folder Path, pilih Other…
- Tentukan folder mana yang akan Anda shared.
- Selanjutnya pilih Auto-mount supaya folder tersebut langsung di-shared secara otomatis saat startup.
- Rekapnya akan terlihat di sini. Anda juga bisa membuat lebih dari satu Shared Folders jika Anda mau. Klik OK untuk mengakhiri.
- Shared Folders ini baru akan mulai bisa digunakan jika Anda sudah melakukan restart. Namun untuk sekarang shutdown dulu Guest OS Anda karena kita akan melakukan perubahan setting terakhir melalui VirtualBox Manager.
- Klik Settings pada menu VirtualBox Manager.
- Pilih tab System di sebelah kiri. Nah di sini Anda bisa melakukan pengaturan memory (RAM) dan juga Boot Order. Supaya booting cepat, pilih Hard Disk sebagai Boot Order prioritas pertama.
- Pilih tab Display dan Anda bisa merubah besarnya Video Memory (VGA Card) dan juga mengaktifkan fitur Enable 3D Acceleration. Klik OK jika sudah.
- Selanjutnya jalankan lagi virtual machine tersebut. Setelah masuk Windows, coba jalankan Explorer. Terlihat bahwa Shared Folders kini sudah bisa diakses.
- Aplikasi yang tidak bisa dibuka di Win7 pun kini bisa dijalankan.
Demikianlah penjelasan tentang langkah-langkah teknis untuk membuat virtual machine beserta
instalasi Guest OS-nya dengan menggunakan VirtualBox. Dengan cara ini,
kita seolah mempunyai “komputer baru” yang siap dijalankan. Dalam dunia
IT, banyak manfaat yang bisa diperoleh dengan menggunakan VirtualBox
ini. Seorang Java Programmer yang hendak membuat aplikasi multi-platform, bisa menggunakan VirtualBox ini untuk menguji programnya di berbagai OS (Windows, Mac, Linux, FreeBSD, dll).
Atau seseorang yang sedang belajar untuk menjadi hacker, biasanya juga akan membuat virtual machine untuk menguji keampuhan script ataupun virus buatannya,
tanpa harus khawatir OS utama yang sedang digunakannya juga ikut
terinfeksi. Anda pun bisa bereksperimen dengan VirtualBox ini sesuai
dengan kebutuhan Anda. Selamat mencoba!