From 15e67eace1306021dbe0570788d3776de70f70bd Mon Sep 17 00:00:00 2001
From: Ludovic Apvrille <ludovic.apvrille@telecom-paris.fr>
Date: Fri, 25 Mar 2022 17:50:18 +0100
Subject: [PATCH] Adding update to the info on the diplo simulator. By Sophie

---
 .../build/ttool_diplodocus_simulator.log      |   4 +-
 doc/diplodocus_simulator/images/busTime.fig   | 186 ++++++++++++++++++
 doc/diplodocus_simulator/images/busTime.pdf   | Bin 0 -> 16636 bytes
 .../images/classDiag1.fig                     | 137 +++++++++++++
 .../images/classDiag1.pdf                     | Bin 0 -> 14850 bytes
 doc/diplodocus_simulator/images/prepare.fig   | 107 ++++++++++
 doc/diplodocus_simulator/images/prepare.pdf   | Bin 0 -> 12592 bytes
 7 files changed, 432 insertions(+), 2 deletions(-)
 create mode 100644 doc/diplodocus_simulator/images/busTime.fig
 create mode 100644 doc/diplodocus_simulator/images/busTime.pdf
 create mode 100644 doc/diplodocus_simulator/images/classDiag1.fig
 create mode 100644 doc/diplodocus_simulator/images/classDiag1.pdf
 create mode 100644 doc/diplodocus_simulator/images/prepare.fig
 create mode 100644 doc/diplodocus_simulator/images/prepare.pdf

diff --git a/doc/diplodocus_simulator/build/ttool_diplodocus_simulator.log b/doc/diplodocus_simulator/build/ttool_diplodocus_simulator.log
index 7cdb7b42c8..7e890d2a02 100644
--- a/doc/diplodocus_simulator/build/ttool_diplodocus_simulator.log
+++ b/doc/diplodocus_simulator/build/ttool_diplodocus_simulator.log
@@ -1,4 +1,4 @@
-This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/MacPorts 2021.58693_0) (preloaded format=pdflatex 2021.11.16)  3 MAR 2022 16:31
+This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/MacPorts 2021.58693_0) (preloaded format=pdflatex 2021.11.16)  25 MAR 2022 17:49
 entering extended mode
  restricted \write18 enabled.
  %&-line parsing enabled.
@@ -1007,7 +1007,7 @@ al/share/texmf-texlive/fonts/type1/public/txfonts/txsyc.pfb></opt/local/share/t
 exmf-texlive/fonts/type1/urw/times/utmb8a.pfb></opt/local/share/texmf-texlive/f
 onts/type1/urw/times/utmbi8a.pfb></opt/local/share/texmf-texlive/fonts/type1/ur
 w/times/utmr8a.pfb>
-Output written on build/ttool_diplodocus_simulator.pdf (17 pages, 139417 bytes)
+Output written on build/ttool_diplodocus_simulator.pdf (17 pages, 139419 bytes)
 .
 PDF statistics:
  208 PDF objects out of 1000 (max. 8388607)
