(* This is a picture of the sequential checkpointing algorithm. *)
   
newgraph 
xaxis min 0 max 3 size 2.5 nodraw
yaxis min 0 max 2.0 size 2 nodraw


newstring fontsize 7 hjc vjc x 0.25 y 0.3 : Code
copystring y 1.3 : Globals,\
Heap\
&\
Stack
newstring fontsize 9 hjc vjt x 0.25 y -0.07 : Address\
Space

(* Draw the address space *)
newcurve fill 1 marktype ellipse marksize 0.2 1.4 pts 0.5 1.3
newcurve marktype box fill 1 marksize 0.5 2.0 pts 0.25 1
newline pts 0.0 0.6    0.5 0.6

(* Draw the registers *)
shell : echo "0.7 0" | awk -f regs.awk
shell : echo "1.1 0" | awk -f regs.awk
shell : echo "1.5 0" | awk -f regs.awk
shell : echo "2.1 0" | awk -f regs.awk
newstring hjc vjc fontsize 7 x 1.95 y 0.3 : . . .
newstring fontsize 9 hjc vjt x 1.55 y -0.07 : CPU\
States

(* Draw the disk *)
shell : echo "2.1 1.6" | awk -f disk.awk

(* Draw the arrows to the disk *)

newline rarrow asize .07 .04  pts 0.6 1.3   2.0 1.8

newline rarrow asize .07 .04 pts 1.45 0.9   2.15 1.57
newline pts 1.0 0.6   1.45 0.9
newline pts 1.4 0.6   1.45 0.9
newline pts 1.5 0.6   1.45 0.9
newline pts 2.1 0.6   1.45 0.9
