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?"
Didn't they only just fundamentally rewrite Windows Vista?
Deleted
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.
Imagine a Beowulf cluster of multicore BSODs!
Anyway, no need to redesign, just fix what they already have.
will be based on a BSD.
Unless they want another failure on their hands.
Come on Microsoft!!! You should have done this with Vista but instead you were on the DRM bandwagon, now you are on the multicore bandwagon and by the time you get around to releasing another OS there will be some other shift in technology that you did not account for because you are too big, bloated and slow to keep up with the pace of technology!! Smaller and more agile companies are whooping your butt in every area! I'll believe it when I see it.
This is *NOT* flamebait but rather a hard fact of life. Sorry...
I can't wait - an OS designed through-and-through for multiple cores, and it's only six or more years away!
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?
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.
You heard it here first.
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.
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?
With Solaris being open-source (and the premier multi-threaded OS that scales like crazy) MSFT will just "borrow" code and concepts for the next release of Windows. Also, with the licensing agreements Sun and MSFT have they can probably legally "borrow" the info.
After years of wait, Minesweeper gets the multi-core treatment! Now I won't have to suffer those lousy frame rates.
... 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.
#define MAX_NUM_CORES 128
Okay, we're good for another few years.
Prov 9:8 Do not rebuke mockers or they will hate you; rebuke the wise and they will love you.
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.
The two words I was least hoping to hear about the next version of Windows. I don't want to wait 5 - 8 more years for a new OS again. I had been hoping Vista would be like ME - quickly replaced and forgotten.
Unpleasantries.
EFI support. Oh, wait. Then they'd be copying Apple, right?
This is a sample sig. Press F1 to personalize.
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
It seems that they've already begun to develop services akin to the message passing systems in Erlang and Mozart-Oz. Given that those message passing systems are how those languages avoid the vast bulk of problems described, it seems likely that their attempts to prevent these problems are in fact well underway.
StoneCypher is Full of BS
Microsoft's programmers were so tired from the complete redesign between Windows 95 and Windows 2000, and the complete redesign between 2000 and XP, and the complete redesign between XP and Vista. They've written three operating systems almost from scratch in the past twelve years!
I am a believer of momentum and curves.
Does anyone still believe any statements from Microsoft regarding the feature-set of their upcoming Windows versions?
There's an option: "Launch folder windows in separate processes".
See if you can find it...
No sig today...
Imagine a beowulf clusterfuck of these.
Kwisatz Haderach
Sell the spice to CHOAM
This Mahdi took Shaddam's Throne
Windows NT is already fully multithreaded, has been since it's inception. Windows supports 32 logical CPUs, whether they be physical CPUs or cores.
What has to change is likely two things. First, multiple cores on a single CPU generally share the same cache. This changes the basic rules of scheduling between CPUs since the amount of overhead required to move between cores is less than that of the overhead to move between CPUs, as long as that cache is retained. Windows currently probably does not weigh cores differently than CPUs, and it also likely serializes the thread state regardless of where it may be going. So, MS could add performance increases to favor thread scheduling between cores on the same CPU and to also retain the cache on that CPU even when the thread is scheduled on a different core.
The second change would probably involve CPU affinity. Windows uses a 32-bit bitmask to specify which of the 32 CPUs on which a thead may be scheduled. With multiple cores it's possible that 32 will not be enough in the near future, so the scheduler and API will have to be changed to accomodate more than 32 logical processors.
Heh, as stated in the summary, Windows has been able to take advantage of multiple cores for quite some time now. This is best seen by the fact that if you have more than one core and you look at the Task Manager, both cores will usually be doing something. I also believe some of it's subprocesses are able to take advantage of a multi-core system. But perhaps not _all_ subsystems. Maybe that's what they want to do now? Or perhaps you weren't being serious, in that case the joke was lost on me. Sorry for that, then.
handle multiple cores so that new core duo computers will still be progressively slower and buggy?
1. make new ver of windows every year with same performace.
2. gates announces that we do need 640k cores of cpu to boot new ver of windows in 5min.
3. ???
4. M$ sells back xp at a low end next gen windows price.
5. profit!!
--
Does this mean my dual core 200 mHz Pentium 1 system won't run their latest and greatest?
it sounds like in 1998. I mean I hate Windows as much as the next guy, but it has evolved a bit since then.
As the island of our knowledge grows, so does the shore of our ignorance.
But this reminds me of the database file system, not mention the 11th hour reduction in the virtual server specs.
"She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
A question for someone who understands this stuff - what's the difference between the way Vista and OSX handle multicore processors? Would Apples OSX need to be redesigned to use multicore processors more effectively? Apple already sell 8 core machines - are these not using the multicore as effectively as they could?
I mean come on...what good are multiple cores if you are still thunking the video display.
I notice that windows always seems to hang (with very little response) just after I log in whilst all the startup programs start up (SeaMonkey quick launch, Miranda IM, AVG Anti-virus etc). Once the apps load, it becomes responsive again pretty quickly. Oh and I have a nice beefy machine so I don't think its my specs (unless its a case of too many programs all trying to access the hard drive at once :)
I didn't think the house band in Hell would play this badly.
Probably modded troll because most Windows users know that 'kill process' from Task Manager (NT/Win2K/XP) almost always works just fine. Further discussion pointed out that the GP may have been talking about Windows 95/98/ME which indeed had more trouble killing sick processes, hence the GP is now modded insightful. Mod this one -1 "Who Cares".
RETURN without GOSUB in line 1050
...or should Microsoft stick to its knitting while applications take advantage of (possibly) more resources?"
Microsoft wishes to inform the writer that there are NO applications of any importance that are NOT from Microsoft. Anything worth wearing is already knitted by MSFT or will be in the future when they decide you are ready for it.
An OS should make resources available, not use them up!
But modern OSs are really bundles of a lot of software, some of which could really use some parallelizing. I don't think this requires a fundamental redesign, but what do I know?
Yesterday was the time to do it right. Are we having a REVOLUTION yet?
Don't worry, they will promise delivery in 2009, it'll be delayed until 2011, and then they will remove it from the product. The base OS will then be 2 core enabled, and they will say it will be shipped in a service pack or addon....
ugh
Affordable processing power, for home users, isn't going to come from faster mhz as much as from multiple cores, so naturally new software will need to take advantage of this new hardware to be competitive.
Any OS that doesn't provide support may find itself outdistanced from an OS that does. Of course, if an OS doesn't have a very large game base to begin with, then they won't have much to lose either.
Two cores both hitting the same HD for a ton of data is going to be slower than doing the two processes sequentially. The HD speed vs CPU speed chasm is just getting wider. RAID helps, but with additional cost, complexity and its own unique drive replacement hassle.
What about a massive RAM drive? This would go flash one better in the speed department (my 8GB Ritek USB key is several times slower than a _HD_ based on my informal timings.) Battery back it up if need be.
I'm hoping Windows 201x will address this.
I come here for the love
Would have been a much better piece of news!
What a pity!
Maybe Computers will never be as intelligent as Humans.
For sure they won't ever become so stupid. [VR-1988]
You're a fucking idiot. Don't worry though, Slashdot is the perfect place for you.
Microsoft Windows already supports multiple cores in the same sense that OSX does on the Macbook Pro.
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.
Because an OS is software that runs on top of hardware. People that use computers want the most powerful computer they can afford. If an OS manufacturer wants to be chosen by consumers, then it will have to support new hardware technology. If you don't want to be on the bleeding edge of technology then don't be, life is possible without the latest-greatest-fastest.
the next windows to be codenamed "Linux"
Power to the Penguin!
I'll never understand slashdot moderation.
Me either. Accurate moderation would have been "-1, Wrong" or "-1, Ignorant".
Vista has only been out a few months and doesn't even have the first service pack yet. Reviews of Vista all pan it. Yet here they are talking about the NEXT Windows?
Lets see, what were they promising seven years ago when they first started talking about "Longhorn"? And how much of the vaporware actually materialized? And from the reviews, all they gave us with Vista was more bloat and eye candy.
If I'd just bought Vista, this news about their next OS would piss me off. It's as if when news of the exploding Pintos hit the papers, Ford started touting next year's Pinto and its better handling and fuel economy.
The idiots at Microsoft must all be smoking crack, that's the only explanation I can think of for this announcement. Come to think of it, smoking crack would explain all the bugs, security issues, bad design, and corporate hubris.
-mcgrew
PS- XP was my last Microsoft purchase. I'm dual booting it with Mandriva, but everyone's talking about Ubantu so I may try that. I've found that Linux (at least Mandriva and Suse) are head and shoulders above Windows in every respect except eye candy.
Mod me as you will, I'm not logged on =P
The first iteration of the "multi-core" OS will be barely functionable.
The second iteration will be usable, but bug ridden.
By the third or forth iteration, it will be an O/S worth running.
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).
There was a simular question a while back weither DOS/Windows 3.1 should only run within 640k of RAM and have the applications Take advantage of the extended RAM. Well we know the answer now as time progresses the more advanced the OS Gets the more resources it needs. (Linux, Mac, or Windows) The interaction between the OS and the Application is becomming more and more intertwineded. Then back in the old days. Where in old OS's the program in general (very general terms) says Hay Can I use this device and the OS says Yes or No, and telling when the App can run or not. Now it is much more advanced The application now goes to the OS. Hey OS I need a Window 800x900 pixels With a Command Button in it about 10 Pixels down by 100 Pixels left about 50 pixels wide with the caption OK, Oh also tell Applicaiton B that it needs to print out this Document.
Sticking to one core will ultimatly slow down the OS ability to function. The Speed/Core is approaching a linear trend while the number of cores are growing exponentionally. (2005)2, (2007)4, (2009)8, (2011)16, (2013)32, (2015)64, (2017)128, (2019)256. With the next version of windows probably being between 2011-2013 and will have an EOF around 2021 (est 512 cores) where we have 16 - 32 core systems commonly available. The Demmand on one core for the OS will be so high that the effecenty of apps on the other cores will be so much lower because it will need to be waiting for the OS Core to catch up. Having the OS Multi-Core will assure that Application will not bog down the OS with Requrests.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
Perhaps I'm missing something obvious , but wasn't the much vaunted NT Hardware Abstraction Layer designed precisely so that the OS could be more easily ported to various architectures with only the very thin low level layer HAL changed? Isn't this all they'll be doing with multicore architectures? Just have install a different HAL for each one?
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.
Before you worry about a multicore rewrite, how about fixing the fscking piece of shit that is Vista. I had to unplug my machine yesterday because it hung trying to log me off. It also goes brain dead when I try to backup files to DVD. I do computer shit all day at work and the last thing I want to deal with when I get home is another broken fucking machine. Yay, my brand new HP with wonderful Vista gives me more headaches than my seven year old graybox with Win2k!
..to run Duke Nukem Forever.
What kind of question is that? An operating's defining role is to speak to hardware.
"Multicore!"
Sounds like more hype coming out of the marketing department.
Wasn't Vista suppose to come with all these great additions only to be reduced down to a XP upgrade?
How soon we forget.
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.
Just pasting GC-RAMDISK into Google gets an ad for CDW - *WITHOUT* any memory, just the card is only $15x. I have been thinking about one of these for a while, has anyone got experience with it ?
what does this mean for me and my Cyrix 333 Mhz?
2015 at the earliest
wait for it, it's gonna be hot, and work with the zune too.
This gives me something to look forward to in 2021.
I might know what I'm talkin' about, but then again, this is Slashdot...
[boot_SMP]
*nomp=0
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
Haskell for SMP cores can be found here.
I think they should spend all of their money and devote all their resources in making their OS more complex.
Vista has already had serious trouble catching on. First it was terribly delayed, then businesses didn't even bother to upgrade. When it was released in the consumer sector, it faired poorly with most consumer sales being with new computer purchases. And now, dell is even offering an XP option with new computer purchases. Many folks I know personally are planning to stick with XP for a few more years.
But now, I have a feeling Vista is going to be getting outdated really fast. I was under the impression a few years ago, based on what MS was saying, that vista would be able to handle plenty of new cores. Yet, now that it's out, we find that it's hardly any better than XP. I mean, "designed to run on one, two, maybe four processors." come on!
Quad core processors are out already! And, I have no doubt that in 2-3 years we'll be seeing 16 core (or more!) processors. The question is, where does that leave vista? I really believe Vista's terrible support for multi-core processors could strike a final blow, leaving vista as nothing but a huge miserable failure on Microsoft's part.
Look at the license agreement on NT 4.0 and nearly every version of Windows since (a few before?). "On a maximum of two processors" It has been Microsoft's policies to rape anyone who wanted more than two cores, are they changing their policies now?
The preceding post was not a Slashvertisement.
So now windows will clog ALL of my processors? It's already bad when it clogs just one.
Extreme Programming - Redundant Array of Inexpensive Developers
otherwise, calling a function get into all kinds of resource locking problems.
MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
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
The problem with OSX running on lots of cores is the hardware. Apple does not sell hardware with more than 8 cores as for as i know. Maybe some people have tried with Darwin.
Intel and AMD have been coasting for a decade by making very modest performance improvements based on a technology they've known is reaching its limits. Multicore may turn out to be a short-term transitional approach until new technologies are developed that allow a return to true performance gains. Given how long MS takes to develop a new OS, they may release it just as multicore goes the way of other kludges like extended memory.
Would be efficient distributed locking and messaging at an O/S level that supports clustering too.
;)
Just like the O/Ses of those good old days
Running stuff in parallel is trivial. Just get another core/processer/computer, run the process. The issue is when the processes need to exchange information or they need to be serialized.
Seems a lot of people nowadays delegate that stuff to some DB software (since DB software needs locking, serialization etc too, and provides it), but DB software has typically higher overheads and also a fair number of DBs have problems running across clusters too...
If you design the APIs well programmers will start using multiple cores, and even multiple computers. It's not necessarily an easy problem, but it's been done more than once already, I'm sure with the benefit of hindsight, some hardware support from say Intel, things should be even better nowadays.
"This prevents people with the original Intel Mac books from running 64-bit Windows on it." Wahhh Wahh! Aren't you just confusing the idea of real computers users with Mac-using douchebags?
When you look at how many services are already running in modern Windows, add in applications and interrupt processing, background screen updates, background printing, and I/O, just spreading those threads across available processors would, one would think, do a great deal of multi-processing already. Intensive applications after that (games, video, etc.) need to multi-thread themselves, and many do now. So what underlying OS functions still remain as long running single threads?
"It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
What the hell are they parallelizing ? Again they're straying further away from the true definition of an operating system. The OS should be aware of multiple cores and try to balance them efficiently, but if they're talking about optimizing code for multiple execution cores, they're thinking of application software. An operating system is supposed to be a glorified collection of device drivers, low-level APIs and maybe a basic user interface to build upon. Everything else is an application. Windows Explorer is an application. Xorg is an application.
What Microsoft needs to do is learn how to do non-blocking I/O, because that's the slowest part of any computer system these days. Processors are fast and cheap, so is RAM. Hard drives are still slow pieces of crap. It's real cute that the average idiot can go to Best Buy and grab a 750gb drive, but he'd probably be better served with a 75gb drive that's 10 times faster, because Windows will stall while waiting for data to come off those slow noisy platters.
That's one thing I really like about the Mac, it's good at hiding some of its lag by showing at least some interface feedback really quickly while the rest of the stuff loads. Windows will just sit paralyzed while a dozen processes fight for disk attention and total throughput stretches toward zero.
-Billco, Fnarg.com
Cool, now it will be more like Linux!
drew
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:
I'm sure there'll be more to add to this list. There are good comparisons around.
Cheers,
Toby Haynes
Anything I post is strictly my own thoughts and doesn't necessarily have anything to do with the opinions of IBM.
Parent post made me laugh. I would rate it "+1, Funny". Thanks for listening.
Vista has a better under-the-hood structure than did XP. But by keeping support of XP applications, Vista was limited in the strides it could make forward, because it needed to keep backwards compatibility.
Now the next OS past Vista is going to need to be backwards compatible to Vista, but not to XP necessarily. The benefit of this is that they can really make some strides on that one, versus what Vista has to offer.
I'm not terribly impressed with Vista, but I know Microsoft has some very bright engineers. I know the Slashdot crowd will always boo and jeer at Microsoft, but in the end, their programmers are just as good if not better (in many cases) than anybody in the Linux, Mac, or Unix worlds. The brilliance of their programmers isn't really the question here, it's a limitation on what they can and cannot do. Apple has had it easy, since they just dumped their prior OS entirely and built one anew. If Microsoft did that, they'd lose billions -- but I'm quite certain that they would have a very nice OS after the fact.
Either way... lessons will be learned as time goes by by all software companies, and that only benefits us in the end. Although with the pricing of Vista, and the number of editions... it worries me about the future and what the "business" thinks how it should be marketed.
The price is always right if someone else is paying.
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.
Wouldn't this be almost mandatory? What happens when you have the Windows kernel only able to run on a single-core and your applications are running multiple threads across multiple cores? Now if those multiple threads all make system calls which get handled by the kernel that only runs on a single-core, wouldn't the Windows kernel be a serious bottleneck?
If application code were perfectly parallelized, then speedup would be linearly proportional to the number of processors (P). So, 8 processors would be 8X speedup. But, practically, this will never be the case. There will always be some portion of the code that is serial. Amdahl's law tells us that we can only expect a speedup that is related to 1/fs, where fs is the fraction of the code that is serial. So, if the code is 50% serial, you are limited to 2X, no matter how many processors. Even if there is only 10% serial code, the speedup is limited to 10X. So, this talk of 32, 64 processors, while obviously useful for running multiple processes concurrently, will not really be that important unless applications fundamentally change in a big, big way. But you all already knew that, right?
One of the few very nice things in Vista is that Startup programs launch at a lower priority, so that the system is as responsive as you need it to be right away:
The total boot time is divided into two parts
Peter predicted that you would "deliberately forget" creation 2000 years ago...
Wow, Vista has NT technology! Will this new OS system support LCD displays and NIC cards too?
(Excuse me, I need to go put my PIN number in an ATM machine.)
Quidquid latine dictum sit, altum sonatur.
I so cannot wait until 2030 when this comes out. I'm so going to be the first person on line with my pension check in hand to snatch this one up.
I've read about this on another tech news site and there they saied that neither windows, nor OS-X have trouble with multiple CPUs - but both have trouble with multiple Cores within one CPU
The MAFIAA is a bunch of mindless jerks who will be the first up against the wall when the revolution comes
Not so. C is not an OO language, but nothing stops you from doing OO-designs in it.
I work on a large C-based home-brewed system that does just that. You call a function, which goes through an abstraction layer to decide if it can just invoke the function directly or if it needs to translate it into a message.
Yes, sometimes some attention needs to be payed to locking, but there is a technique to that: It's called software engineering... a little thought into the design up-front avoids an amazing number of issues.
I don't the the submitter understands multi-core OS's and how they are designed. Primarily the quote "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?" gives it away.
:-P.
The reason is because an application cannot really be written to take advantage of more cores unless the OS supports it. The best it can do is use algorithms which utilize more threads of execution which the OS can choose to run on multiple cores. Using more threads isn't always good, since you could be wasting time context switching on the same CPU, so the app would likely want to ask the OS how many CPUs it is working on. A prime example of this would be a multiple threaded decompresser, assuming all the I/O is out of the equation (whole image is in memory), you will likely want a thread per CPU since all threads will max out there time slices decompressing. Any more threads, and they start fighting for time slices to do work in and end up doing it in less time.
Anyway, on an OS level, multiple core support is VERY important. Linux made some huge steps in this direction in 2.6 by making the kernel preempt-able in a lot more spots. This is difficult as race conditions are sometimes hard to see, but done right and you end up with a lot less serialization of thread execution. Also of course the scheduling algorithm has to be smart enough to not bounce a thread back and forth between multiple CPUs to maintain cache consistency, this is where the notion of CPU affinity comes in. Generally the goal of any OS is the keep the CPUs as busy as possible with useful work as it can.
Finally using less coarse locking mechanisms is huge in multiple-core kernels. For a long time, Linux had something (and still does, it's just not supposed to be used anymore) called "the big lock". The idea was if you new some code was not thread safe, you could wrap it in the big lock and you would be good since NO OTHER code runs while this lock is held, it is a global critical section. The problem is, that while this is safe design, it is highly inefficient design. The correct thing to do is to have many different locks for all your different resources so that two unrelated thread sensitive pieces of code can run concurrently. From what I've heard from some MS employees, Win95 had a similar concept, and was transitioned to more fine grained locking techniques in Win98, this explains the big jump in responsiveness in Win98 as well as the jump in instability in Win98 (since these more efficient techniques are simply hard to get right the first time)
All in all, there is no question that if multiple cores are here to stay, the OSes must be written to take advantage of them. At the very least, things like SMP and other multiple processing systems have a efficiency that can be gained from these types of changes.
proxy
But after all the crap MS promised for Vista and fell through on almost completely I'll believe this when I see it. To me this is the same as some moron in WoW making some idiotic claim. "SS or it didn't happen."
I'll meet you at the intersection of "Should be" and "Reality"
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.
In other words, Microsoft is going to add something that is already there. This isn't even Slashdot news worthy.
the first release of NT (which for marketing reasons was called version 3.1)
Huh?
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
If memory server me right couple of years ago OSX was using a single kernel lock. Which means that no more than 1 thread running in kernel. See: http://arstechnica.com/reviews/os/macosx-10-4.ars/ 4
I read a long article describing why OSX was much worse processing Ethernet traffic than windows.
I don't know how it has changed since that time.
last time i checked, 34 is not a power of two.
Congratulations on your genius for building out a bleeding-edge obscure OS for your parents whom I doubt are bleeding edge users, and then coming here to bitch to the choir.
Nothing wrong getting the 64bit hardware, but everything wrong with the blind, myopic optimism with the OS selection.
If you wanted all the fancy graphics and looks, then you well know it's either the solid MacOS, or XP with some nice skinning.
It's called shooting yourself in your foot.
64-bit, like SSE*, SSSE, etc will come in its own time and place driven usually by only the hard-core.
Besides, you're asking Microsoft, the people whom built Vista, the mediocre Visual C/C++ (vs Intel C++ Compiler), and took 20 years to catch up with some modern OS tech to be a cutting edge leader?
You must not be using many applications, or using them very intensely.
Just today, I have dealt with 5 BSODs from a WinNT 4.0 box [poor driver issue is at fault, but who's going to update them, now?], 3 ring-buffer overflows on a Win2k box [using an old Matrox Frame-grabber; drivers, again], and a system hang-up on a WinXP box (dual-Xenon system, loading a simple 75k node
The assertion that Task Manager is a top priority process, which is "truly preemptive" is disingenuous, at best.
I gave a try to erlang and it is indeed an ingenuous (but didn't Ada do the same things 20 years ago) and simple (too simple, there's no useful library) language. Until the OS and the compiler itself can be written with the language, is there any point in trying to use it ? (except for playing around that is).
Non-Linux Penguins ?
I don't get it. How much benefit would your parents get from a 64 bit OS? Are they doing enough media work to tax the CPU in 32 bit mode such that encoding would be faster if they had software that used 64 bit ints? Are they doing hard core encryption? Judging from the RAM quantity, you aren't using enough memory to make 64 bit addressing desirable.
If all the layers know about it, the extra registers in the 64-bit chips can be put to good use. This is unique to the IA32/64 architectures - most others didn't just recently gain a reasonable number of registers. But Intel chips have had to go out to memory (L1 cache, if you're lucky) and back for lots of common operations that you don't see on other CPU's.
Intel finally has a decent chip on their hands in the Core2 line. I even had to buy myself one (and might get another!)
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
The big issue with pushing out 64-bit only with Vista is Intel not releasing 64-bit processors until more recently.
By time the next version of Windows ships (since it seems this week they're back on the Rewrite Bus), anything older than today will be clunky and obsolete.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
in the meantime can XP get a switch so I can specify which core will handle my app when i first start it?
OSX runs on eight pastel cores. And it looks fabulous doing it...
Have you read my blog lately?
As long as Microsoft as the OS and tools developer can understand and manage the complexities and I as the end user or programmer can take advantage of it then why the hell not!
Ceci n'est pas une sig.
But only after having left plenty of time to INTEL to use this as an argument in their new
s/number of Ghz/numer of core/
marketing propaganda.
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
How about instead of a symmetric mp cpu with a single memory map, (http://en.wikipedia.org/wiki/Symmetric_multiproce ssing) what about utilizing more of the asymmetric mp features of a multicore design? Image if each core had a dedicated memory map that was enforced in hardware. The hardware could divide out the memory space for such things as the data plane, control plane, kernel, I/O, and apps. No more worries about a single rogue app taking down the OS. What if each application ran within their own virtualised os sub system with full dedicated hardware behind it? A single core could be dedicated to the handling of passing secure messages back and forth between the different subsystems. Image the possibilities of what could be done with security on a system like this? If a app or subsytem has not been authenticated with the OS cpu through a secure comm channel then it can be killed. No more rootkits/malware/spyware (ok, maybe stretch)
What if a single core could handle the graphic sub system, another core could handle audio, another could handle disk I/O to off load some of the overhead of software raid. Another core for DMA's, another core as a encryption engine....
For that matter why are we even concluding that a N-way multicore processor has N-num instantiations of the same core? What if more specialized cores are added to handle different types of tasks (ie dedicated SIMD unit)
ok.... I'm getting a bit to ahead of myself. It seems to me that we are in for some very interesting times.
-AC
Well, when we talk of new features, what do we really mean. To be frank, all that microsoft puts are small bits and pieces of code into their codebase and they call them features. On the other hand, standard UNIX releases, and linux have constantly been coming out with new major features. As far as Vista is concerned, my friends inside microsoft tell me that it REALLY isn't a rewrite. Take AIX for instance. AIX 6.1 comes with security features like Role Base Access Control, MUlti Level Security, Trusted Security Stack. In RAS they have features like probevue. They are planning to come out with kernel hot-patch, in which you won't have to reboot the machine after putting a kernel fix in. It comes up with partitions, and partition mobility between machines on the fly without downtime. It comes with application check-point stop and restart. Sun also has come out with features like this. all major unixes have been able to handle multicore upto 100s of processors since 1990s. Windows is 17 years late. and still behind.
I just invested in the future by obtaining an 8-core Mac Pro w/16GB of ram. As far as I could tell, it is the most highly engineered multicore development platform on the market today. I think parallel processing is a topic whose time has come. I don't mind putting that kind of hardware behind Mac OS X, but IMHO it would be nutty to invest in that level of hardware to run a Microsoft OS. Over the last few decades, I have been constantly impressed at Microsoft's ability to use up any additional computing power provided by the processor manufacturers. IMHO Intel provided hardware support starting in 80286 to write advanced protected operating systems, and Microsoft ignored Intel's efforts for many years by utilizing only a fraction of the capability for advanced operating systems that would have been possible if Microsoft had read the system writer's guide and used some imagination.
huh ? after a vista that sooo "not was" ?
Read radical news here
There are many misunderstandings about parallelism, as it is evident from this discussion. Some posters said that "my O/S already runs in multicore/multicpu systems, thank you very much"...some others said that some tasks are like word processing is non-parallelizable etc.
The misunderstandings lie not in what parallelism is, but what Intel and other companies are trying to achieve. The quest for parallelism is not about running lots of programs in parallel, but extracting the parallelism out of sequentially written programs, including kernels. In order to improve performance, any parallelism that lies in our applications but is not exploited right now must be utilized, if we want to see real improvements in the future.
Modern CPUs do many tricks in order to increase parallelism, like pipelining and out-of-order execution. Current research at Intel has produced an 80-core CPU. It is highly unlikely that any of us will run 80 programs simultaneously tomorrow, so either this research is for servers only (highly unlikely because Intel will need to sell a lot of these chips to cover research expenses), or Intel knows that programs can be parallelized even more.
Compilers can not identify all possible parallel paths of execution, because it is an intractable problem. Writing complicated multithreaded programs using threads, semaphores and mutexes is quite difficult. So what is needed is another software architecture that allows programs to be easily parallelized.
Ericsson has dealt with these problems a lot time ago, and the result was Erlang. Based on the Actor model, Erlang programs can contain thousands of objects working in parallel, and the programmer need not worry about how to lock/unlock resources.
Microsoft's only option is to ditch C and use another language for their O/S. C can not work with the Actor model, unless modified. The best option for them is to make a C-like low-level language that includes the Actor model as part of the language specification. They can combine Cyclone, a version of C which is safe, with the best parts of ADA and Erlang, and come up with a language which allows the easiest possible path to writing parallelizable programs. And there is a big opportunity for them to put bounds checking and garbage collection to all their code, so as that two basic problems (buffer overflows and wild pointers) are solved at last.
How do you know that's exactly what's happening?
Patrick Doyle
I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
It's interesting to note, however, that some of the examples you list as well as most of what Microsoft has made, are not really technically better than their predecessors. The main difference has to do with licensing terms. Microsoft bundles and sells knock offs of other people's software under their license. Various Open Source projects copy commercial software and offer them under free licenses. In many cases, the choice of one piece of software over another has more to do with issues of licensing terms, commercial support and money rather than technical features.
BeOS was pervasively multithreaded, throughout, and anticipated massively parallel machines at a time when everyone else thought that the Ghz race would continue indefinitely. BeOS was so multithreaded that even conventional window classes could be re-entrant. Whereas in Windows or any other desktop API that I know of, all of your messages come into your window in serial fashion, in BeOS, you could theoretically get a resize, mouse move, and keyboard event genuinely concurrently, each coming in an on another thread. As such, you couldn't just say the BeOS equivalent of SendMessage was a function call of sorts, as is the case of Windows. It required a lot of mental unwinding to get into it, but, in the end, the model was very, very cool and very very powerful.
.NET, COM, SDK, and every other application to this new Windows would be an enormously massive undertaking.
Now, for Microsoft to go and say that they are going to reengineer Windows to be a pervasively multithreaded environment, implying something like BeOS, is almost as silly as Gil Amelio's once famous prediction, that, "Apple would just add true virtual memory into Copland", after the OS has been developed for quite some time. Making Windows genuinely and pervasively multithreaded would -break- everything, as all Windows applications assume that Windows messages come in on multiple threads. If they would do it, cool, but it would mean that porting
Or, Microsoft would just shit something together, and it wouldn't really be pervasively multithreaded....
This is my sig.