diff --git a/doc/diplodocus_simulator/build/ttool_diplodocus_simulator.log b/doc/diplodocus_simulator/build/ttool_diplodocus_simulator.log
index 7cdb7b42c8aa6ebb8e2bccc1ea007c80391ab7ba..7e890d2a02fb99dc3325b4f734efc8baa032149a 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 0000000000000000000000000000000000000000..522b9f2b78537373a0febac46f01b2d57038842e
--- /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
Binary files /dev/null and b/doc/diplodocus_simulator/images/busTime.pdf differ
diff --git a/doc/diplodocus_simulator/images/classDiag1.fig b/doc/diplodocus_simulator/images/classDiag1.fig
new file mode 100644
index 0000000000000000000000000000000000000000..d4ec0dda1dedb088ec7da97a15f9f84540ffe84f
--- /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
Binary files /dev/null and b/doc/diplodocus_simulator/images/classDiag1.pdf differ
diff --git a/doc/diplodocus_simulator/images/prepare.fig b/doc/diplodocus_simulator/images/prepare.fig
new file mode 100644
index 0000000000000000000000000000000000000000..82abd15f4b8af6c409d1042906d21872ffe20734
--- /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
Binary files /dev/null and b/doc/diplodocus_simulator/images/prepare.pdf differ