digraph {
- { rank=same;
- task1 [label=<device<SUB>1</SUB>>];
- task2 [label=<device<SUB>2</SUB>>];
- taskp [label=<device<SUB>...</SUB>>];
- taskn [label=<device<SUB>n</SUB>>];
- }
- { rank=same;
+ compound=true;
+ subgraph cluster0 {
+ {rank=same;
+ t11 [label=<task<SUB>1</SUB>>];
+ t12 [label=<task<SUB>2</SUB>>];
+ }
+ {rank=same;
+ s11 [label=<sds<SUB>1</SUB>>];
+ s12 [label=<sds<SUB>2</SUB>>];
+ }
+ s11 -> t11 [style=invis];
+ s12 -> t12 [style=invis];
+ t11 -> dev1 [style=invis];
+ t12 -> dev1 [style=invis];
+
dev1 [label=<device<SUB>1</SUB>>];
+ }
+
+ subgraph cluster1 {
+ {rank=same;
+ t21 [label=<task<SUB>1</SUB>>];
+ t22 [label=<task<SUB>2</SUB>>];
+ }
+ {rank=same;
+ s21 [label=<sds<SUB>1</SUB>>];
+ s22 [label=<sds<SUB>2</SUB>>];
+ }
+ s11 -> t11 [style=invis];
+ s12 -> t12 [style=invis];
+ t11 -> dev1 [style=invis];
+ t12 -> dev1 [style=invis];
+
dev2 [label=<device<SUB>2</SUB>>];
- devp [label=<device<SUB>...</SUB>>];
- devn [label=<device<SUB>n</SUB>>];
}
+
+
+ {rank=same;
+ buffer1 [label=<buffer<SUB>1</SUB>>,shape=cylinder];
+ buffer2 [label=<buffer<SUB>2</SUB>>,shape=cylinder];
+ }
+ dev1 -> buffer1 [ltail=cluster0,label="WiFi"];
+ dev2 -> buffer2 [ltail=cluster1,label="Serial"];
+ buffer1 -> dev1 [lhead=cluster0];
+ buffer2 -> dev2 [lhead=cluster1];
+
server [label=<Shared [MTaskDevice]>];
+ buffer1 -> server;
+ server -> buffer1;
+ buffer2 -> server;
+ server -> buffer2;
+
+ server -> itasks;
+ itasks -> server;
- dev1 -> server;
- dev2 -> server;
- devp -> server [style=invis];
- devn -> server;
+ itasks [label="iTasks"];
}