Why does VirtualBox show more CPUs than available?
Solution 1:
One core, with or without hyper-threading, can simulate any number of virtual cores, simply by timeslicing. However, this produces all kinds of problems because the operating systems expect that code running at the same time will actually interleave. Overprovisioning can lead to performance drops so great the system can appear frozen with operations literally taking thousands of times longer than they should.
Solution 2:
If you allocate 4 cores you get 4 cores in the VM. However almost all the time you're better off just allocating 1 because you add a lot of overhead every time you add another core.
You can have a maximum of 5 cores in your case, if you go over that into the red area your virtual machine will become unstable.
Virtual box reccomends the maximum number of cores you use should be n-1 of your physical cores. Hyper-Threading does not count.
This thread on the virtual box forums supports this.