About Publications Downloads Related Projects Team L4hq.org  
 
Projects
Pistachio
Kickstart
Download
Virtualization
Pre-virtualization
Device Drivers
Multiprocessor
Marzipan
BurnNT
Download
IDL4
Release Notes
Documentation
Download
Persistence
Hazelnut
Download
Getting started
 
Miscellaneous
Mailing lists
Tools
VMwareGateway
Workshops
Google L4Ka.org:
 
 
Managing Code Complexity in a Portable Microkernel
Uwe Dannowski
Abstract
Increasing code complexity can become a serious issue even in a software project as small as a microkernel. This paper reports on how we address this problem in the L4Ka::Pistachio microkernel.

We define multiple configuration dimensions and assign code fragments to the appropriate dimensions. The kernel build system combines code fragments for the specific configuration. While this approach avoids the run-time costs of a full-blown object-oriented design, it does not avoid code duplication.

To address the code duplication problem, we model the code selection with class hierarchies using multiple inheritance and polymorphism. However, the run-time overhead of virtual functions results in a serious (2x) performance hit for the time-critical kernel functionality.

To address this latter problem, we apply class flattening to completely eliminate the overhead of virtual function calls. Our evaluation shows that a kernel with flattened class hierarchies performs as fast as one without class hierarchies. Thus, advanced object-oriented programming techniques need no longer be avoided in performance-focused microkernels.

In Proceedings of the ECOOP Workshop on Programming Languages and Operating Systems at ECOOP 2004 (ECOOP-PLOS'04), June 15, 2004, Oslo, Norway

Full paper:
   [pdf]
BibTeX:
@InProceedings{dannowski04Managing, author = {Uwe Dannowski}, title = {Managing Code Complexity in a Portable Microkernel}, booktitle = {Proceedings of the ECOOP Workshop on Programming Languages and Operating Systems at ECOOP 2004 (ECOOP-PLOS'04)}, year = 2004, address = {Oslo, Norway}, month = Jun, affiliation = {University of Karlsruhe, Germany}, url = {http://l4ka.org/publications/} }
   
 
 
 
  Mail to webmaster   © 2000-2010 University of Karlsruhe