Friday, December 12, 2008

Windows 7 : A Game Changer?

Doug Holland (Intel) posted a coverage of this Channel 9 talk about the upcoming Windows 7 operating system. I personally am not a big Microsoft fan, but I appreciate that the company is still focused on the goal of delivering innovative and (arguably) technically superior products. Mark Russionovich was interviewed by "Charles" on Channel 9, and here's an excerpt on the details of the discussion:

... One very important change in the Windows 7 kernel is the dismantling of the dispatcher spin lock and redesign and implementation of its functionality. This great work was done by Arun Kishan (you've met him here on C9 last year). The direct result of the reworking of the dispatcher spin lock is that Windows 7 can scale to 256 processors. Further, this enabled the great Landy Wang to tune the Windows Memory Manager to be even more efficient than it already is. ...

from Going Deep > Mark Russinovich: Inside Windows 7


While watching the video it's amazing how forthcoming and how much detailed that kernel architect of Windows is willing to go regarding the development process and the changes that were made. I wouldn't have expected this sort of openness from an employee of a company started by Bill Gates who practically made sure things in Microsoft were kept proprietary.

Enough about that commentary, the technical details are very interesting indeed. It makes me think about how I approach the operating system kernel when I write multi-threaded applications. Although I don't program on the Windows platform I see how changes in the Operating Systems will definitely play a bigger role in the future when people get their hands on machines with many cores available.

I definitely look foward to having the equivalent of "user mode scheduling" in Linux or if just something emulated to have work-stealing wait()'s to maximize thread time slices and minimize waiting on highly concurrent applications. Server applications running on the Windows platform will definitely get a big boost just from the description of what the changes in store for Windows 7 when it does come out.

Does anybody know if there's something similar happening in the Linux kernel space?

Update: Added missing link to reference article.

1 comments:

suokko said...

GNU pth has user space threading support but it has horrible scheduling performance compared to in kernel threads. GNU pth also exposes portable api to write your own scheduler using user space context switches.

This is based on old POSIX feature in ucontex.h for user space context switching. So you could implement user space scheduling and context switching using POSIX api.

FreeBSD and NetBSD did hand N:M threading model but they gave up using it because of huge complexity and limited gains.

I think that user space scheduling support is just marketing FUD and real world benefits for performance is non-existent.