The initial memory reservation for each domain is specified at the creation by a template file,
however maximum allowable memory reservation can also be specified. Xen uses a balloon
driver to adjust a domains memory usage, which controls paging. If the memory allocation
decreases, the balloon will page into the allocation, while if the allocation increases, the driver
will page out. Each guest OS registers its page tables direct with the Memory Management
Unit (MMU), however the guest OSs are restricted with read only access to the MMU.
Update requests are passed to Xen via a hypercall, which then validates the requests before
applying them.
In comparison, VMWare operates with its own virtual page table, invisible to
the MMU. The VMWare hypervisor traps the access to the virtual memory,
validates it, then propagates the changes back and forth between it and the
MMU-visible shadow page table.