gamerk316 :
Be very careful about locking threads to cores; 99% of the time you suffer unintended performance loss when the system decides to use that core anyway (which you can't really stop; Windows's kernel threads preempt everything).
Linux is more "predictable" in this regard, given they use thread pools, but at the cost of absolute maximum thread uptime.
The real underlying problem is that on a multitasking OS, your game will never be the only thing running. From a thread scheduling perspective, the ideal architecture would be a gaming console, where you have a very slim OS and very predictable thread scheduling.
Well, I've never considered thread "parking" to imply "locking" (as in the common understanding of "hogging" a core for itself). You can still have the OS overruling/dictating the CPU time slices as per usual, but the further away you're from 0, the best chances for that core to be "for yourself", sort of speaking.
Predictability is an interesting topic as well. I do believe that having more cores allow you to be lenient with "predictability", since you, explicitly, have more resources at your disposal and can just spread tasks across. The devil is always in the details, so the obvious counter argument is "ok, how good of an assumption it is to just even loads across?". Even more, how can you even design the scheduler around a fat assumption like that, haha. Can you have 2 flavors of a kernel for this? Given the age we're living, I'm pretty damn sure you can so you tweak the scheduler to fit the underlying core-count and architecture. Something Microsoft is kind of lazy in doing, with good reason, I guess.
Cheers!