A versatile framework for modeling and analyzing arbitrary online scheduling policies for real-time systems
Assuming that Python
is installed in the targeted machine, we can create a virtual environment for the project by running the following command:
python -m venv venv
To activate the virtual environment, run the following command:
source venv/bin/activate
To install the required packages, run the following command:
pip install -r requirements.txt
- A modern C++ compiler supporting the C++17 standard. Recent versions of
clang
andg++
on Linux is known to work. - The CMake build system. For install using
apt
(Ubuntu, Debian...):
sudo apt-get -y install cmake
- The Boost library. For install using
apt
(Ubuntu, Debian...):
sudo apt-get -y install libboost-dev
First, clone the repository and change the current directory to the cloned repository:
git clone https://github.com/porya-gohary/ReTA.git
cd ReTA
To compile the framework for the input codes written in ReDo DSL
, follow the instructions below:
Consider we want to compile the framework for the example code example1.redo
in the examples
directory. The following commands should be executed:
./compile.sh -i ./example/example1.redo
The compiled code will be generated in the build
directory. To run the compiled code, run the following command:
cd build
./reta
The options of the analysis are as follows (./reta -h
):
Usage: reta [OPTIONS]...
Options:
-l TIMEOUT, --time-limit=TIMEOUT
maximum CPU time allowed (in seconds, zero means no limit)
-n, --naive use the naive exploration method (default: false)
-r, --raw print output without formatting (default: false)
-o OUTPUTFILE, --output=OUTPUTFILE
name of the output file (default: out.csv)
-e VERBOSE, --verbose=VERBOSE
print log messages [0-5](default: 0)
-v, --version show program's version number and exit
-h, --help show this help message and exit
The output files are generated in the current directory. The output files are as follows:
out.csv
: The output file containing the response-times for each job.out.dot
: The output file containing the graph of the explored states.
With your feedback and conversation, you can assist me in developing this framework.
- Open pull request with improvements
- Discuss feedbacks and bugs in issues
Copyright © 2023 Pourya Gohari
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.