Print 43 comment(s) - last by gfxBill.. on Sep 30 at 8:58 PM

Microsoft's Barrelfish operating system is an experimental OS looking to bring improved multicore performance to Microsoft's OS's  (Source: Network World)

"Barrelfish hackers and hangers-on, Zurich, August 2009 "  (Source: Microsoft/ETH Zurich)
Microsoft tests out multi-core improvements that will eventually be rolled into Windows

Microsoft has long cooked up new and experimental operating systems whose features eventually got rolled into its central Windows offerings.  Most recently it's been dabbling with Singularity, an experimental OS designed for increased reliability thanks to kernel, device drivers, and applications being written in managed SING# (an extension of C#) code.  Another test OS is Midori (not to be confused with the web browser), an OS that sandboxes applications for security and is designed for running concurrent applications, a feature geared towards cloud computing schemes.

Other recent efforts include its Windows Azure OS, a cloud computing OS currently offered for free to developers.

Now Microsoft has unveiled another new OS prototype codenamed "Barrelfish".  Barrelfish is an OS optimized to run on multi-core machines.  Namely, Barrelfish uses message passing and a database like system to pass information between cores.  Typically OS's use share memory schemes, which become very inefficient when resource demands are high.

The new OS was jointly created by ETH Zurich, a technology university, and Microsoft Research, located in Cambridge, Mass. 

Interestingly, it uses some open source BSD third-part libraries, which are "covered by various BSD-like open source licenses."  This has led to speculation that the new OS may be free and open source, not terms you typically would associate with Microsoft.

According to developers who have attended conferences on the new OS, it reportedly brings some of the Midori/Singularity sandboxing protections onboard.  Additionally, applications reportedly have an alternate route of accessing information from devices like graphics or sound cards.  A large deal of device information is reportedly stored in a central database that can be queried.

Writes developer "AudriUSA", "... instead of fully isolating program from device via driver, Barrelfish has a kind of database where lots of low level information about the hardware can be found. The kernel is single threaded and non preemptive. Scheduling is coupled with the message passing, an arrival of the message simply activates the waiting thread. It also uses a little bit of the microkernel concepts, running drivers in protected space, like L4 and in general pushing a lot into application domains."

As Intel and AMD expand their 4, 6, and 8-core lineups and approach even higher core counts, using these resources efficiently will be a crucial operating system responsibility.  It will be exciting to see what kind of improvements that Microsoft can accomplish with Barrelfish, as these improvements will surely be rolled into successors to Windows 7.

Comments     Threshold

This article is over a month old, voting and posting comments is disabled

RE: A little late...
By Digimonkey on 9/28/2009 10:12:05 AM , Rating: 3
Windows Vista and 7 already take advantage of more than one core. They just don't do it in the most proficient way, which is what microsoft is trying to improve on with this new OS.

RE: A little late...
By amanojaku on 9/28/09, Rating: -1
RE: A little late...
By Flunk on 9/28/2009 10:53:33 AM , Rating: 2
It's a lot easier to multithread server loads. Even before multicore processors each connection = one thread was already being used as the standard. The lack of scaling from multiple CPUs is more due to 3rd party developers than Window's multicore support. The current method for multithreading in Windows is fine for current systems but once we have systems with > 24 cores (or half that with hyperthreading) it starts to become untenable for all but embarrassingly parallel operations (like media encoding). Also the articles you linked too are not relevant to this discussion and outdated.

RE: A little late...
By amanojaku on 9/28/09, Rating: -1
RE: A little late...
By omnicronx on 9/28/2009 12:50:24 PM , Rating: 2
Buddy Vista/7/2008 Do not share the same kernel, in fact Server 2008 shares its codebase/kernel with Vista and Server 2008 R2 will share its codebase/kernel with 7. The fact remains they are based on the same kernel between the server/workstation release in both cases, so I don't know what you are smoking to think that multithreaded apps are handled vastly different aside from obvious optimizations for background apps in the server additions and foregrounds apps in the desktop editions. Now I'm not saying there are not other optimizations, but I really doubt there are vast differences at the kernel level.

Also please stop reading wikipedia, as Server 08 R2 and Windows 7 share more than the 'base code'.

As for your XP statements.. Your statement is completely irrelevant, unless you can find a link between these 'inherent inefficiencies' and handling of multiple threads in Vista/7. You cannot just merely say because a multithreaded app runs better on XP than Vista that the way multiple threads are handled is the culprit. (as this was also the case with many single threaded apps). In fact of the few benchmarks you will see on the subject, Vista actually has lower latency in terms of inter core efficiency which is the main reason that I call foul on your remarks.

RE: A little late...
By nichow on 9/28/2009 12:50:59 PM , Rating: 3
Actually the methodology used in the article you reference isn't very good. Some of the more obvious problems are:

1- The author never specifies how the machines are staged (at least that I could find). He only indicates that they were dual and quad core machines. To be a valid comparison each OS tested would need to be installed on the same or identical machines to compare apples to apples. Even matching cpu's in two different machines is not sufficient because the rest of the machine config can change perf test results dramatically.

2- He only mentions tracking the clock time for test completion and then draws conclusions without supporting evidence. He would need to at least capture cpu, disk, and ram metrics to determine why the test results were different. This would allow a more convulsive determination as to what the bottleneck is. It may be ram or storage that is the bottleneck and not cpu core scaling. Making a conclusion without appropriate data, isn't very accurate.

3- The selected workload is suspect. Using the Visual Studio developer version of SQL is a bad workload. This is designed only for development and testing purposes, it is not a high performance SQL server that will utilize multiple cores effectively. A real SQL server should be used. As far as the message store or media center workloads go, they would have to be analyzed to determine if their behavior would test cpu scaling, but without collecting any of the metrics i mention above, this determination would be difficult.

I don't know how valid the article's conclusions are, but without more detailed metrics, not even the author can know.

RE: A little late...
By lotharamious on 9/28/2009 10:56:02 AM , Rating: 3
You state these things on a completely unfounded basis.
The Windows Server line uses multiple CPUs and cores more efficiently than the Windows desktop line, so Barrelfish is more of a desktop improvement than a server improvement.

What are you talking about? The Windows server and Windows desktop for the consumer use the exact same kernel since Vista/2008 R1. It's the uses of Windows server and Windows desktop that are completely different. Server applications are generally parallelizable since most data access is independent. The consumer desktop on the other hand generally runs many single-threaded applications that cannot be parallelized, and thus makes multi-core processors a bit underutilized.

Barrelfish is simply a different paradigm for an operating system, similar to how other experiemental Microsoft operating systems (like Midori) are different from the core Windows OS. Microsoft is trying to expand all of Computer Science by developing new types of thinking about computers and how they interact with electronics and people. Ask any Computer Scientist/Computer Engineer... this is incredibly exciting stuff from a theoretical standpoint.

"I f***ing cannot play Halo 2 multiplayer. I cannot do it." -- Bungie Technical Lead Chris Butcher

Copyright 2016 DailyTech LLC. - RSS Feed | Advertise | About Us | Ethics | FAQ | Terms, Conditions & Privacy Information | Kristopher Kubicki