source: trunk/Jgraph/complex-examples/cow.jgr @ 419

Last change on this file since 419 was 419, checked in by Nicholas Riley, 12 years ago

Jgraph: Debian changes by pzn@…

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