In this tutorial you are going to learn about Virtual Machine in Cloud Computing.
What are Virtual Machines?
Virtual machines are the logical or emulated representations of a full computing environment. It is implemented by adding layers of software to the real machines to support the desired VM architecture.
Uses of Virtual Machines:
- Multiples Operating Systems on one machine.
- Provides Isolation.
- Provides an Enhanced security for system.
- Live migration of servers.
- Virtual environment for testing and also for development.
- Platform emulation.
- On the fly optimization.
- Realizing ISA (Instruction Set Architecture) not found in physical machines.
There are two types of Virtual machines:
- Process Virtual Machine
- System Virtual Machine
Process Virtual Machine
Process Virtual Machines will allow a single process to run as an application on a host, it also provides a platform independent environment by masking the data/information of the underlying principles of the hardware or OS.
Example for Process Virtual Machines is the JVM (Java Virtual Machine).
- Visualizes the ABI (Application binary interface)
- Virtualization software = Runtime
- Runs in non-privileged mode (user space)
- Performs binary operations
- Terminates when guest process terminates.
Process in a multiprogramming OS:
- Standard OS system call interface and Instruction set
- Multiple processes, each with its own address space and virtual machine view
Emulators:
- Support one ISA on hardware designed for another ISA
- Interpreter
- Fetches, decodes and emulates individual instructions.
- Dynamic Binary translator
- Blocks of source instructions converted to target instructions
- Translated blocks catch to exploit locality
- Same ISA Binary Optimizers
- Optimizes code on the fly
- Same as emulates except source and target ISA’s are the same.
- High level language Virtual Machines
- Virtual ISA designed for the platform independence
- Platform dependent VM executes virtual ISA
- Eg: Sun’s JVM and Microsoft’s CLI (Part of .Net)
- Both are stack based VM’s that run on the register-based micro-controllers.
Hypervisor:
A hypervisor is an operating system for operating systems. It is also called as Virtual machines monitor (VMM).
- Provides a virtual executions environment for an entire OS and its application
- Controls access to hardware resources
- When guest OS executes a privilege instruction, Hypervisor intercepts the instruction, checks for corrections and also hypervisors emulates the given information/instructions.
System Virtual Machines
System Virtual Machine also known as Hardware virtual machine. This kind of machines mimics the whole(entire) computer. It is like a software emulator(emulator are may be a hardware or a software that makes one system to act like an another system).
System virtual machines provides a median for executing the entire computer operating system. It will create a lot more identical execution differently.
- Visualizes the Instruction Set Architecture
- Virtualization software = Hypervisor
- Runs in privileged mode
- Traps and emulates privileged instructions
- Lasts as long as physical host is alive.
- It gives fully-fledged or complete system platform for execution of the complete VOS.
Whole System Virtual Machine’s : Emulation
- Host and Guest ISA are different
- So, emulation is required
- Hosted Virtual Machine + emulation
- Eg for Whole system Virtual Machines: Virtual PC’s (Windows on MAC)
Examples of System virtual Machine software are VMware, VirtualBox, Windows Virtual PC, Critrix Xen etc.
Advantages of System Virtual Machine
- Multiple OS environments can run in parallel on the same hardware in strong isolation from each other
- Efficiency is compromised
Para virtualized VM’s
- Most guest OS for better performance
- Because “Trap and emulate” is expensive for many privileged instructions
- Para-virtualized VM sees the virtual machines hardware abstractions that is similar, but not identical to the real hardware
- Guest OS is modified to replace some privileged instruction with hyper calls to the hypervisors
- Advantage of para-virtualized Virtual machine is that it results in lower performance overhead
- Disadvantages of para virtualized virtual machine is that it needs modification to the guest OS
- Eg: Xen provides both para virtual as well as full virtualization
- Often traditional Hypervisors are partially para-virtualization
- Device drivers in guest OS may be para-virtualized whereas CPU and memory may be fully virtualized.
This article on Virtual Machine in Cloud Computing is contributed by Hemalatha P. If you like TheCode11 and would like to contribute, you can also write your article and mail to thecode11info@gmail.com