ITEC -  Operating Systems Group

Transparent Orthogonal Checkpointing Through User-Level Pagers

  • Author:

    Espen Skoglund, Christian Ceelen, and Jochen Liedtke

  • Source:

    Proceedings of the 9th International Workshop on Persistent Object Systems (POS9), Lillehammer, Norway, September 2000

  • Date: 09.2000
  • Abstract:

    Orthogonal persistence opens up the possibility for a number of applications. We present an approach for easily enabling transparent orthogonal persistence, basically on top of a modern µ-kernel. Not only are all data objects made persistent. Threads and tasks are also treated as normal data objects, making the threads and tasks persistent between system restarts. As such, the system is fault surviving. Persistence is achieved by the means of a transparent checkpoint server running in user-level. The checkpoint server takes regular snapshots of all user-level memory in the system, and also of the thread control blocks inside the kernel. The execution of the checkpointing itself is completely transparent to the µ-kernel, and only a few recovery mechanisms need to be implemented inside the kernel in order to support checkpointing. During system recovery (after a crash or a controlled shutdown), the consistency of threads is assured by the fact that all their user-level state (user memory) and kernel-level state (thread control blocks) will reside in stable storage. All other kernel state in the system can be reconstructed either upon initial recovery, or by standard page fault mechanisms during runtime.

    BibTex:

    @InProceedings{skoglund00Checkpointing,
      author = {Espen Skoglund and Christian Ceelen and Jochen Liedtke},
      title = {Transparent Orthogonal Checkpointing Through User-Level Pagers},
      booktitle = {Proceedings of the 9th International Workshop on Persistent Object Systems},
      address = {Lillehammer, Norway},
      month = sep # "~6--8",
      year = 2000,
      pages = {201--215},
      affiliation = {University of Karlsruhe, Germany},
      url = {http://l4ka.org/publications/}
    }