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?"

4 of 417 comments (clear)

  1. NT was mutiprocessor from the start. by supersnail · · Score: 4, Informative

    NT has always been a multiprocessor OS.

    The big problem with NT is its "Message Passing" architecture, whereby
    various components of the OS talk to each other by putting messages on queues
    (In the *nux model you just call the function you need.)

    The weakness of the architecture is that the component handling any one
    message queue is automatically single threaded and tied to a single processor.
    Which is OK for 2 or four processor systems but in 16 or 34 processor
    systems 12 or 30 of your processors are wasted.

    However I expect the idea of any resources being available to the application
    is an anathema to Redmond so they will fix this problem to ensure that VISTA
    keeps its design goal to consume 90% of available resources.

    --
    Old COBOL programmers never die. They just code in C.
  2. Re:Windows is already multithreaded by MeBot · · Score: 5, Informative

    "just using MS software only uses 1 core by default" Really depends on which software you're using. A lot of applications like Word, Excel, etc don't usually do process-intensive tasks and the act of spreading the work over multiple threads would actually decrease performance (there is overhead for each thread, context switches, etc). Those apps are more often IO-bound... either waiting for user IO or disk IO. However, if you're using software like SQL Server which performs tasks that do benefit from multiple concurrent threads, it does use multiple cores out of the box. (Yes, it's actually just using multiple threads out of the box, but Windows tosses those to multiple cores... trying not to be too pedantic here) Also if you're manually setting the affinity of processes, you're probably inadvertently decreasing your performance. Windows will spread processing across multiple cores by default (not only using 1 core like you say). When you specifically set the affinity, you're not really moving the process to a different core so much as saying "don't use this core even if it's not being used by anything else." Multi-threading with IO intensive applications should make use of IO completion ports in Windows. That will give you much better perf than trying to manually control which core you explicitly want a thread running on. Keep in mind that IO is orders of magnitude slower than processing, and more often than not that's now the bottleneck in systems. Check out http://www.microsoft.com/technet/sysinternals/info rmation/IoCompletionPorts.mspx/ for more info. Unfortunately, there are a lot of applications out there (both from MS and other vendors) that do multi-threading poorly. Hopefully if MS re-writes some of the Windows infrastructure to make multi-threading easier for applications we'll see better apps that more properly take advantage of the hardware that's out there.

  3. Re:Think of the licensing... by jimicus · · Score: 4, Informative

    I've no idea why you've been modded "Funny". IIRC, NT4 was licensed in exactly this way.

  4. Re:Um... by Milican · · Score: 4, Informative
    Windows Vista is Windows 2003 with a new GUI... Windows 2003 is Windows XP with a new GUI... Windows XP is Windows 200 with a new GUI... Windows 2000 is Windows NT4 with a new GUI... Windows NT4 is just Windows 95 GUI + Windows NT 3.51...

    Uhh.. come up with a new story and read other technical sites besides Slashdot. Windows Vista has a helluva lot of new features in the OS besides the GUI. Some examples that come to mind.
    • Prioritization of I/O not just CPU usage in tasks.
    • Love it or hate it the UAC.
    • ReadyBoost
    • Memory for certain processes is randomized to prevent direct access by malware.
    There are many more, but thats just off the top of my head. I guess you could argue that a couple of my bullet points fall under security model, but hey at least I went into more detail. Now go off and use Google to find something interesting to post.

    JOhn