Service providers of Cloud computing are using virtualization technologies in order to offer cost-effective access to computing resources with the Internet and also to gain the most from virtualization, virtual machines need to be co-located on the same physical server.
A virtual machine in computer science is a software implementation of a computer that executes programs like a real machine. It is used to create a virtual environment, which is called as virtualization. Virtualization enables the user to see the infrastructure of a network through a process of aggregation and can also be used to access multiple operating systems at the same time. A virtual environment is used solely for applications and not for operating system kernels.
Virtual machines are divided into two main categories based degree of correspondence and on their use to any real machine. This machine provides you a complete system platform that supports the execution of a complete operating system so that the user can operate software located on the computer platform.
There are so many different types of virtual machines, used to refer to hardware virtual machine software also called as a virtual machine monitor or hyper visor. This type of machine software makes it possible to run multiple executions on one computer. With the help of the hardware virtual machine software, the user has a private machine i.e. fully functional hardware which is separate from other users. Hardware virtual machine software also helps users to restart and boot their machines quickly.
The application is isolated from the computer being used with virtual machine software. This software can be used on various computer platforms. So, this is possible to create separate versions of the same software for different computers and operating systems. Java Virtual Machine is a great example of an application virtual machine.
A process virtual machine is designed to run a single program. An important characteristic of a virtual machine is that the software which is running inside is limited to the abstractions and resources provided by the virtual machine.
The Process Virtual Machine is a common foundation for graph based execution languages. The Process Virtual Machine can have three main characteristics:
- Processes can potentially include wait states from the perspective of the process engine and be ‘long running’
- The process expresses some kind of execution flow
- Processes are represented graphically to facilitate communication between all stakeholders
So, we can say that a virtual machine can also be a group of computers that work together to create a more powerful machine.










