Full control of the CPU cores possible?

As an extension to the very comprehensive answer of @lInuxdev, for when you’ll have digested all of that, or for anyone coming here with the same question, it may be worth mentioning that cores may be used by scheduler if known as available at linux kernel boot time.
One way to have a core not to be used by Linux kernel scheduler would be using isolcpus=1,2 on linux kernel boot args for having nothing else running on cores 1 and 2 than what you launch with taskset for them. I wouldn’t advise disabling core 0.