To compile and run the experiments, the following standard packages are required:
Python 2.7
Python NumPy Library
Python SciPy LIbrary
GNU Make (make)
SWIG 3.0 (swig)
GNU C++ compiler (g++)
GNU Multiple Precision Arithmetic Library (libgmp)
Installing a Linear Program Solver
A linear program solver is also required. IBM CPLEX is supported.
IBM CPLEX is commercial software, but free academic licenses are available.
We test the file cplex_studio12.7.1.linux-x86-64.bin on Ubuntu 14.04 (x86_64). The filename may change when newer versions of CPLEX are released.
To install CPLEX, execute the following commands
SchedCAT provides lots of schedulability test utilities. After set up and update the SchedCAT submodule, you can compile it by running
$ cd lib/schedcat
$ make
$ cd ../../
Note: The makefiles try to automatically locate an installation of CPLEX. In some cases this procedure may fail and the build process terminates with the error “No LP Solver available”. If this happens, the CPLEX path must be manually configured with the following command:
$ export CPLEX_PATH=<your_CPLEX_path_here>
For instance, the above tested CPLEX is installed with default options, and the path is configured as follows:
In addition, some installations of CPLEX may not create symbolic links of the CPLEX static libraries into the /usr/lib/ directory. Those links are created on the teste machine with the following commands:
A configuration represents all the settings for the task set generators and defines the experiment to be performed.
The directory ./confs contains a .conf file for each configuration tested in the experiments. The name of each .conf file contains key-value pairs with the values for (most of) the parameters.
The experiment results are written to a output file in ./output
Safety-Aware Scheduling Contest Reproduction
For the contest case “安全感知任务调度”, use the cleaned reproduction entry
below. It preserves the original SchedCAT/Python 2.7 experiment stack while
making the Fig. 4 style syscall-auditing experiment parameterized and
reproducible.
git submodule update --init --recursive
source setpath.sh
cd lib/schedcat && make && cd ../../
python rta/safety_aware_sched.py --experiment utilization --samples 1000
Outputs are written to output/safety_aware_sched/ and include the full
configuration, runtime environment, schedulability ratios, and NoDrop event
residence-time statistics. The feature design and test plan for the contest
submission are in docs/feature_design.md and docs/test_plan.md.
Schedulability Experiments Framewok
Dependencies & Compilation
Packages
To compile and run the experiments, the following standard packages are required:
Installing a Linear Program Solver
A linear program solver is also required. IBM CPLEX is supported. IBM CPLEX is commercial software, but free academic licenses are available.We test the file
cplex_studio12.7.1.linux-x86-64.binon Ubuntu 14.04 (x86_64). The filename may change when newer versions of CPLEX are released. To install CPLEX, execute the following commandsCompiling SchedCAT
SchedCAT provides lots of schedulability test utilities. After set up and update the SchedCAT submodule, you can compile it by running
Note: The makefiles try to automatically locate an installation of CPLEX. In some cases this procedure may fail and the build process terminates with the error “No LP Solver available”. If this happens, the CPLEX path must be manually configured with the following command:
For instance, the above tested CPLEX is installed with default options, and the path is configured as follows:
In addition, some installations of CPLEX may not create symbolic links of the CPLEX static libraries into the /usr/lib/ directory. Those links are created on the teste machine with the following commands:
Schedulability Experiments and Configurations
Before launching the experiment, it is necessary to set an environmental variable for SchedCAT:
A configuration represents all the settings for the task set generators and defines the experiment to be performed.
The directory
./confscontains a .conf file for each configuration tested in the experiments. The name of each .conf file contains key-value pairs with the values for (most of) the parameters.As example, a configuration file named
corresponds to a configuration
The following command runs the schedulability experiment for a specific configuration:
For example
The experiment results are written to a output file in
./outputSafety-Aware Scheduling Contest Reproduction
For the contest case “安全感知任务调度”, use the cleaned reproduction entry below. It preserves the original SchedCAT/Python 2.7 experiment stack while making the Fig. 4 style syscall-auditing experiment parameterized and reproducible.
Useful variants:
Outputs are written to
output/safety_aware_sched/and include the full configuration, runtime environment, schedulability ratios, and NoDrop event residence-time statistics. The feature design and test plan for the contest submission are indocs/feature_design.mdanddocs/test_plan.md.