Skip to content

BottCode/synthetic-Ada-tasksets-generation-for-a-MCS-semi-partitioned-model-or-RTEMS-on-XtratuM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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".

Requirements

The script runs on python3 and needs the following additional packages:

Usage

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).

Unit tests

To run the unit tests for the RTA algorithms:

$ cd path/to/script/directory
$ python3 ./test.py

Configuration

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 tests
  • CHECK_NO_MIGRATION, CHECK_MODEL_1, etc. defines which models to test
  • RUN_FIRST_TEST, RUN_SECOND_TEST, etc. defines which tests to run
  • FIRST_FIT_BP, WORST_FIT_BP defines which bin-packing algorithm to use
  • RESULTS_DIR defines where to save the results
  • CORES_MODE_CHANGES holds the possible sequences of core mode change
  • CORES_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/