What’s the workaround today when conflicts arise between an OS and VMM?
One workaround is runtime modification of the guest OS. In this case, the VMM monitors operation during runtime, and takes control of the processor whenever one of the 17 privileged instructions (see above) arises in a guest OS. The VMM manages the conflict, then returns control to the guest OS. Another is static modification of the guest OS, or paravirtualization. In this case, the guest OS is modified prior to runtime. Both these approaches have drawbacks. Runtime modification forces the VMM to provide complex workarounds during operation, which can impact performance. Paravirtualization prevents the VMM from hosting unmodified (legacy) guest OSs. Both approaches require extensive software development efforts from the VMM vendor, the OS vendor, or both. They also require that VMM and OS software be upgraded in tandem, which increases the cost and complexity of IT support.