OS Support for Persistent Memory

From PEL Wiki

Jump to: navigation, search

Papers and notes relating to the Operating Systems and Persistent Memory.

Contents

Operating System Support for Persistent Systems (Dearle & Hulse, 2000)

  • List problems Unix and other OS's have trying to support persistent process.
  • List OS's (MONADS,Clouds,Grasshopper,etc.) that were built to support persistence.
  • List problems with current persistent operating systems -- abstractions cannot match the needs for every persistent system.
  • Says that the OS should provide minimal support -- protection from other processes, and resource sharing. (If you only need one process, you wouldn't need a kernel.)
  • Monolithic kernels (Unix) provide too many abstractions, and crash when there is a bug in one part of the kernel (not module enough).
  • Micro-kernels (Mach) are a step in the right direction but have problems providing enough flexibility and still be secure.
  • Custom Kernels - tough to secure.
  • Library Operating Systems - each application builds its own "kernel" by using libraries.
    • Exo-kernel and Cache Kernel
  • Charm is created that uses a minimal kernel that has lots of libraries that persistent applications can use.
  • The toughest challenge is to be able to recover after a crash. Usually returns to a persistent fixed point.

A compliant persistent architecture. (Morrison et al, 2000)

  • Notes.

Automatic Persistent Memory Management for the Spotless Java Virtual Machine on the Palm Connect Organizer (Mathiske, Schneider, 2000).

  • PalmOS does not directly support persistence. The application programmers must save and restore the state as the application are switched by the user. This is how PalmOS appears to be multi-threaded to the user.
  • They disable the memory protection(that protects the larger battery-backed memory), and erase the notion of two different memories(larger and smaller).
  • The process on the VM goes through 5 stages: creation, execution, suspension, resumption, destruction. The VM implements the specifics for each stage, so that the application programmer doesn't have to worry about it.

Persistent Memory: A storage architecture for object-oriented database systems(Thatte, 1986).

  • Critiques current storage systems for object-oriented databases.
    • Suggests that single-level store wasn't used because of implementation difficulties.
  • Uses a Persistent Object Manager.
    • Abstracts away memory and disk into one virtual memory system.
    • Has a Persistent root, that points to all persistent objects.
    • Garbage collection is used to reclaim transient/old objects.
  • Comes up with a Recoverable virtual memory to act like a persistent store.
  • Does not eliminate the need for file systems.
    • They are still needed for archiving and removable media.
  • Will the use of transactions eliminate the need for recoverable virtual memory?

Unununium - Open Source Project unununium.org

  • OS Designed to provide a single, orthogonally persistent address space via making the disk the entire swap space.
  • Uses Python (Object Oriented) so that there aren't any pointers to memroy.
  • Developers quit/paused due to lack of time/money/interest.

Linux Persistent Memory - Open Source Project

  • Creates a library for a persistent store, Unununium wanted to use it.
  • Developer not doing anything because nobody seems to want to use it.

Notes

It seems like most Persistent OS's provide support for Persistent Programming