Microsoft has been hinting that even though it had no plans to make major changes to the Windows kernel, it did have a scheme up its sleeve to make Windows 7 and Windows 7 Server better suited to working on multicore/parallel systems. Now details are becoming clearer as to how Microsoft plans to do this.
During the debut of the pre-beta of Windows 7 this week, Windows Engineering Chief Steven Sinofsky made a passing reference to Windows 7 being able to scale to 256 processors. But he never said how this would be enabled.
Mark Russinovich, Technical Fellow in Microsoft's Core OS division, explained in more detail how Microsoft has managed to do this in a video interview published on Microsoft's Channel 9 Web site.
Russinovich said that Microsoft has managed to break the dispatcher lock in Windows -- a task that had stumped even the father of the Windows NT operating system, David Cutler. When Cutler designed Windows for the server, systems beyond 32-way seemed far, far away, Russinovich said.
On more massively multiprocessor systems, Windows threads spin while waiting for the dispatcher lock. Once Cutler had been moved to work on Microsoft Red Dog (Windows Azure), another kernel developer, Arun Kishan, looked at this problem with a set of fresh eyes and found a solution, Russinovich said. By adding another state -- so threads aren't just running or waiting, but can be "pre-waiting," as well -- Windows will be better suited to running parallel, multithreaded applications running across manycore systems, Russinovich said.
Russinovich noted with the dispatcher-lock roadblock removed, a second set of locks became the new focus for folks working on the Windows kernel. The PFN database inside Windows, which contains information on all of the physical memory in the system, was becoming another scalability bottleneck when trying to get Windows to handle multithreaded apps on massively multicore machines. With Windows 7 and Windows Server 2008 R2 (Windows 7 Server), Microsoft again broke this lock down into finer grain locks, Russinovich said.
I'd expect Microsoft will delve into the ways it is making the next generation of Windows more multiprocessing-capable at the Windows Hardware Engineering Conference (WinHEC) next week in Los Angeles. Stay tuned.
In the meantime, given I'm not a programmer and am trying to channel a very technical Russinovich, it's probably worth checking out the Channel 9 video interview of him yourself if you care about Windows kernel futures.