The virtualization technology has indeed gone so far in terms of open source virtualization that led to specific forms of virtualization. For the record, virtualization can provide implementation of applications of guests in which hypervisor handles privileged instruction which are rather run at extensive speed.
The privileged instruction carried by the hypervisor can be removed by reprocessing codes which in turn can be inserted to hypervisors to get explicit calls. Thus, the runtime overhead is reduced since the execution was reorganized. The form of virtualization is actually called para-visualization.
Furthermore, in para-virtualization, the non-privileged sensitive instructions are removed from the code present in the virtual machine. Blocking and replacement of instruction in the original code caused by explicit hypervisor call is a para-virtualization technique.
Furthermore, para-virtualization might let the virtual machine monitor in becoming virtual or simpler that run on the software to achieve performance nearer to non-virtualized hardware.
So, when and where does para-virtualization is used? One is in development, test, and production methodology because in an environment that can not split development from tests systems, partitioning is provided by para-virtualization.
Second is disaster recovery. There are already many solutions found in the market to make moving systems into a programmed task, risks associated with migrating data, and so on and so forth but para-virtualization can do the task of moving a guest once a disaster occurred and as the hardware is being repaired.
Migrations and the capacity management are the other two usage of para-virtualization wherein: (1) migration is to successfully separated from the hidden hardware and (2) capacity management on resource capability and availability can be done in a better way.