This script attempts to reproduce the results described in the 2019 paper by H. Xu and A. Burns titled "A semi-partitioned model for mixed criticality systems".
The script runs on python3 and needs the following additional packages:
- numpy ->
pip3 install numpy
- matplotlib ->
pip3 install matplotlib
- progress ->
pip3 install progress
- joblib ->
pip3 install joblib
To launch the script with the default configuration (in optimized version):
$ cd path/to/script/directory
$ python3 -O ./run.py
To launch the script with the assertion checks:
$ cd path/to/script/directory
$ python3 ./run.py
The script will run the four tests described in the paper and produce as results four charts which will be saved at a configurable path (cfr. Configuration).
To run the unit tests for the RTA algorithms:
$ cd path/to/script/directory
$ python3 ./test.py
The file config.py
defines some options for the script:
PARALLEL_JOBS
defines the number of parallel tests to be run (defaults to the number of CPUs)VESTAL_CLASSIC
,VESTAL_WITH_MONITOR
,ALWAYS_HI_CRIT
defines which version of Vestal's algorithm should be used for the non migrating testsCHECK_NO_MIGRATION
,CHECK_MODEL_1
, etc. defines which models to testRUN_FIRST_TEST
,RUN_SECOND_TEST
, etc. defines which tests to runFIRST_FIT_BP
,WORST_FIT_BP
defines which bin-packing algorithm to useRESULTS_DIR
defines where to save the resultsCORES_MODE_CHANGES
holds the possible sequences of core mode changeCORES_NO_MIGRATION
,CORES_MODEL_1
, etc. defines the configurations used to test the different models
Additions by Mattia Bottaro
For my master's degree project in CS, I have to compare an implementation, made by myself, of the "Semi-partitioned model for dual-core mixed criticality system" and XtratuM, which is a TSP. Gabriele Pozzan's work, which concerns experiments on Semi-partitioned model quad-core version, is also partly useful to me, especially the parts of tasket generation, priority assignement and some RTAs. So I am adapting his work according to my needs. You can find my additions on $ROOT/dual-core-version/