diff --git a/doc/diplodocus_simulator/images/busTime.fig b/doc/diplodocus_simulator/images/busTime.fig
new file mode 100644
index 0000000000..522b9f2b78
--- /dev/null
+++ b/doc/diplodocus_simulator/images/busTime.fig
@@ -0,0 +1,186 @@
+#FIG 3.2  Produced by xfig version 3.2.7a
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+0 32 #dcdcdc
+6 2565 6975 5445 8865
+6 2610 7020 4950 7560
+4 0 0 50 -1 0 13 0.0000 4 150 1245 2610 7200 CPU::schedule\001
+4 0 0 50 -1 0 12 0.0000 4 135 1485 2745 7380 selects transaction\001
+4 0 0 50 -1 0 12 0.0000 4 135 2190 2745 7560 decides allocated timeslice\001
+-6
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 3195 7605 3195 7920
+2 4 0 1 -1 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 5445 8865 5445 6975 2565 6975 2565 8865 5445 8865
+4 0 -1 50 -1 1 11 0.0000 4 120 675 3285 7785 then calls\001
+4 0 0 50 -1 0 13 0.0000 4 195 2310 2610 8055 CPU::calcStartTimeLength\001
+4 0 0 50 -1 0 12 0.0000 4 180 1575 2745 8415 sets start and pnties\001
+4 0 26 50 -1 0 12 0.0000 4 180 2190 2745 8235 reduces vlen, computes len\001
+4 0 12 50 -1 0 12 0.0000 4 165 2685 2745 8595 sets first _masterNextTransaction\001
+4 0 12 50 -1 0 12 0.0000 4 180 1905 2835 8775 (using getFirstMaster())\001
+-6
+6 6480 3105 10035 5445
+2 1 1 1 12 7 50 -1 -1 3.000 0 0 -1 0 0 2
+	 6840 3600 6840 4410
+2 1 0 1 12 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 7560 4680 7290 4905
+2 1 0 1 12 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 7695 4680 8010 4860
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 10035 5445 10035 3105 6480 3105 6480 5445 10035 5445
+4 0 0 50 -1 0 13 0.0000 4 195 2175 6525 3285 CPU::getNextTransaction\001
+4 0 12 50 -1 0 12 0.0000 4 165 2415 6705 3465 until _masterNextTransaction\001
+4 0 12 50 -1 0 12 0.0000 4 135 2625 6885 3690 calls busMaster::accessGranted?\001
+4 0 12 50 -1 0 12 0.0000 4 135 1575 7110 3870 calls Bus::schedule\001
+#  
+4 0 12 50 -1 0 12 0.0000 4 180 2565 7335 4050 calls Bus::calcStartTimeLength\001
+4 0 12 50 -1 0 12 0.0000 4 135 1020 7470 4230 reduces vlen\001
+4 0 12 50 -1 0 12 0.0000 4 180 915 7470 4410 delays start\001
+4 0 12 50 -1 0 12 0.0000 4 180 960 6750 4635 all granted?\001
+4 0 12 50 -1 1 11 0.0000 4 90 180 7155 4815 no\001
+4 0 12 50 -1 1 11 0.0000 4 120 225 7965 4770 yes\001
+4 0 12 50 -1 0 12 0.0000 4 135 705 6660 5085 returns 0\001
+4 0 0 50 -1 0 12 0.0000 4 165 2025 7875 5400 returns _nextTransaction\001
+4 0 12 50 -1 0 12 0.0000 4 180 1920 7875 5040 if last master update len\001
+4 0 12 50 -1 0 12 0.0000 4 180 2040 7875 5220 (calcLength on all buses)\001
+-6
+6 2160 2520 10695 2805
+2 2 0 1 32 32 55 -1 20 0.000 0 0 -1 0 0 5
+	 2160 2520 10260 2520 10260 2790 2160 2790 2160 2520
+4 0 0 50 -1 0 14 0.0000 4 240 8490 2205 2745 Synthetic and simplified view of the global simulation process, with lengths computations\001
+-6
+6 2610 3270 5535 3825
+4 0 -1 50 -1 0 12 0.0000 4 180 2445 2700 3780 update task's command with it\001
+4 0 0 50 -1 0 13 0.0000 4 195 1170 2610 3420 Cmd::Prepare\001
+4 0 -1 50 -1 1 11 0.0000 4 165 2835 2700 3600 (advance to next transaction-command)\001
+-6
+6 2635 6175 5219 6749
+1 2 0 1 0 7 50 -1 -1 0.000 1 0.0000 3927 6462 1292 287 2635 6175 5220 6750
+4 0 0 50 -1 0 12 0.0000 4 180 2190 2835 6435 up to date transaction w.r.t.\001
+4 0 0 50 -1 0 12 0.0000 4 180 1965 2970 6615 application's constraints\001
+-6
+6 6435 5625 10170 9000
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 7740 8370 7515 8550
+2 4 0 1 -1 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 10170 9000 10170 5625 6435 5625 6435 9000 10170 9000
+2 1 1 1 -1 7 50 -1 -1 3.000 0 0 -1 0 0 2
+	 6750 6570 6750 8730
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 9990 8325 9990 7020 6885 7020 6885 8325 9990 8325
+2 1 0 1 12 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 8010 7515 7785 7695
+2 1 0 1 12 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 8280 7515 8550 7650
+2 1 0 1 12 7 50 -1 -1 0.000 0 0 -1 1 0 4
+	2 1 1.00 60.00 120.00
+	 8820 8550 10080 8550 10080 6480 8235 6480
+2 1 0 1 12 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 8685 8370 8820 8550
+2 1 0 1 -1 7 50 -1 -1 0.000 0 0 -1 1 0 5
+	2 1 1.00 60.00 120.00
+	 7515 8775 7515 8910 6525 8910 6525 6480 6750 6480
+4 0 0 50 -1 0 13 0.0000 4 195 1275 6750 6525 Simulator loop\001
+4 0 0 50 -1 0 12 0.0000 4 180 2235 6930 6750 search next step transaction\001
+4 0 -1 50 -1 1 11 0.0000 4 120 225 7335 8505 yes\001
+4 0 0 50 -1 0 12 0.0000 4 135 1635 7020 8730 calls CPU::schedule\001
+4 0 0 50 -1 0 12 0.0000 4 135 2265 6930 7200 calls CPU::addTransaction?\001
+4 0 0 50 -1 0 13 0.0000 4 150 1950 6750 5850 Simulator initialisation\001
+4 0 -1 50 -1 0 12 0.0000 4 180 1305 6885 6030 prepare all tasks\001
+4 0 -1 50 -1 0 12 0.0000 4 135 1470 6885 6210 schedule all CPUs\001
+4 0 0 50 -1 0 12 0.0000 4 180 1020 6975 8055 calls prepare\001
+4 0 0 50 -1 0 12 0.0000 4 165 1395 6975 7875 execute (archive)\001
+4 0 0 50 -1 0 12 0.0000 4 165 870 6975 8235 returns yes\001
+4 0 0 50 -1 0 12 0.0000 4 135 1485 6930 6930 selects transaction\001
+4 0 12 50 -1 0 12 0.0000 4 135 945 7740 7470 last master?\001
+4 0 12 50 -1 1 11 0.0000 4 120 225 7605 7605 yes\001
+4 0 12 50 -1 1 11 0.0000 4 90 180 8595 7605 no\001
+4 0 12 50 -1 1 11 0.0000 4 90 180 8820 8460 no\001
+4 0 12 50 -1 0 12 0.0000 4 135 1455 8505 7875 increments master\001
+4 0 12 50 -1 0 12 0.0000 4 120 810 8505 8235 returns no\001
+4 0 12 50 -1 0 12 0.0000 4 180 1440 8505 8055 (getNextMaster())\001
+-6
+6 2520 8955 5640 9450
+2 1 0 1 13 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 2520 9045 2700 9045
+2 1 0 1 26 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 2520 9225 2700 9225
+2 1 0 1 -1 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 2520 9405 2700 9405
+4 0 26 50 -1 0 12 0.0000 4 180 2325 2700 9270 specific to other transactions\001
+4 0 -1 50 -1 0 12 0.0000 4 135 2190 2700 9450 common to all transactions\001
+4 0 12 50 -1 0 12 0.0000 4 180 2940 2700 9090 specific to data channel transactions\001
+-6
+6 5895 9135 7335 9450
+2 1 0 1 10 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 5895 9225 6300 9225
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	2 1 1.00 60.00 120.00
+	 5895 9405 6300 9405
+4 0 0 50 -1 0 12 0.0000 4 135 300 6345 9270 call\001
+4 0 0 50 -1 0 12 0.0000 4 135 990 6345 9450 control flow\001
+-6
+6 7740 9135 8955 9450
+2 1 0 1 27 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	2 0 1.00 60.00 120.00
+	 7740 9405 8145 9405
+2 1 0 1 23 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 7740 9225 8145 9225
+4 0 0 50 -1 0 12 0.0000 4 135 450 8190 9450 result\001
+4 0 0 50 -1 0 12 0.0000 4 135 750 8190 9270 data flow\001
+-6
+2 1 0 1 10 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 6840 5985 5985 5985
+2 1 0 1 10 7 50 -1 -1 0.000 0 0 -1 0 0 3
+	 6840 6165 5760 6165 5760 6795
+2 1 0 1 10 7 50 -1 -1 0.000 0 0 -1 1 0 5
+	1 1 1.00 60.00 120.00
+	 6975 8685 5760 8685 5760 6795 5220 6795 5220 7065
+2 1 0 1 10 7 50 -1 -1 0.000 0 0 -1 1 0 5
+	1 1 1.00 60.00 120.00
+	 6930 8010 5985 8010 5985 3015 5490 3015 5490 3240
+2 1 0 1 10 7 50 -1 -1 0.000 0 0 -1 1 0 5
+	1 1 1.00 60.00 120.00
+	 6885 6705 6255 6705 6255 2925 7020 2925 7020 3105
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 5715 3825 5715 3240 2565 3240 2565 3825 5715 3825
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 5805 5040 5805 4095 2565 4095 2565 5040 5805 5040
+2 1 0 1 27 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	2 0 1.00 60.00 120.00
+	 3870 5895 3870 6210
+2 1 0 1 10 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 3915 3825 3915 4140
+2 1 0 1 10 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 3870 4995 3870 5310
+2 4 0 1 12 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 5220 5895 5220 5310 2565 5310 2565 5895 5220 5895
+2 4 2 1 28 30 55 -1 30 3.000 0 0 7 0 0 5
+	 8820 5895 6660 5895 6660 5670 8820 5670 8820 5895
+3 0 0 1 23 7 50 -1 -1 0.000 0 1 0 4
+	0 0 1.00 60.00 120.00
+	 4590 6705 4860 6885 4770 7155 4230 7335
+	 0.000 1.000 1.000 0.000
+3 0 0 1 23 7 50 -1 -1 0.000 0 1 0 4
+	0 0 1.00 60.00 120.00
+	 9810 5355 10035 5535 9540 6885 8460 6885
+	 0.000 1.000 1.000 0.000
+4 0 -1 50 -1 0 12 0.0000 4 180 2565 2700 4995 update cmd's transaction with it\001
+4 0 0 50 -1 0 13 0.0000 4 195 2550 2610 4275 Cmd::prepareNextTransaction\001
+4 0 0 50 -1 0 12 0.0000 4 180 1980 2700 4455 produce new transaction\001
+4 0 12 50 -1 0 12 0.0000 4 135 2445 2700 5850 channel's constraints and state\001
+4 0 12 50 -1 0 12 0.0000 4 180 1725 2700 5670 may reduce vlen w.r.t\001
+4 0 12 50 -1 0 13 0.0000 4 150 2340 2610 5490 Channel::testRead/testWrite\001
+4 0 0 50 -1 0 12 0.0000 4 180 2790 2835 4635 vlen: from TML source & progress\001
+4 0 0 50 -1 0 12 0.0000 4 180 3000 2835 4815 rtime: end task's previous transaction\001
diff --git a/doc/diplodocus_simulator/images/busTime.pdf b/doc/diplodocus_simulator/images/busTime.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..60cafbbfb6db93af455e967288610e81ade21c81
GIT binary patch
literal 16636
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
WVo?b=5g3{o8W?e@s=E5SaRC62MTheM

literal 0
HcmV?d00001

diff --git a/doc/diplodocus_simulator/images/classDiag1.fig b/doc/diplodocus_simulator/images/classDiag1.fig
new file mode 100644
index 0000000000..d4ec0dda1d
--- /dev/null
+++ b/doc/diplodocus_simulator/images/classDiag1.fig
@@ -0,0 +1,137 @@
+#FIG 3.2  Produced by xfig version 3.2.7a
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+6 6210 1170 8715 5040
+2 1 0 1 19 7 50 -1 -1 0.000 0 0 -1 0 0 3
+	 6300 3015 6300 3375 6390 3375
+2 1 0 1 19 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 6300 3150 6390 3150
+2 1 0 1 19 7 50 -1 -1 0.000 0 0 -1 0 0 3
+	 6525 3645 6525 4230 6615 4230
+2 1 0 1 19 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 6525 3780 6615 3780
+2 1 0 1 19 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 6525 4005 6615 4005
+2 1 0 1 9 7 50 -1 -1 0.000 0 0 -1 1 0 5
+	1 1 1.00 60.00 120.00
+	 7830 3105 7965 3105 7965 3465 7155 3465 7155 3690
+2 1 0 1 9 7 50 -1 -1 0.000 0 0 -1 1 0 3
+	1 1 1.00 60.00 120.00
+	 7470 3735 7965 3735 7965 3915
+2 1 0 1 19 7 50 -1 -1 0.000 0 0 -1 0 0 3
+	 6345 1350 6345 2430 6435 2430
+2 1 0 1 19 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 6345 2205 6435 2205
+4 0 10 50 -1 0 12 0.0000 4 135 1185 6300 1305 Data Channels\001
+4 0 10 50 -1 0 12 0.0000 4 135 945 6255 2970 BusMasters\001
+4 0 20 50 -1 0 12 0.0000 4 165 840 6615 3780 schedule()\001
+4 0 10 50 -1 0 12 0.0000 4 135 315 6480 3600 Bus\001
+4 0 19 50 -1 0 12 0.0000 4 165 915 6480 3375 bus (list of)\001
+4 0 20 50 -1 0 12 0.0000 4 165 1275 6480 3150 accessGranted()\001
+4 0 20 50 -1 0 12 0.0000 4 180 1800 6615 4005 calcstartTimeLength()\001
+4 0 20 50 -1 0 12 0.0000 4 180 1035 6615 4230 calcLength()\001
+4 0 -1 50 -1 1 11 0.0000 4 120 330 8010 3330 calls\001
+4 0 -1 50 -1 1 11 0.0000 4 120 330 7965 3735 calls\001
+4 0 -1 50 -1 0 12 0.0000 4 180 1035 6480 1665 sequences of\001
+4 0 -1 50 -1 0 12 0.0000 4 180 2130 6480 1485 mapped on bus pathes, i.e.\001
+4 0 10 50 -1 0 12 0.0000 4 135 945 7560 1665 BusMasters\001
+4 0 -1 50 -1 0 12 0.0000 4 180 1335 6615 1845 - one for reading\001
+4 0 -1 50 -1 0 12 0.0000 4 180 1305 6615 2025 - one for writing\001
+4 0 20 50 -1 0 12 0.0000 4 180 1725 6435 2205 getFirstMaster(trans.)\001
+4 0 20 50 -1 0 12 0.0000 4 180 1755 6435 2430 getNextMaster(trans.)\001
+4 0 -1 50 -1 1 12 0.0000 4 180 2505 6210 4500 - calcStartTimeLength updates\001
+4 0 -1 50 -1 1 12 0.0000 4 135 2235 6345 4680 transaction's start and vlen\001
+4 0 -1 50 -1 1 12 0.0000 4 180 1710 6210 4860 - calcLength updates\001
+4 0 -1 50 -1 1 12 0.0000 4 135 1365 6345 5040 transaction's len\001
+-6
+6 2880 2430 5490 5130
+6 3600 3690 5310 4950
+6 3600 3690 5310 3825
+4 0 19 50 -1 0 12 0.0000 4 135 480 3600 3825 rtime:\001
+4 0 -1 50 -1 0 12 0.0000 4 135 1125 4185 3825 runnable time\001
+-6
+6 3600 3870 4950 4005
+4 0 19 50 -1 0 12 0.0000 4 120 405 3600 4005 start:\001
+4 0 -1 50 -1 0 12 0.0000 4 135 750 4185 4005 start time\001
+-6
+6 3600 4050 5310 4230
+4 0 19 50 -1 0 12 0.0000 4 135 420 3600 4185 vlen:\001
+4 0 -1 50 -1 0 12 0.0000 4 180 1110 4185 4185 virtual length\001
+-6
+6 3600 4230 4725 4410
+4 0 19 50 -1 0 12 0.0000 4 135 315 3600 4365 len:\001
+4 0 -1 50 -1 0 12 0.0000 4 180 525 4185 4365 length\001
+-6
+6 3600 4410 4995 4545
+4 0 19 50 -1 0 12 0.0000 4 135 405 3600 4545 cmd:\001
+4 0 -1 50 -1 0 12 0.0000 4 135 795 4185 4545 command\001
+-6
+6 3600 4590 4860 4725
+4 0 19 50 -1 0 12 0.0000 4 135 450 3600 4725 chan:\001
+4 0 -1 50 -1 0 12 0.0000 4 135 645 4185 4725 channel\001
+-6
+6 3600 4770 4920 4950
+4 0 19 50 -1 0 12 0.0000 4 180 555 3600 4905 pnties:\001
+4 0 -1 50 -1 0 12 0.0000 4 180 735 4185 4905 penalties\001
+-6
+-6
+2 1 0 1 19 7 50 -1 -1 0.000 0 0 -1 0 0 3
+	 2925 2610 2925 2745 3015 2745
+2 1 0 1 19 7 50 -1 -1 0.000 0 0 -1 0 0 3
+	 3195 2970 3195 3105 3285 3105
+2 1 0 1 19 7 50 -1 -1 0.000 0 0 -1 0 0 3
+	 3195 3105 3195 3465 3285 3465
+2 1 0 1 19 7 50 -1 -1 0.000 0 0 -1 0 0 3
+	 2925 2745 2925 5085 3015 5085
+3 0 0 1 19 7 50 -1 -1 0.000 0 1 0 5
+	0 0 1.00 60.00 120.00
+	 5040 4500 5490 4500 5445 3510 5085 3060 4410 2880
+	 0.000 1.000 1.000 1.000 0.000
+3 0 0 1 19 7 50 -1 -1 0.000 0 1 0 5
+	0 0 1.00 60.00 120.00
+	 3915 3060 4905 3060 5130 2880 4860 2745 4455 2610
+	 0.000 1.000 1.000 1.000 0.000
+4 0 10 50 -1 0 12 0.0000 4 135 2400 2880 2565 TMLTask is WorkloadSource\001
+4 0 10 50 -1 0 12 0.0000 4 135 1260 3150 2925 TMLCommand\001
+4 0 19 50 -1 0 12 0.0000 4 165 1320 3060 2745 _currCommand:\001
+4 0 19 50 -1 0 12 0.0000 4 165 495 3330 3105 _task:\001
+4 0 10 50 -1 0 12 0.0000 4 135 810 3420 3285 TMLTask\001
+4 0 19 50 -1 0 12 0.0000 4 165 1440 3330 3465 _currTransaction:\001
+4 0 10 50 -1 0 12 0.0000 4 135 1380 3420 3645 TMLTransaction\001
+4 0 19 50 -1 0 12 0.0000 4 135 780 3060 5085 _progress\001
+-6
+2 1 0 1 19 7 50 -1 -1 0.000 0 0 -1 0 0 3
+	 2340 1530 2340 1665 2430 1665
+2 1 0 1 19 7 50 -1 -1 0.000 0 0 -1 0 0 3
+	 990 1170 990 1305 1080 1305
+2 1 0 1 -1 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	2 0 1.00 60.00 120.00
+	 3060 2385 3060 2025
+2 1 0 1 19 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 990 2565 1080 2565
+2 1 0 1 19 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 990 2295 1080 2295
+2 1 0 1 19 7 50 -1 -1 0.000 0 0 -1 0 0 3
+	 2340 1665 2340 1845 2430 1845
+2 1 0 1 19 7 50 -1 -1 0.000 0 0 -1 0 0 3
+	 990 1305 990 3060 1080 3060
+2 1 0 1 19 7 50 -1 -1 0.000 0 0 -1 0 0 2
+	 990 2835 1080 2835
+4 0 10 50 -1 0 12 0.0000 4 135 2400 1215 1485 Scheduler is WorkloadSource\001
+4 0 19 50 -1 0 12 0.0000 4 165 945 1125 1305 _scheduler:\001
+4 0 10 50 -1 0 12 0.0000 4 135 1365 2565 2025 WorkloadSource\001
+4 0 -1 50 -1 0 12 0.0000 4 135 255 4005 2025 list\001
+4 0 19 50 -1 0 12 0.0000 4 165 1245 2475 1845 _workloadList:\001
+4 0 20 50 -1 0 12 0.0000 4 180 1725 2475 1665 getNextTransaction()\001
+4 0 19 50 -1 0 12 0.0000 4 165 1155 1125 2340 _endSchedule\001
+4 0 10 50 -1 0 12 0.0000 4 135 375 945 1125 CPU\001
+4 0 19 50 -1 0 12 0.0000 4 165 870 1125 2565 _timeSlice\001
+4 0 20 50 -1 0 12 0.0000 4 165 840 1125 2835 schedule()\001
+4 0 20 50 -1 0 12 0.0000 4 180 1725 1125 3060 getNextTransaction()\001
+4 0 -1 50 -1 1 11 0.0000 4 165 735 3150 2295 belongs to\001
diff --git a/doc/diplodocus_simulator/images/classDiag1.pdf b/doc/diplodocus_simulator/images/classDiag1.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..adedbfcc03cd18262037c052c91602139e9158ba
GIT binary patch
literal 14850
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

literal 0
HcmV?d00001

diff --git a/doc/diplodocus_simulator/images/prepare.fig b/doc/diplodocus_simulator/images/prepare.fig
new file mode 100644
index 0000000000..82abd15f4b
--- /dev/null
+++ b/doc/diplodocus_simulator/images/prepare.fig
@@ -0,0 +1,107 @@
+#FIG 3.2  Produced by xfig version 3.2.7a
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+6 720 2880 6030 6750
+6 720 6506 1942 6750
+1 1 0 1 0 7 50 -1 -1 0.000 1 0.0000 1331 6628 611 122 1331 6628 1942 6750
+4 0 0 50 -1 0 12 0.0000 4 135 900 877 6683 transaction\001
+-6
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 3330 3915 3780 4230
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 2835 3915 2393 4239
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 1949 5637 1710 5940
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 5
+	0 0 1.00 60.00 120.00
+	 2295 5625 2790 5895 3330 5895 3330 4635 3645 4635
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 3240 4860 3240 4590 765 4590 765 4860 3240 4860
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 3825 3510 3825 3240 2340 3240 2340 3510 3825 3510
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 5625 6255 5625 3105 720 3105 720 6255 5625 6255
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 5
+	0 0 1.00 60.00 120.00
+	 5445 4905 5805 4905 5805 2880 3060 2880 3060 3105
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 5580 5085 5850 5085
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 1305 6210 1305 6525
+4 0 0 50 -1 0 14 0.0000 4 225 1395 2385 3420 cmd::prepare()\001
+4 0 0 50 -1 1 12 0.0000 4 105 330 3600 4050 true\001
+4 0 0 50 -1 1 12 0.0000 4 180 390 2205 4050 false\001
+4 0 0 50 -1 0 12 0.0000 4 135 765 3690 4410 reset cmd\001
+4 0 0 50 -1 0 12 0.0000 4 165 1845 3690 4680 task_cmd <- next_cmd\001
+4 0 0 50 -1 0 12 0.0000 4 180 1650 3690 4950 next_cmd::prepare()\001
+4 0 0 50 -1 1 10 0.0000 4 150 1785 3690 5130 (if no next_cmd, return 0)\001
+4 0 0 50 -1 0 12 0.0000 4 180 1890 855 5535 cmd's (real) length==0?\001
+4 0 0 50 -1 1 12 0.0000 4 105 330 2520 5715 true\001
+4 0 0 50 -1 0 12 0.0000 4 180 2085 855 5265 cmd specific instructions)\001
+4 0 0 50 -1 0 12 0.0000 4 180 2115 810 5085 (if beginning of command\001
+4 0 0 50 -1 0 14 0.0000 4 225 2400 810 4770 cmd::prepareNextTrans()\001
+4 0 0 50 -1 0 12 0.0000 4 135 1035 810 4455 set startTime\001
+4 0 0 50 -1 0 10 0.0000 4 150 720 1935 4455 (if not set)\001
+4 0 0 50 -1 0 12 0.0000 4 180 2925 1620 3780 cmd finished (_length==_progress)?\001
+4 0 0 50 -1 1 12 0.0000 4 180 390 1440 5760 false\001
+4 0 0 50 -1 0 12 0.0000 4 135 1800 810 6075 create new transaction\001
+4 0 0 50 -1 0 12 0.0000 4 135 990 810 6210 and return it\001
+4 0 0 50 -1 0 12 0.0000 4 135 105 5895 5130 0\001
+-6
+6 6840 2925 9090 6705
+6 7013 4751 8235 4995
+1 1 0 1 0 7 50 -1 -1 0.000 1 0.0000 7624 4873 611 122 7624 4873 8235 4995
+4 0 0 50 -1 0 12 0.0000 4 135 900 7170 4928 transaction\001
+-6
+6 6975 5580 8235 6570
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 8235 6570 8235 5580 6975 5580 6975 6570 8235 6570
+4 0 0 50 -1 0 12 0.0000 4 180 555 7110 5985 update\001
+4 0 0 50 -1 0 12 0.0000 4 135 675 7110 6120 progress\001
+4 0 0 50 -1 0 14 0.0000 4 210 870 7110 5760 execute()\001
+4 0 0 50 -1 0 12 0.0000 4 135 600 7110 6390 archive\001
+4 0 0 50 -1 0 12 0.0000 4 135 900 7110 6525 transaction\001
+-6
+6 7515 3105 8910 4230
+2 4 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5
+	 8910 4223 8910 3143 7515 3143 7515 4223 8910 4223
+4 0 0 50 -1 0 12 0.0000 4 180 1050 7650 4043 real length is\001
+4 0 0 50 -1 0 12 0.0000 4 135 855 7650 3593 select cmd\001
+4 0 0 50 -1 0 12 0.0000 4 135 1170 7650 3818 cmd's calculus\001
+4 0 0 50 -1 0 14 0.0000 4 210 855 7740 3323 prepare()\001
+4 0 0 50 -1 0 12 0.0000 4 135 435 7695 4185 zero?\001
+-6
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 8100 4230 7830 4770
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 6
+	0 0 1.00 60.00 120.00
+	 8280 4230 8505 4590 9090 4590 9090 2925 8100 2925 8100 3150
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 7571 5022 7565 5251
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 7560 6570 7560 6705 6840 6705 6840 2925 8100 2925
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	0 0 1.00 60.00 120.00
+	 7563 5428 7557 5657
+2 1 2 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2
+	 7560 5220 7560 5445
+4 0 0 50 -1 1 12 0.0000 4 105 330 8460 4455 true\001
+4 0 0 50 -1 1 12 0.0000 4 180 390 7605 4455 false\001
+-6
+2 1 2 1 0 7 50 -1 -1 2.000 0 0 -1 0 0 2
+	 7515 3150 5625 3105
+2 1 2 1 0 7 50 -1 -1 2.000 0 0 -1 0 0 2
+	 7515 4230 5625 6255
diff --git a/doc/diplodocus_simulator/images/prepare.pdf b/doc/diplodocus_simulator/images/prepare.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..b12aee5f18fa87a63ae582f8136832a4181d0c1a
GIT binary patch
literal 12592
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

literal 0
HcmV?d00001

-- 
GitLab