Assalamualaikum
Wr Wb
2
Juli 2016
Pada
kali ini saya akan membahas tentang Virtual
Machine
Pengertian Virtual Machine:
Virtual Machine berasal dari bahasa
inggris yang berarti Mesin Maya . Virtual Machine sering disingkat menjadi (VM)
dalam ilmu komputer adalah implementasi perangkat lunak dari sebuah mesin
komputer yang dapat menjalankan program sama seperti layaknya sebuah komputer asli.
Selanjutnya
ini Definisinya (menurut Wikipedia)
Mesin
virtual pada mulanya didefinisikan oleh Gerard J. Popek dan Robert P. Goldberg
pada tahun 1974 sebagai sebuah duplikat
yang efisien dan terisolasi dari suatu mesin asli. Pada masa sekarang ini,
mesin-mesin virtual dapat mensimulasikan perangkat keras walaupun tidak ada
perangkat keras aslinya sama sekali.
Contohnya
adalah program yang ditulis dalam bahasa Java akan dilayani oleh Java Virtual
Machine (JVM) dengan cara memberikan perintah-perintah yang dimengerti JVM yang
selanjutnya akan memberikan hasil yang diharapkan. Dengan memberikan layanan
seperti ini kepada program tersebut, perangkat lunak JVM ini berlaku sebagai
sebuah "mesin virtual", sehingga program tidak lagi perlu untuk mengakses
langsung melalui sistem operasi ataupun perangkat keras yang sangat bervariasi
dan memerlukan pemrograman masing-masing secara spesifik.
Mesin
virtual terdiri dari dua kategori besar, dipisahkan menurut cara penggunaan dan
tingkat keterhubungannya dengan mesin-mesin aslinya. Sebuah mesin virtual sistem adalah perangkat
yang berupa platform sistem yang lengkap dan dapat menjalankan sebuah sistem
operasi yang lengkap. Sebaliknya, mesin
virtual proses didesain untuk menjalankan sebuah program komputer tertentu
(tunggal), yang berarti mesin virtual ini mendukung proses tertentu juga.
Karakteristik mendasar dari sebuah mesin virtual adalah batasan-batasan bagi
perangkat lunak yang berjalan di dalam mesin tersebut, sumber daya yang
dibatasi, dan tidak dapat mengakses ke luar tembok batasan dunia maya itu.
Mesin maya sistem
Virtual Machine Monitor
Virtual
machine monitor (VMM) atau hypervisor merupakan bagian dari perangkat lunak
yang membuat/mensimulasikan virtual machine. Hypervisor merupakan istilah
industri untuk menjelaskan tentang VMM. Abstraksi mesin yang dibuat oleh VMM
disebut virtual machine (VM).
VMM
membuat platform virtual sehingga sistem operasi dapat berjalan di atasnya. VMM
juga berperan sebagai manajer untuk menjalankan sistem operasi yang berjalan di
atasnya. VMM merupakan teknik yang berguna dalam menambah fungsionalitas
dibawah layer OS dan layer aplikasi. Sebagai manajer VM, VMM turut mengatur
eksekusi yang berjalan di sistem operasi yang disimulasikannya. Abstraksi VMM
disebut dengan virtual machine (VM). Perangkat keras yang di simulasikan dapat
di atur sehingga mempunyai spesifikasi yang identik dengan perangkat keras
dimana VMM diimplementasikan.VMM juga dapat meng-enkapsulasi suatu aplikasi
yang berjalan di atasnya sehingga memudahkan manajemen dan kontrol terhadap
sistem komputer.
Dengan
adanya VMM maka Virtual machine yang diimplementasikan pada sistem komputer
dapat membuat abstraksi dari layer yang ada di bawahnya sehingga dapat
membuat/mensimulasikan layer aplikasi dari suatu sistem komputer yang di
inginkan.
Jenis-jenis virtual machine
Terdapat
beberapa pendekatan dalam mengklarifikasi virtual machine, dan salah satunya
adalah mendefinisikannya menjadi 2 type (Type I dan type II). Klarifikasi ini
didasarkan oleh fakta bahwa kedua type virtual machine ini bekerja dengan lower
level platform yang mirip. Type I VMM tidak menggunakan host operating system,
sedangkan type II VMM menggunakan host operating system. Type II disebut juga
dengan paravirtual machine. Karena type II VMM menggunakan host operating sytem
maka kinerjanya lebih buruk dibandingkan type I VMM.
• Mesin maya proses
• Teknik
• Emulasi perangkat keras dasar
• Emulasi sistem
• Virtualisasi di tingkat sistem operasi
Type
II melakukan virtualisasi di tingkat sistem operasi. Type II membutuhkan host
operating system untuk melakukan virtualisasi. Ketika dilakukan inisiasi VM,
pertama-tama VMM membuat komponen hardware virtual yang memetakan abstraksi di
host OS. Kemudian terjadi degradasi performansi akibat bottlenect ketika
menjalankan VM. Bottlenect yang terjadi merupakan proses untuk menginisiasi VM.
Setelah itu maka VM akan berjalan di sistem komputer.
Terdapat
tiga bottleneck penyebab virtualization overhead. Pertama, struktur yang
memisahkan dua host procesess yang menyebabkan inordinate number dari context
switches di host. Kedua, perubahan antara guest kernel dan guest user yang
menghasilkan banyaknya operasi untuk melindungi memory (memory protection
operation). Ketiga, perubahan antara dua guest application process (atau lebih
dari dua) yang menghasilkan banyaknya operasi memory mapping.
Proses
inisiasi VM yang telah dijalankan oleh VMM mempunyai functional process untuk
melakukan hal-hal tersebut. VMMM functional process berada di host kernel.
Methode untuk melakukan intercept key events (system call and signals) di
eksekusi di host kernel. Hal ini menyebabkan VMM kernel module mempunyai
control yang baik terhadap guest machine process. Sebagai contoh kelebihannya,
modul kernel VMM dapat mengubah address guest machine process secara langsung.
Guest
machine process berubah secara periodik antara guest user mode dengan guest
kernel mode. Guest kernel harus dilibatkan untuk melakukan system call dan
exception yang dilakukan oleh guest application process dan mengolah data yang
dikirim oleh virtual I/O device. Setiap kali guest machine memproses
perpindahan dari guest kernel mode ke guest user mode maka address space guest
kernel [0x7000000, 0xc0000000] harus dilindungi dari akses yang tidak
diinginkan. Sebaliknya, setiap kali perpindahan antara guest machine memproses
perpindahan antara user mode ke guest kernel maka address space harus
disediakan. Guest machine process dapat melakukan address space manipulation
karena membuat host system calls mmap, munmap dan mprotect.
Perpindahan
address space antara guest application process Dilakukan di dalam proses
virtualisasi. Perpidahan address space milik guest harus mengubah mapping
antara guest virtual pages dan page di memory file physical tempat mesin
melakukan virtualisasi. Perubahan mapping dilakukan dengan memanggil munmap
untuk mengirim address space milik guest application process. Kemudian mmap
dipanggil setiap residen di virtual page untuk menerima guess application
process.
Daftar perangkat keras dengan dukungan mesin maya
- AMD-V (sebelumnya dengan kode nama Pacifica)
- ARM TrustZone
- Boston Circuits gCore (grid-on-chip) dengan 16 inti ARC 750D dan modul virtualisasi perangkat keras mesin-waktu.
- Freescale PowerPC MPC8572 dan MPC8641D
- Kerangka induk (mainframe) IBM System/370, System/390, dan zSeries
- Intel VT (sebelumnya dengan kode nama Vanderpool)
- Sun Microsystems sun4v (UltraSPARC T1 dan T2) -- digunakan oleh Logical Domains
- HP vPAR dan nPAR berbasis sel
- Sistem Honeywell Multics
- Sistem Liberator Honeywell 200/2000 menggantikan sistem IBM 14xx, Level 62/64/66 GCOS
- IBM System/360 Model 145, perangkat keras emulator untuk sstem Honeywell 200/2000
- RCA Spectra/70 Series mengemulasikan IBM System/360
- CPU NAS mengemulasikan mesin-mesin IBM and Amdahl
- Komputer mini Honeywell Level 6 mengemulasikan pendahulunya, minikomputer 316/516/716
- CPU Xerox Sigma 6 yang dimodifikasi untuk mengemulasikan sistem GE/Honeywell 600/6000Semoga bermanfaatWassalamualaikum Wr Wb