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

17 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.

    1. Re:Multi-processing in general by Lodragandraoidh · · Score: 2, Interesting

      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 consistently in the marketplace). I see two things happening: we'll continue happily along using interprocess communication with multiple applications - letting the OS assign processes to individual CPUs, or the OS will become smart enough to multithread the application at a lower level of abstraction (or both).

      And by the way, concurrency is not a 'one time process'. Every new application will have to be sliced up logically - which data is global and requires locking? Which data is local to the thread? Is it even feasible to parallelize the application? That is not a cookie cutter process, except for the most trivial applications (which few will use anyway). Then there is Amdahl's Law, which essentially states that the more serialized a process is, the less benefit you get from a concurrent approach.

      It is not easy, or simple - so get that right out of your head. Developers, as a group, can't do the simple stuff well, and you want them to abandon everything that works now in the name of concurrency? Insanity!

      As an aside, it still amazes me how people latch on the latest pronouncements of doom. There is a reason people are coming forward with 'we must have concurrency or everything will fall apart!' - it is to make money. We don't have to change (although they would have you believe it), they just want you to change so they can continue to sell upgrades (software, hardware and peripherals) so their revenue stream will continue unabated. If you want even more buggy code than you have now, force programmers to make every application concurrent. Otherwise, leave well enough alone and let wiser heads make those decisions.

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
  2. Does multicore result in complicated code? by mwvdlee · · Score: 3, Interesting

    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.

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  3. Re:Um... by drsmithy · · Score: 1, Interesting

    Didn't they only just fundamentally rewrite Windows Vista?

    No. And this latest comment from a non-technical commentator (Microsft employee or otherwise) is worth about as much as those saying Vista was "fundamentally rewritten".

    OTOH, given the massive level of technical ignorance about Windows on Slashdot, the responses to this article should make for amusing (if predictable) reading.

  4. Re:What about the adoption of 64-bit? by SScorpio · · Score: 4, Interesting

    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

    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?

  5. Re:OSX by EMB+Numbers · · Score: 3, Interesting

    Mac OS X traces its roots to the Mach micro kernel http://en.wikipedia.org/wiki/Mach_kernel 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

    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.

  6. Re:But will... by CastrTroy · · Score: 2, 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.

    --

    Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
  7. Re:NT was mutiprocessor from the start. by truthsearch · · Score: 4, Interesting

    "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

  8. Re:Oh great... by Afrosheen · · Score: 2, 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.

  9. Story Is Too Obvious? by GaryPatterson · · Score: 2, Interesting

    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.

  10. Re:Windows is already multithreaded by Bake · · Score: 3, Interesting

    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.

  11. Re:Um... by networkBoy · · Score: 2, Interesting

    Especially as they are still referring to NT technology as the underlying core.
    -nB

    --
    whois gawk date unzip strip find touch finger mount join nice man top fsck grep eject more yes exit umount sleep dump
  12. Singularity? by snark23 · · Score: 2, Interesting

    Microsoft Research has an OS named Singularity, designed to leverage many CPUs. You can bet that some of their research will go into the next Windows... I saw a presentation by the developers, and they firmly believe that none of the current generation operating systems are going to be able to effectively use i.e. thousands of processors.

    One of the key improvements is an order of magnitude increase over conventional Windows and Linux in the speed of creating threads.

    They also talked about the need for new programming paradigms, and I have a feeling that these are just as important if not more so than the shape of the next-gen OS. It was funny to hear guys from Microsoft --- who brought us Visual Basic --- saying that maybe functional programming was going to be the next wave.

  13. Re:Um..no. by Xiaran · · Score: 2, Interesting

    Not every single piece of software needs to be 100% unique and original.

    Indeed no piece of software can be 100% original. Else we get into silly situations. Imagine if every new software development project couldnt use, say, drop down menus cause they didnt invent them.

  14. Re:Um... by aichpvee · · Score: 2, Interesting

    More importantly, how did it take 30,000 people (isn't that what microsoft claimed?) five years to implement it?

    --
    The Farewell Tour II
  15. Re:Oh great... by Afrosheen · · Score: 2, Interesting

    Legal or not, you have to first have the installation media and a valid key first. I'm not sure if Vista Business keys work on XP Pro. This was a short-term, must have everything working before Tuesday, Memorial Day weekend emergency.

    I probably would have installed XP Pro because on paper, that Vaio was outstanding. Just plain ran out of time. Besides, the Macbook Pro looks great with their new truebright screens and the battery life is acceptable. The Vaio just barely squeaked out 2 hours with the power profile set to a medium-greed setting.

      Regardless, Sony and everyone else needs to wake up and realize how bad Vista is for business, and at least give us options.

  16. Not quite... by Phil+John · · Score: 3, Interesting

    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.

    --
    I am NaN