Slashdot Mirror


Next Windows To Get Multicore Redesign

eldavojohn writes "A Microsoft executive announced that the next Windows will be fundamentally redesigned to handle the numerous cores of present and future processors. The article notes that the NT technology underneath Vista has been able to take advantage of multiple processors since 1993, and can now handle 32 or 64 cores. And since Microsoft completely rewrote the 20-year-old GDI/GDI+ model for Vista, what more can (or should) they parallelize? It will be interesting to see how Microsoft tackles the race conditions and deadlocks that come with pervasively multithreaded software and in the past complicated attempts (like that of BeOS) to utilize multiple CPUs. Do you think it's it a smart move to further complicate an operating system to take advantage of multiple cores, or should Microsoft stick to its knitting while applications take advantage of (possibly) more resources?"

1 of 417 comments (clear)

  1. Multi-processing in general by Galen+Wolffit · · Score: 5, Interesting

    There are three issues in multi-processor programming.
    (1) OS and language support in the form of threading models
    (2) OS and language support in the form of scheduling algorithms
    (2) Application support in the form of using those threading models to develop program components that can run concurrently.

    Let Microsoft focus on #1 and #2, and application developers focus on #3. The OS should not, IMHO, try to take a program that is not written to take advantage of multiple processors, and run it in a concurrent environment. That's just asking for trouble!

    Advanced threading models that allow application developers better control over how their threads are executed, and scheduling algorithms that distribute threads across the multiple cores and processors, will pave the way for application developers to write applications that can truly benefit from a multi-core environment.

    As an application developer, one of the biggest problems I've encountered in developing multi-threaded applications is the ability to easily control what can run concurrently, and what can't. I have almost no ability to tell the operating system which threads I want to run concurrently, and which I want it to time-share.

    Let Microsoft, and language developers, focus on the first two tasks. Make the tools available to application developers, and let application developers take advantage of those tools.