The architects who redeveloped the thread scheduling system for Windows 7 and Windows Server 2008 R2 realized that during the Vista era, they made some design decisions in favor of simplicity, especially for developers. But that simplicity came with a performance hit, especially from processes running in multicore processors — the more the cores, the bigger the hit.
We all saw that with Vista. In overcoming these deficiencies, it’s apparent from listening to the architects themselves, speaking on “Day 0” of PDC 2009 in Los Angeles (the day before the big keynotes), that they had come to loathe Vista’s problems just as much as everyday users.
During a full but not overflowing all-day session beginning this morning, key architects including Microsoft’s Arun Kashan unveiled changes made to multithreaded scheduling, including to systems such as hyperthreading (SMT), introduced some years ago by Intel. Hyperthreading added some performance to the earliest single- and multicore processors, by creating two logical processors (LPs) per core. But as threads accumulated, latencies increased.
So the architects leveraged concepts originally created for the Windows Server 2008 core (not R2), including core parking. Here, a new scheduling algorithm determines when logical processors aren’t being used, and can “park” those LPs, leaving one open. LPs can also be moved to working cores for better efficiency.
Then the timing system was improved so that more of these processes from collected, gathered together threads on LPs can be executed during a system tick. Only core 0 gets the tick now, saving situations where tick messages flood multicore systems; the new scheduling algorithm can manage efficiency without burdening cores above #0 with the time.
The dispatching thread in Vista has been scuttled entirely, replaced by a two-phase algorithm that brilliantly manages to maintain interoperability and compatibility.
The lectures are ongoing as I write, so stay with us on Betanews for more complete details as this week at PDC 2009 gets under way.