Monday 10 September 2012

What is a VM?


What is a VM?

  • From the user's perspective, a VM is software platform that ,like a physical computer runs an OS and applications.
  • From the perspective of hyper visor, a VM is a discrete set of files, including s configuration file, virtual disk, an NVRAM setting file and log file.
  • Virtual machines are separated into two major categories
  1. System Virtual Machines
  2. Process Virtual Machines
System Virtual Machines:
A system virtual machine provides a complete system platform which supports the execution of a complete operating system (OS).

advantages:
  • multiple OS environments can co-exist on the same computer, in strong isolation from each other
  • the virtual machine can provide an instruction set architecture (ISA) that is somewhat different from that of the real machine
  • application provisioning, maintenance, high availability and disaster recovery.
disadvantages :
  • a virtual machine is less efficient than a real machine when it accesses the hardware indirectly
  • when multiple VMs are concurrently running on the same physical host, each VM may exhibit a varying and unstable performance (Speed of Execution, and not results), which highly depends on the workload imposed on the system by other VMs, unless proper techniques are used for temporal isolation among virtual machines.
Process Virtual Machines:

  • A process VM, sometimes called an application virtual machine
  • Runs as a normal application inside a host OS and supports a single process. It is created when that process is started and destroyed when it exits. 
  • Its purpose is to provide a platform-independent programming environment that abstracts away details of the underlying hardware or operating system, and allows a program to execute in the same way on any platform.
  • A process VM provides a high-level abstraction — that of a high-level programming language (compared to the low-level ISA abstraction of the system VM). 
  • Process VMs are implemented using an interpreter; performance comparable to compiled programming languages is achieved by the use of just-in-time compilation.
  • This type of VM has become popular with the Java programming language, which is implemented using the Java virtual machine. Other examples include the Parrot virtual machine, which serves as an abstraction layer for several interpreted languages, and the .NET Framework, which runs on a VM called the Common Language Runtime.



No comments:

Post a Comment