#21 ·
Benjamin King2 said:Core utilization is really about the application itself rather than the operating system; XP handles multi-core processors just fine, but if an application is single-threaded, it’s always going to sit on a single core regardless of what OS you're running. For any software to actually tap into multiple cores, you need hardware support, OS support, and the application itself has to be designed for multi-threading. You need all three pieces of the puzzle to fall into place.
The real distinction between XP and Vista or Windows 7 is that Vista and 7 utilize a different thread-pool system that distributes the load across all available cores, whereas XP tends to max out one core before bothering to utilize the others as needed.
That said, Vista used to run into issues where a massive pileup of threads would wait for a specific system resource, and once that resource finally cleared, a single thread failing could cause the entire thread pool to stall—what they call a "lock convoy." It would result in the whole computer freezing for a few seconds before everything smoothed out again. I assume they patched those issues with the Microsoft updates, because I never ran into that kind of behavior on Windows 7.
That’s essentially my point regarding how XP fills up one core first and only touches the others when forced, which is a significant drawback by today's standards. Of course, whether an app uses multiple cores depends on its design; you could have 12 cores at your disposal, but if the program only knows how to work with four, the rest are just sitting there doing nothing most of the time. If you have extra cores that just idle away while you're trying to get things done, it's inefficient. Windows 7 manages its processes properly by spreading the workload across all cores, which leads me back to the same conclusion: XP's handling of cores is fundamentally flawed, though given how old it is, I suppose that isn't entirely surprising.🍿😉