Etching by Kristen Ankiewicz.

Operating system support for parallel programming

Paramecium is a simple and flexible (i.e. adaptable and extendable) operating system used to explore the tradeoffs between user processes and kernel boundaries. Services are provided by objects which are named in a per process name space. Each process may change its own name space, which boils down to installing new services, overriding or interposing existing services, etc. Through the use of code signing a user process may put objects into the kernel address space.

The research topic is to explore the various aspects of user/kernel boundaries in the context of the parallel programming system Orca. This includes the placement of traditional operating system services and parts of the application. Other aspects in which we are also interested are: service interpositions, performance monitoring, and user level network access combined with predicate network address filtering.

The project is akin to SPIN, Oberon, Exo, Spring, etc. but differs from these in the sense that it uses traditional techniques (i.e. uses objects as granularity for extensions combined with naming), and it uses a simple micro-kernel architecture with multiple protection domains without trying to virtualize hardware.

The current state of the project is that we have written a kernel running on a sun4m architecture (Sparc) and are currently writing down its design. We are also working on a simple orca run-time system which takes advantage of the extensibility provided by the kernel. As a spin-off we have written a SparcClassic (sun4m) Architecture Simulator which emulates the full hardware and prom and runs our kernel, Amoeba and SunOS. It is used for debugging and performance evaluations.


L. van Doorn and A.S. Tanenbaum. "FlexRTS: An extensible Orca run-time system", Third ASCI conference, May 1997.


FlexRTS is a dynamically configurable and extensible run-time system for Orca, a high performance parallel programming system. It provides run-time and application programmers with full control over the implementation and placement of kernel and user-level modules (device drivers, protocol stacks, thread packages, etc.). This allows programmers to optimize the run-time system on a per application basis and take most leverage out of the available hardware.

L. van Doorn, P. Homburg, and A.S. Tanenbaum. "Paramecium: An extensible object-based kernel", In Proceedings of the 5th Hot Topics in Operating Systems (HotOS) Workshop, pages 86-89, Orcas Island, WA, May 1995.


In this paper we describe the design of an extensible kernel, called Paramecium. This kernel uses an object-based software architecture which together with instance naming, late binding and explicit overrides enables easy reconfiguration. Determining which components are allowed to reside in the kernel address space is up to a certification authority or one of its delegates. These delegates may include validation programs, correctness provers, and system administrators. The main advantage of certifications is that it can handle trust and sharing in a non-cooperative environment.

P. Homburg, L. van Doorn, M. van Steen, A.S. Tanenbaum, and W. de Jonge, "An Object Model for Flexible Distributed Systems", In Proceedings 1st Annual ASCI Conference, pages 69-78, Heijen, The Netherlands, May 1995.


Current distributed applications like E-mail, electronic news, distributed calendars, and network information browsers often have a complex structure. This is partly due to lack of suitable support from the underlying operating system, which is often too low level. At the same time, multi media applications, parallel programs, wide-area applications, and database systems have very different operating system demands. Although it is possible to put support for the above-mentioned systems in a single operating system kernel, this is generally undesirable from a software engineering point of view, as the resulting software may become unmanageable.

In this paper we describe a new model for constructing operating systems and applications in an integrated fashion. Compared to current approaches we provide high-level primitives for supporting distributed and parallel applications. We also provide the flexibility to configure both applications and kernels to only include the functionality that is actually used.

L. van Doorn, and A.S. Tanenbaum, "Using Active Messages to Support Shared Objects", In Proceedings of the Sixth European workshop ACM SIGOPS , pages 112-116, September 1994.


This paper discusses a reliable group communication system using active messages to update shared objects. We discuss the model, implementation techniques, and our preliminary performance results.

Presentations and slides

  • Nov '96, ASCI GNARP meeting, Garderen, The Netherlands
    Paramecium: An extensible object-based kernel

    Associated links

    The Globe project.
    A project whose goal is to design and implement a system that simplifies the construction of wide area distributed applications.

    The ORCA Parallel Programming Language.
    Orca is a language that is based on the shared object model and is used for (but not limited to) writing parallel applications on loosly coupled machines.

    The Amoeba Distributed Operating System.
    Amoeba is a micro-kernel based distributed operating system whose holy grail is transparency.

    Maintained by Leendert van Doorn