Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

Next Windows To Get Multicore Redesign

Posted by kdawson on Thu May 31, 2007 08:22 AM
from the racing-to-the-next-deadlock dept.
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?"
+ -
story
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • Um... (Score:4, Insightful)

    by Colin Smith (2679) on Thursday May 31 2007, @08:23AM (#19336027)
    Didn't they only just fundamentally rewrite Windows Vista?

     
    • by TheMeuge (645043) on Thursday May 31 2007, @09:12AM (#19336759) Homepage
      Next announcement will come about 6 months before the release date:

      This feature will not be included in the upcoming release of Windows.
    • Re:Um... (Score:5, Insightful)

      by Ngarrang (1023425) on Thursday May 31 2007, @09:18AM (#19336867) Journal
      Not sure how much of a re-write Vista was, but Micro$oft has to keep up the OS money, so if they can re-write the OS kernel for pervasive multithreading, then they can once again force users to upgrade all of their software...again.
      • Re:Um... (Score:5, Insightful)

        Right then. So you agree that they fundamentally rewrote Vista.
      • Re:Um... (Score:5, Informative)

        by Milican (58140) on Thursday May 31 2007, @11:39AM (#19339353) Journal
        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
      • Re:Um..no. (Score:5, Insightful)

        by Phisbut (761268) on Thursday May 31 2007, @10:38AM (#19338283)

        What the exec meant to say, "Future versions of Windows to be fundamentally stolen." It only begs the question, which o/s will MS be ripping off for this 'new' design.

        There is nothing wrong with using a proven design from another product in a new product. OpenOffice.org has stolen from MS-Office, Firefox has stolen from Opera, Thunderbird has stolen from Outlook Express, Linux has stolen from UNIX, the GIMP has stolen from Photoshop, Evolution has stolen from Outlook, and so on, and so forth...

        Not every single piece of software needs to be 100% unique and original. Taking an old design and improving it is a very valid method of designing something new. <obligatory_car_analogy>Heck, every single car today is a total rippoff of the Ford Model T</obligatory_car_analogy>

          • Not quite... (Score:4, Interesting)

            by Phil John (576633) <phil@w e b starsltd.com> on Thursday May 31 2007, @01:22PM (#19341229)

            FX!32 was for running applications, not the operating system. Think of it like rosetta for Mac OS X Intel.

            NT was actually built from the ground up to be portable cross-platform (in fact, the dev platform was the Intel i860 an then the MIPS R4000, both RISC chips). Everything runs on top of a Hardware Abstraction Layer (HAL) that takes care of the differences between various platforms.

            NT was a very elegant operating system, which isn't surprising seeing as it was the brain-child of Dave Cutler famous for VMS.

  • by Bazman (4849) on Thursday May 31 2007, @08:25AM (#19336043) Journal
    They're going to aren't they? Windows Vista '09 Multicore Edition, only valid for up to 16 cores, Windows Vista '09 Multicore Extreme Edition, 16-24 cores...

    And so it goes.

  • by andrewd18 (989408) on Thursday May 31 2007, @08:28AM (#19336087)
    I can't wait - an OS designed through-and-through for multiple cores, and it's only six or more years away!
  • Finally! (Score:3, Funny)

    by VE3OGG (1034632) <VE3OGG@rac.LIONca minus cat> on Thursday May 31 2007, @08:29AM (#19336095)
    I have been waiting for something like this! Finally, an operating system and company that "just get it!" This redesign will restructure the world of computing just as WinFS and Monad di... oh, never mind...

    And just to get a few jokes out of the way:

    Finally! Something that will run Vista!

      -and-
    Does it come bundled with Duke Nukem Forever?
  • Oh great... (Score:5, Insightful)

    by jackb_guppy (204733) on Thursday May 31 2007, @08:30AM (#19336123)
    Now we all will have buy to 8core machines with 16G memory as a minimum model, based on what just happened with Vista.

    How is that helping their customers? Oh yeah, DELL is their customer, not us.
    • Re: (Score:3, Interesting)

      At least Dell wised up and started offering XP on new machines after the public outcry about Vista-ME. Sony still hasn't. I spent all weekend last weekend trying to get a brand new Vaio with Vista Business to behave (for a client). Never could get it working properly. Took it back to the Sony store with an angry look on my face and forced them to eat the 15% restocking fee and give my client a full refund. He ended up with a Macbook Pro and Boot Camp running XP Home. Couldn't be happier.
  • by Galen Wolffit (188146) on Thursday May 31 2007, @08:31AM (#19336135)
    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.
    • I can see you were writing up your list there in parallel. And you have some concurrency issues, I guess, with your system to hand out labels.
    • 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.

      But you can even in most of the more primitive threading models.

      All it takes is having a resource and a lock...

      If there is anything that really annoys me as an administrator and 'power' user, it is those developers who think they know better what else is happening on my machine then the OS or me as its admin. This is why resource based decisions on concurency are strongly prefered over the developer being able to enable/disable concurency at a whim. Sure, it forces you as a developer to think a lot more about it, but know what, that is a one time process. The consequences of not putting in that thought occur everytime the program is used.

      • Concurrent programming today will be the 'Assembly Language' of tomorrow. Everyone knows about it, but rarely if ever use it.

        Developers should be focusing on makeing an application that works well; concurrency makes that much more difficult.

        At some point we'll reach a cut off where the added instability of the code will not justify concurrency inside of an application (and I know I don't want every application built to have to conform to concurrency - because the skills to do that consistently well are not
  • But will... (Score:4, Insightful)

    by FrankSchwab (675585) on Thursday May 31 2007, @08:32AM (#19336143) Journal
    sticking in a DVD still hang Explorer for the 5-10 seconds it takes to spin up and read the TOC?
    How many years has Windows had this obvious, annoying flaw?
    /frank
    • There's an option: "Launch folder windows in separate processes".

      See if you can find it...

    • Re: (Score:3, Interesting)

      How about a computer that recognizes that I don't have a floppy drive. Even if you don't have one, it still shows up in windows Explorer, and Linux still has /dev/floppy. Trying to access either one of those makes the computer hang for about 10 seconds. I've even tried disabling the floppy controller in the BIOS and it doesn't work.
  • by mwvdlee (775178) on Thursday May 31 2007, @08:33AM (#19336161) Homepage
    Seems to me that the best way to do multicore code would be to create a highly modular design, which could result in less complicated code if done right.
    Surely some individual modules may become more complicated, but the system as a whole would probably end up a lot cleaner.
        • Off-topic, but this highlights a major problem with Linux. They follow, but rarely lead. The only exception to this that springs to mind is filesystems. Linux has perhaps a few too many, but they are certainly pushing well beyond what MS is doing. Other than that, it's hard to find any area in Linux where they are doing things substantially better than Windows from a "feature" perspective.

          I think you'd find that there are other areas where Linux is well ahead of Windows, beyond filesystem support and research. The following are just the ones right off the top of my head:

          • Support for massive multiprocessor machines (over 1024 processors on NUMA 64bit Linux).
          • Support for massive memory architectures (8589934592GB on Linux 64bit, compared with 128Gb Windows)
          • Support for many platforms (x86, x86_64, IA64, Sparc, MIPS, System 390, PowerPC, POWER, etc.)
          • Vastly better performance on pipes and so
  • by LordKaT (619540) on Thursday May 31 2007, @08:35AM (#19336187) Homepage Journal
    ... that read "parallelize" as "paralyze"
      • I thought the title of this article was "Next Windows to Get Mediocre Redesign."

        Tags: oldnews, vista

  • by therufus (677843) on Thursday May 31 2007, @08:36AM (#19336211)
    Why bother talking about multi core supporting operating systems when we still haven't embraced 64-bit technology yet. Why bother pushing for a new technology when the current 'new' technology hasn't even been implemented yet. IMHO, Microsoft should have made Vista 64-bit only and kept XP alive for the 32-bit people who don't want to migrate. This would force people to write 64-bit drivers and software in order to be on 'average Joe's' new PC. Instead, they've done what they've been doing for the past 30 years, compromising due to lack of adaptation.

    Now I'm no supporter of Microsoft. I personally hate them. But you have to see where I'm coming from.

    I recently built a new PC for my parents. It was a simple box with a Sempron 3000, 1gb DDR, 80Gb HDD, etc. It was all 64-bit compatible so I though Vista Home Premium 64-bit would be the best way to go. Their scanner isn't supported, their antivirus isn't supported, and the devices and software they use that DO work on Vista, are all running in 32-bit mode because there is no equivalent for 64-bit.

    Please lets implement the great technology we have before concentrating on the future.
    • Re: (Score:3, Informative)

      None of this is MS's fault. You have the same problem there always is when upgrading your OS. The only companies more pathetically backwards than scanner/printer companies are "security" companies.

      I hear NOD32 has a 64-bit version. NOD32 is also less likely to break your network/OS on a whim than Symantec's shovelware.

    • by SScorpio (595836) on Thursday May 31 2007, @09:08AM (#19336693)
      You might have missed the article from a few days ago but Microsoft already announced that the next version of Windows will be 64-bit only. http://slashdot.org/article.pl?sid=07/05/17/145222 8 [slashdot.org]

      The big issue with pushing out 64-bit only with Vista is Intel not releasing 64-bit processors until more recently. AMD released the Athlon 64 long before Intel came out with their 64-bit Core2 Duos. The older Pentium-D and Core Duo multi core processors are still only 32-bit. This prevents people with the original Intel Mac books from running 64-bit Windows on it. It was also the reason that boot camp was needed to get Windows running easily on Macbooks. The Macbook doesn't have a standard BIOS, it has EFI. The 64-bit versions of Windows XP and Server 2003 where the only versions of Windows would support EFI pre-Vista. But the Macbook's processors where only 32-bit.

      You also ran into the chicken and the egg issue with your parent's computer. Manufactures don't want to release updated 64-bit drivers for old obsolete hardware to get people to but new hardware; however, people don't want to have to buy all new hardware when they can simply install a 32-bit OS and everything will continue to work. By having 32 and 64-bit versions of Vista Microsoft allows people with older hardware to keep using what they always have while forcing manufactures to create 64-bit drivers if they want to receive WHQL approval. So in 5 years the majority of hardware available will have 64-bit drivers available.

      As for only 32-bit versions of applications. Microsoft just killed off the ability to run 16-bit applications in Vista. Also how is it their fault that other software companies aren't releasing 64-bit versions or their software? With Vista being the first consumer level 64-bit Windows OS there is more incentive to release both 32-bit and 64-bit binaries. It will take time but it will happen.

      Finally you might want to go rag on Apple a little more and not just Microsoft. They are in control of their hardware platform; however, they decided it was OK to stick with 32-bit processors with the initial move to Intel. There was already a huge shift due to the move from PowerPC to x86. Why not also move the OS and applications to 64-bit as well?
          • Re: (Score:3, Informative)

            Apple already had 32-bit and 64-bit PowerPC to support before any of the Intel chips had come out. Now they have four architectures to support instead of three. That being said, they've built Xcode (their IDE that ships with every Mac and is available for free download from their website) with this in mind. By default, all applications you make with it are compiled to run nateively on any of the four architectures with no additional work on your part. I have never once heard of an issue with an applicat
  • by supersnail (106701) on Thursday May 31 2007, @08:37AM (#19336215)
    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.

       
    • by truthsearch (249536) on Thursday May 31 2007, @09:26AM (#19337019) Homepage Journal
      "Message passing as the fundamental operation of the OS is just
      an excercise [sic] in computer science masturbation. It may feel good, but
      you don't actually get anything DONE. Nobody has ever shown that it
      made sense in the real world. It's basically just much simpler and
      saner to have a function call interface, and for operations that are
      non-local it gets transparently _promoted_ to a message. There's no
      reason why it should be considered to be a message when it starts out."

      - Linus Torvalds, 1999
  • by Bullfish (858648) on Thursday May 31 2007, @08:41AM (#19336277)
    This is all very nice they are doing this, but the need is now. Not just for windows, but all the apps have to become multi-core aware. Right now having a dual or quad core for most apps is like having a care with an extra engine or two in the trunk not connected to any drivelines. CPUs have hit a wall in terms of speed because of heat, so the manufacturers are giving us mulit-core. Very nice, but consumer-level apps that use them would be nice. Some professional apps are multi-core aware, but at the consumer level...

    And preferably this year, not 2009

    • Dual core alone makes a difference for the average user .... yes web browsing is single threaded but you aren't. If they are doing anything CPU intensive (media encoding/ITunes ... what have you :) it can render a single core system unresponsive where with a dual core system you don't even really notice.

      Personally I have a quad core setup (2 opteron 265's) and it's routinely up over 50% (not doing media encoding).
  • by elronxenu (117773) on Thursday May 31 2007, @09:13AM (#19336781) Homepage
    I think they should make it work on one (1) cpu first.

  • by GaryPatterson (852699) on Thursday May 31 2007, @09:54AM (#19337571)
    In an age when Intel and IBM are making statements about future 80-core processors or massive parallelism, and when multicore processors (or at least dual-CPU systems) are becoming commonplace, how can a statement from Microsoft to the effect that they're going to take advantage of multiple cores be anything other than a "me too!" piece of fluff?

    Nothing specific is said, just the vague "we're going to be doing good stuff to make use of the things we have when we're done" sort of message.

    What's next? "Memory is important, so we're going to make really good use of it?" or "Hard drives are getting bigger all the time, so we're going to do something with that extra space. Not sure yet, but it'll be really good and probably involve the overuse of the word 'rich' by senior execs."

    I'm looking forward to *delivery* and ignoring vague promises.
  • NOOO! (Score:3, Funny)

    by Yetihehe (971185) on Thursday May 31 2007, @10:37AM (#19338259)
    So now windows will clog ALL of my processors? It's already bad when it clogs just one.
    • by NSIM (953498) on Thursday May 31 2007, @09:33AM (#19337147)

      So not sure what they mean but redesigning. What would be nice is to make the windows kernel truly preemptive multitasking. I like how in Linux you can kill -9 a rogue program, but when a program crashes in windows it takes the whole system down. Ctrl-alt-delete (kill process) how often does it really kill the process vs hanging the system. Anyway, no need to redesign, just fix what they already have.

      I don't know which version of Windows you're running (3.1 perhaps), but Vista (and previous versions of the NT kernel) have been truly preemptive from day one and you can kill user level processes from task manager and stop and restart services without bringing the system down. I literally can't remember an application making any of my Windows systems come down.

      I think the interesting thing here is the "design center" for OS is changing dramatically, in the past 99% of Windows desktops were uniprocessor and I dare say that they made design choice around that. Now we are moving to a world where 2- and 4-way desktops are common and the number of cores is only going to increase over time. That means you may well start to look at some fundamentally different ways of doing things, perhaps dedicating cores to specific tasks within the OS, for example a core might be dedicated to handling the IP stack while another might handle GDI requests. I'm not saying that this is what will happen, just that widespread use of multi-CPU systems may change the tradeoffs in OS design.

      • by alexhs (877055) on Thursday May 31 2007, @08:40AM (#19336267) Homepage Journal
        Actually I've never seen them on a Linux platform. Zombies are not a problem though. See here [kerneltrap.org] for example.

        What I've seen that is a problem are processes in "D" state (ininterruptible sleep waiting for the end of an I/O IIRC), usually happening with bad drivers / bad hardware.

        But contrary to the windows platform, it never clutters your desktop, as you can "xkill" X ressources even if the program still uses ressources in the background.
      • by MeBot (943893) on Thursday May 31 2007, @08:47AM (#19336365)
        "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/ [microsoft.com] 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.
        • Re: (Score:3, Informative)

          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.
          This is a key point as Raymond Chen [msdn.com] has discussed previously.
      • Re: (Score:3, Insightful)

        You put $4k down for a pc to run Microsoft desktop software. You should change your nick to GullableTwat23
        • by Bake (2609) on Thursday May 31 2007, @10:30AM (#19338171) Homepage
          Err,

          No.

          Every NT based OS from Microsoft has had IE and Windows explorer as two completely separate processes so killing one won't affect the other.

          I can have a 100 IE windows open, kill explorer.exe and my IE windows won't be affected one bit.

          Even if I enter a URL in a Windows Explorer window, it launches my default browser to that URL.
    • by Slashcrap (869349) on Thursday May 31 2007, @09:13AM (#19336771)
      Five years from now Windows will support multiple cores. Which is what OS X is doing on my MacBook Pro RIGHT NOW.

      I believe the largest SMP system that OSX has ever been run on is 8 cores. Windows has run on a 64 CPU system and Linux on a 1024 CPU system.

      So I'm kind of struggling to understand how OSX is superior in this regard. I know there must be a technical explanation, because it's not like Mac owners to post single lines of obvious bullshit in an attempt to advocate their systems while actually just annoying the fuck out of everyone.
    • Re:OSX (Score:4, Interesting)

      by EMB Numbers (934125) on Thursday May 31 2007, @09:17AM (#19336855)
      Mac OS X traces its roots to the Mach micro kernel http://en.wikipedia.org/wiki/Mach_kernel [wikipedia.org] and BSD flavors of Unix. (Yes, I know that OS X has diverged substantially from Mach now).

      Like most operating systems, Mac OS X has bottlenecks by design that tend to limit concurrent thread execution within the kernel. There is an excellent article at http://arstechnica.com/reviews/os/macosx-10-4.ars/ 4 [arstechnica.com]

      Only one thread can use a bottlenecked resource at a time. When multiple threads (application threads or kernel threads) need simultaneous access to a resource, all but one thread must wait. Threads that could theoretically run concurrently on multiple cores end up running sequentially because all but one thread are waiting to access the resource. Apple has made the locking (concurrency protection) within the kernel finer and finer grained with each release of Mac OS X. In Mac OS X 10.4, Tiger, the bottlenecks are very fine grained, and in practice the system is very efficient allowing concurrent execution on multiple cores.

      That being said, Mac OS X is far from perfect or optimal. There is lots of room for improvement, and Apple seems to be following the path of continual evolution rather than revolution at this point. Remember that for the last six years or so, every Mac OS X update/release has run faster than previous versions.
      • Re: (Score:3, Informative)

        Say what?

        "Multicore" is essentially SMP (multiprocessor) but all on one physical chip rather than several. Windows has supported that ever since the days of NT 4, but its architecture is more suited to 2 or 4 cores rather than 16 or 24.

        Your comment is only valid for Windows '9x.