В общем то ядро процессора в любом случае обслуживает одну задачу в один момент времени. Все программы выполняются по очереди.
В случае виртуализации для виртуальной машины просто выделяется определенное процессорное время и все.
Имея четырехядерный процессор можно отдать по одному ядру четырем виртуалкам.
А можно отдать четыре ядра десяти виртуальным машинам.
Еще как виртуализируют. Можно приоритетом, можно частотой, можно даже выделить отдельные ядра.
Как правило ограничиваются кол-вом ядер и приоритетом. И на условных 8 ядрах сидит пару десятков виртуалок с 2 vCPU