chitecture is also called as stand-alone VM implementation. In the right side of Figure 2.2, the VMM runs as an application on the host OS. It can utilize the host OS's functionality such as memory management, process scheduling, and hardware drivers. Both architectures have been widely used in many virtualization products. Applications Applications Applications Applications Guest operating Guest operating Guest operating Guest operating system system system system Virtual machine 1 Virtual machine n Virtual machine 1 Virtual machine in Virtual machine monitor (VMM) Virtual machine monitor (VMM) Host operating system Hardware Hardware Standalone VMM Hosted VMM Figure 2.2 Virtual machine architectures. 2.2 Host Virtualization The possibility of virtualization needs the support from the com- puter architecture level: the privileged instructions must trap SO that the guest VM's privileged execution will be sent to VMM. The VMM will coordinate the scheduling of execution across VMs; either the instruction is executed on the native hardware or an emulated result is returned. VMM is in complete control of the entire system resource. 2.2.2.2 Other Virtualization Techniques While the hardware virtualization is the fundamental building block to the cloud computing, there are other types of virtualizations. One of the well-known ones is the java virtual machine (JVM), which pro- vides virtualization abstraction at the programming language level. As a platform-independent language, Java has a backend interpreter that performs platform-dependent translations. Programs run on the JVM platform are compiled to standardized portable binary format in the form of class files. The binary is executed by the JVM runtime, which emulates the JVM instructions. 2.2.3 Containers Containers are a game changer in the virtualization space. Starting a new virtualization cannot get easier than this. Containers are easy to use, fast, and ensure real software portability. Each container has all its required runtime dependencies and configuration