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?"
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.
I can't wait - an OS designed through-and-through for multiple cores, and it's only six or more years away!
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.
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.
sticking in a DVD still hang Explorer for the 5-10 seconds it takes to spin up and read the TOC?
/frank
How many years has Windows had this obvious, annoying flaw?
And the worms ate into his brain.
Right then. So you agree that they fundamentally rewrote Vista.
www.timcoleman.com is a total waste of your time. Never go there.
... that read "parallelize" as "paralyze"
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.
You moved your mouse. Please restart Windows for changes to take effect.
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.
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
"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.
Next announcement will come about 6 months before the release date:
This feature will not be included in the upcoming release of Windows.
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.
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.
Bearded Dragon
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.
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>
After 3 days without programming, life becomes meaningless
- The Tao of Programming
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
Campaign for Liberty