Related Projects & Initiatives

The Barrelfish Operating System

Print
Created on Wednesday, 17 March 2010 Written by Tommaso Cucinotta

Barrelfish LogoBarrelfish is an experimental operating system basing on the collaborative research work between Microsoft Research Cambridge (UK) and ETH Zurich (CH) on scalable OS architectures. Its main goal conists in exploring new structures to cope with the growing number of cores in future systems, as well as the increasing diversity in computer hardware. The work is basing on a concept of multikernels (see below) as opposed to monolithic or microkernels.

The Multikernel OS Architecture for Scalable Multicore Systems

Andrew Baumann et al. recently proposed an OS model called Multikernel (Baumann et al. , 2009). Its design is largely based on the idea of applying concepts from the world of distributed systems to the design of an Operating System looking at each single processor and even core inside a processor as a node of a distributed system. One of the basic principles Multikernel relies upon is the absence of shared kernel-level data structures. Each core runs a kernel instance which is independent from the other cores. The various kernel instances communicate with each other by means of message passing and RPC-like interactions. All kernel-level information and status data that needs to be shared among multiple cores is therefore replicated among them, and kept synchronized by explicit protocols. This way all communications among cores and processors need to be explicitly coded, and this naturally leads towards asynchronous communication patterns, largely used in distributed systems, which enhance the possibility for the system to parallelize and pipeline activities, rather than having cores stall waiting for implicit cache coherence protocols run by the underlying hardware. Interestingly, in the Multikernel view, the fact that the OS does not rely on shared data does not preclude applications to be developed with a shared memory paradigm.
Also, Multikernel envisions a hardware-neutral OS model, where for example the part of a CPU driver in charge of handling the communications between different cores, may actually take advantage of available low-level information about the cores topology and their interconnection infrastructure. For example, different hardware-level mechanisms may be exploited in order to send messages among cores sharing a L3 cache, as compared to the ones needed to send messages among cores that do not share such a cache, or reside on different processors (e.g., recurring to multi-cast trees, so well-known in the domain of distributed systems).
The Multikernel model has been implemented as of now as the Barrelfish prototype, and preliminary measurements seem to be promising, especially on the side of scalability of certain critical operations involving all the cores (e.g., TLB shootdown).

Relevance and Relationship to S(o)OS

The Barrelfish OS and the multikernel research addresses similar issues to the Service-oriented Operating System project. It takes a very pragmatic and sensible approach towards the next generation of OS support for future systems, addressing in particular the heterogeneity and scale of future infrastructures.
The research group focuses in particular on current issues and trends in scalable multi- and many-core processors in mind, i.e. an estimated time-line of 3-5 years, though the project is still under development and will certainly undergo further iterations. S(o)OS is taking a slightly more long-term approach, aiming at fulfilling the requirements 10-15 years from now and is accordingly more speculative than Barrelfish.
Accordingly, it takes a more holistic approach, also examining the impact on processor architecture and interconnects, assuming that future infrastructure will be distributed not only across the chip, but also across the network, thus following on the clouds movement. More importantly, S(o)OS also addresses developers' and different user types' needs, by examining the impact on (and of) future programming models, as well as the merge of different application types, such as streaming media and parallel computation. For more details, please check back on our deliverables section.

FactorMultikernelS(o)OS
timescale midterm (~5 yrs) longterm (10-15 yrs)
principle multikernel architecture modular microkernels
approach development and testing selective, comparative
user type experienced average to professional
programming support none aimed for semi-automated and annotated
messaging explicit implicit and explicit
memory architecture non-shared shared and non-shared
implementation yes (barrelfish) only partially

Additional Information

References

  • Baumann, A., Barham, P., Dagand, P.-E., Harris, T., Isaacs, R., Peter, S. et al (2009). The multikernel: a new OS architecture for scalable multicore systems. In SOSP '09: Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles, pages 29-44. ACM.

Links

Thursday the 17th. Sponsored under FP7-ICT-2009.8.1, Grant Agreement No. 248465. This website is monitored by Google Analytics. IP addresses are anonymized.
Copyright 2012

©