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 amanojaku on 9/28/2009 11:07:16 AM , Rating: -1
Also the articles you linked too are not relevant to this discussion and outdated.
Not quite true. They point out two interesting things: multi-core support in Vista/7 is indeed better than that of XP, but XP is strangely more efficient than Vista/7. In other words, the performance gains from multi-core in Vista/7 are in some cases negated by their inherent inefficiencies. This is obvious in Vista, where most people say it performs about the same as XP. 7 is a LOT faster but it's not available yet, so performance tests are premature at this point.

@ lotharamious: Using the same code base it not the same thing as having the same kernel. If Vista/7/2008 had the same kernel MS wouldn't be able to justify the sale of all three, or their price differences. Windows Server is more than just Vista with add-ons.

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.

"This week I got an iPhone. This weekend I got four chargers so I can keep it charged everywhere I go and a land line so I can actually make phone calls." -- Facebook CEO Mark Zuckerberg

Most Popular Articles5 Cases for iPhone 7 and 7 iPhone Plus
September 18, 2016, 10:08 AM
Automaker Porsche may expand range of Panamera Coupe design.
September 18, 2016, 11:00 AM
Walmart may get "Robot Shopping Carts?"
September 17, 2016, 6:01 AM
No More Turtlenecks - Try Snakables
September 19, 2016, 7:44 AM
ADHD Diagnosis and Treatment in Children: Problem or Paranoia?
September 19, 2016, 5:30 AM

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