So from my understanding, VMWare can let various VM's have shares, reservations, and limits on how much CPU they get. My question is, how does this actually work on the host server CPU?
For example, there is a VM Server X, which has a single 1 GHz CPU. Now it is running two VM's A and B. A is given 300 MHz and B is given 700 MHz. How does the base Server X CPU actually share the Hz processing power? Does it time share the CPU much like an OS task thread? Or can it actually split the power concurrently?
At a very basic level it is time sharing the processor. This is a little more complex to imagine when you bring in multi-processors and multi-cores and hyperthreading but the basic concept remains the same.
This is the case because the Guest Machine is actually very similar to an OS thread because the underlying VMWare software is essentially an OS dedicated to hosting Virtual Machines.
This happens in the VMkernel. Check VMworld 2007 - TA61 VMware Infrastructure 3 - Best Practices for Performance for a good talk on shares, reservations, limits, and performance sharing.
Note: The VMworld site requires registration - and make sure to click the 'view' link instead of the link to the actual session.
It's a timeshare. At the end of the day the computer still works the same way no matter if it's running Windows hosts on VMWare ESX Server, a Linux DNS server or Windows XP with the fabled only existing copy of Duke Nukem Forever.