Review of "Application Performance and Flexibility on Exokernel Systems"

From: Jeff Duzak (jduzak_at_exchange.microsoft.com)
Date: Tue Jan 20 2004 - 15:20:14 PST

  • Next message: Sellakumaran Kanagarathnam: "Review: Application Performance and Flexibility on Exokernel Systems"

    This paper describes the concept of an exokernel architecture, and
    describes an implementation of an exokernel system (Xok) which runs on
    x86 machines. The difficulties of implementing such an architecture are
    discussed, and performance results for the system are reported.
     
    The basic idea of an exokernel system is to incorporate only the most
    basic and absolutely necessary OS functions into a kernel, and to allow
    applications to interface directly with the kernel. In particular, the
    responsibility of allocating system resources is moved from kernel space
    to user space. Despite this, protection of resources is maintained
    through protection mechanisms implemented within the kernel. By
    allowing an application to customize its management of resources, very
    large performance gains can be made for certain specialized
    applications. Further, for applications which do not need customized
    resource management, shared libraries (or libOSes) exist to implement
    standard resource allocation.
     
    The idea of an exokernel system seems straightforward, but to actually
    implement one is difficult. In particular, the paper describes how
    difficult it was to implement a disk storage system (XN) that would
    provide protection for disk blocks yet be flexible enough to allow
    various allocation schemes to be implemented in user applications. The
    solution described was to allow a user application to download into the
    kernel functions to be used to determine ownership and access rights to
    disk blocks. The safety of these functions is ensured through
    restrictions on the language in which they are written. Beyond that,
    the XN system had to ensure the integrity of disk blocks in the event of
    a crash, as well as provide for efficient sharing of disk blocks between
    processes, all without requiring a specific file system.
     
    The paper then discusses the performance of the Xok system. The results
    show that unmodified Unix applications perform comparably or slightly
    better on the Xok system compared with the OpenBSD and FreeBSD systems.
    For applications that customize their resource management, large
    performance gains were made. One example is a file copying program
    (XCP) which reads data from disk into the buffer cache, and then writes
    it back directly from the buffer cache, thus avoiding ever copying the
    data into main memory. Because of this and other optimizations, XCP is
    three times as fast as the standard file copying program CP.


  • Next message: Sellakumaran Kanagarathnam: "Review: Application Performance and Flexibility on Exokernel Systems"

    This archive was generated by hypermail 2.1.6 : Tue Jan 20 2004 - 15:20:11 PST