1 | (* This is a picture of the Copy-on-write checkpointing algorithm. *)
|
---|
2 |
|
---|
3 | newgraph
|
---|
4 | xaxis min 0 max 3 size 2.5 nodraw
|
---|
5 | yaxis min 0 max 2.0 size 2 nodraw
|
---|
6 |
|
---|
7 | (* Draw the address space *)
|
---|
8 | newstring fontsize 9 hjc vjt x 0.25 y -0.07 : Address\
|
---|
9 | Space
|
---|
10 |
|
---|
11 | (* Draw the page boundaries with awk *)
|
---|
12 |
|
---|
13 | newcurve marktype ellipse marksize 0.1 .14 fill 1 pts
|
---|
14 | shell : echo "" | awk '{ for (i = 0.67; i < 2.0; i += 0.14) printf("0.5 %f\n", i, i);}'
|
---|
15 | newcurve marktype box fill 1 marksize 0.5 2.0 pts 0.25 1
|
---|
16 | shell : echo "" | awk '{ for (i = 0.6; i < 2.0; i += 0.14) printf("newline pts 0 %f 0.5 %f\n", i, i);}'
|
---|
17 |
|
---|
18 | (* Draw the registers *)
|
---|
19 | newline pts 0.0 0.6 0.5 0.6
|
---|
20 | shell : echo "0.7 0" | awk -f regs.awk
|
---|
21 | newstring hjc vjc fontsize 7 x 1.3 y 0.3 : . . .
|
---|
22 | newstring fontsize 9 hjc vjt x 1.05 y -0.07 : CPU\
|
---|
23 | States
|
---|
24 |
|
---|
25 | (* Draw the second address space *)
|
---|
26 | newcurve fill 1 marktype ellipse marksize 0.2 1.5 pts 2.2 1.25
|
---|
27 | newcurve marktype box marksize 0.5 2.0 fill 1 pts 1.95 1
|
---|
28 | copycurve marksize 0.5 1.4 fill .5 pts 1.95 1.3
|
---|
29 | copycurve marksize 0.5 0.1 pts 1.95 0.55
|
---|
30 |
|
---|
31 | (* Draw the second address space's page boundaries *)
|
---|
32 |
|
---|
33 | shell : echo "" | awk '{ for (i = 0.6; i < 2.0; i += 0.14) printf("newline pts 1.7 %f 2.2 %f\n", i, i);}'
|
---|
34 | shell : echo "" | awk '{ for (i = 0.67; i < 2.0; i += 0.14) printf("newline linetype dotted rarrow asize .07 .04 pts 0.55 %f 1.65 %f\n", i, i);}'
|
---|
35 |
|
---|
36 | newstring fontsize 9 hjc vjt x 1.95 y -0.07 : New Address\
|
---|
37 | Space
|
---|
38 |
|
---|
39 | (* Draw the arrows *)
|
---|
40 | newline pts 1.3 0.575 1.22 0.4
|
---|
41 | newline pts 1.3 0.575 1.3 0.4
|
---|
42 | newline pts 1.3 0.575 1.38 0.4
|
---|
43 | newline rarrow asize .07 .04 pts 1.0 0.6 1.3 0.575 1.6 0.55
|
---|
44 |
|
---|
45 | newline linetype longdash rarrow asize .07 .04 pts 2.3 1.25 2.6 0.45
|
---|
46 |
|
---|
47 | (* Draw the disk *)
|
---|
48 | shell : echo "2.5 0.0" | awk -f disk.awk
|
---|