On a multi-core system, VSX is using CoreXL. Amount of cores per VS is set on per VS object. If total amount of cores for all VSs is higher than the number of FWK cores available on the system than yes, some VSs may share the same CPU core, or even several.
You can check CPU allocation by running fw ctl affinily -l command.
Amount of FWKs depends on a number of physical cores on the platform, minus amount of SNDs. By default, in a system with 4 cores, just one of them is SND, with 6 to 20 cores - 2, with more than 20 cores, 4 of them are assigned to SND roles.
Now, for the memory. VSX is running in a User Space mode, meaning VSs are using the regular RAM and not kernel memory space. There is usually lots of memory available there. Memory usage depends on the size of the VS, or, in other words, on a maximum amount of connections VS is defined to handle. Also controllable from SmartConsole.
There is no reservation of resources, all VSs are equal, including VS0.
Now, why do you ask? Are you facing an actual issue?