RTUComputer ScienceYr 2023 · Sem 62023

Q12Cloud Computing

Question

4 marks

Discuss the difference between full virtualization and para-virtualization.

Answer

Full virtualization simulates the underlying hardware allowing unmodified OS to run, whereas para-virtualization requires OS modification for better performance.

In Full Virtualization, the virtual machine simulates enough hardware to allow an unmodified 'guest' OS to run in isolation. The hypervisor traps and translates all privileged instructions using techniques such as binary translation or hardware-assisted virtualization (Intel VT-x/AMD-V). In contrast, Para-virtualization modifies the guest OS so it knows it is running in a virtualized environment. The OS communicates directly with the hypervisor via hypercalls, reducing the overhead of binary translation and improving performance, but it sacrifices compatibility since unmodified OSes (like standard Windows) cannot run.

Comparison

  • Guest OS Modification: Full virtualization requires no changes to the guest OS, whereas para-virtualization requires the guest kernel to be modified or use special para-virtual drivers.
  • Performance: Para-virtualization typically achieves near-native performance because the hypercall interface avoids costly instruction trapping; full virtualization incurs additional overhead from instruction translation, though hardware-assisted extensions have narrowed this gap.
  • Compatibility: Full virtualization supports any x86 operating system unmodified, making it suitable for running legacy or proprietary OSes, while para-virtualization is restricted to OSes whose source is available for modification (commonly Linux).
  • Example Hypervisors: VMware ESXi and Microsoft Hyper-V primarily use full virtualization with hardware acceleration, while Xen historically pioneered para-virtualization for Linux guests.

Modern hypervisors often blend both approaches, using hardware-assisted full virtualization for the CPU while employing para-virtualized I/O drivers for disk and network devices to combine broad compatibility with near-native performance. This hybrid design is why cloud providers can offer both strong OS compatibility and high I/O throughput to tenants without forcing them to modify their guest operating systems.

Back to Paper