Minimum set of primitives?

Kragen kragen@pobox.com
Fri, 20 Mar 1998 12:12:59 -0500 (EST)


On Fri, 20 Mar 1998, Chris Bitmead wrote:
> > KeyKOS got away from it for most applications by simply checkpointing
> > the entire system periodically -- every couple of minutes.  Wrote the
> 
> I can't see how you can do that with even half reasonable
> efficiency without special hardware - i.e. involatile memory.
> 
> Unless you want to stop the whole system from time to time to
> checkpoint everything, but don't people hate emacs when it stops
> to garbage collect? I can't see this as feasible. What you talk
> about would be great, but I can't see it being realistic.

Well, it was used in an OS that ran mainframe OLTP applications.  See
<URL:http://www.cis.upenn.edu/~KeyKOS/Checkpoint.html> for detailed
information.

It might be worth looking at.  It's an example of how a restrictive
design decision -- storing all state in one of two simple kinds of data
structures -- made it possible to do something astonishing.  It would
not have been possible to retrofit this onto an OS after the fact.

Instead of stopping the whole system completely until the checkpoint is
complete, though, it simply marked all of the dirty memory as
copy-on-write, allowing applications to continue to run while the
actual disk writing occurred.

It claims that a typical KeyKOS system checkpointed every five minutes,
and the period of time in which processes are stopped is typically one
second on a loaded system.

The ratios between the size of a dollar of disk, a dollar of RAM, and a
dollar of CPU time have changed since the early 1990s, so I don't know
if this would still be true.

Kragen