I am on dual core C2D processor, Windows 7 (although this behavior is the same in all MS OSes I've seen). When I run any single threaded CPU-intensive task, it does not stick to 1 core, but rather randomly occupy some 50% of first core, and some 50% on second.
Why they do that? Doesn't that lead to lowering efficiency of L1 cache?
I know that I can set process affinity, I am just wondering the reasouns of such behavior.
Its not random. They are choosing the best place to drop it, no point in dropping it on a processor that is currently processing a heavy weight process...
It doesn't really affect L1 cache efficiency as its HIGHLY likely that the other processes will already have flushed the L1-Cache of all useful data. This is why there is so much talk of shared L2 and L3 caches ...