A Virtual CPU (vCPU) is an abstraction or representation of the physical CPU. As you can imagine, if you have hundreds, if not thousands, of virtual machines running on your servers, they will all be competing for the CPU. Luckily, the integration between the CPU manufacturers and the hypervisors means that these resources can be shared and overcommitted.
Virtual CPUs or vCPUs are assigned to virtual machines when you create them, either by the hypervisor virtual machine manager or by the CLI. The beautiful thing about vCPUs is that you can carve them up any way you see fit to meet your computing requirements.
In the early 1990's vCPUs had to be emulated, which is why many emulation techniques are still around as artifacts. All of the virtualization tasks were handled through software emulation, which was slow and inefficient. The next step was para-virtualization, which allowed virtual machines to bypass the hypervisor with APIs and still offer a performance advantage. Intel...