(* This is a very complex jgraph picture used in a paper on checkpointing. Basically, it is a graphic representation of four checkpointing algorithms. The four algorithms are in the files seq.jgr, conc.jgr, cow.jgr, and cll.jgr. This file lays those four algorithms out on the page, gives them titles, and then draws a legend at the bottom. It ends up calling the shell construct 24 times, forking off 72 processes, which might seem like a lot, but it only takes 9 seconds to produce the output on a DECstation 5000. Note that in this file, the y-axis if the drawings is shrunk, so that they all fit better on the page. *) include seq.jgr yaxis size 1.5 title y -.5 : Sequential Algorithm x_translate -1.5 y_translate 2.5 include conc.jgr yaxis size 1.5 x_translate 1.5 y_translate 2.5 title y -.5 : Main Memory Algorithm include cow.jgr yaxis size 1.5 title y -.5 : Copy-on-write Algorithm x_translate -1.5 include cll.jgr yaxis size 1.5 title y -.5 : CLL Algorithm x_translate 1.5 newgraph y_translate -1.9 x_translate -1 xaxis max 2 min 0 size 2 nodraw yaxis max 2 min 0 size 2 nodraw newline linetype solid rarrow asize .07 .04 label fontsize 10 : Bytes copied / written when all processors are frozen newline linetype dotted rarrow asize .07 .04 label fontsize 10 : Bytes copied / written after the processors are restarted newline linetype longdash rarrow asize .07 .04 label fontsize 10 : Bytes written after the main memory checkpoint is complete legend on x 0 y 1 linelength 1