Skip to content
Snippets Groups Projects
Select Git revision
  • main default protected
  • rosification
  • refactoring
  • pp
  • mpc
  • realtimelogplotter
  • alv
  • gitlab_ci_podman
  • restructuring
  • viz_fix
10 results

ur_simple_control

  • Clone with SSH
  • Clone with HTTPS
  • Name Last commit Last update
    code
    results
    README.md

    Schedule Randomization Repo

    Authors

    The owner (and main contributor) of this repo: Nils Vreman.
    Collaborators: Richard Pates, Kristin Krüger, Gerhard Fohler, Martina Maggio.

    Running tests

    Packages

    To be able to run this benchmark test, aside from python3.6, two packages are needed:

    1. numpy
    2. ortools

    These packages can easily be installed with the commands:

    pip3 install numpy
    pip3 install ortools

    Execution

    After installing necessary packages, the benchmark test could be executed using the Makefile placed in the Code directory. It will create a directory called "data" containing all the results and corresponding tasksets. The class FileSystemManager is then used to access the results.

    Navigation

    Code

    In the Code directory you will find the code used to implement the algorithm explained in the paper: Minimizing Side-Channel Attack Vulnerability via Schedule Randomization

    The code is implemented in Python 3.6 using Google OR-tools toolbox for constraint optimization. Down below, some of the most important classes are summarized in a table.

    Class name File name Responsibility
    ConstraintBuilder constraintBuilder.py The optimizer class. Generates a set of schedules based on the parameters of the taskset passed to the class.
    Taskset taskset.py Code representation of a taskset. Includes functions to compute utilization, optimal number of schedules, and hyperperiod.
    Schedule schedule.py Code representation of a schedule. Includes function to check for validity.
    • The Benchmark tests used to produce the results in the paper can be run using the Makefile presented in the Code directory. It generates tasksets, stores them as well as their solution in a separate directory (named "data"). The class FileSystemManager can then be used to access the solution.
    • The format of which the result pdf (see Results) needs the data is generated through the generate_result_file.py script.

    Results

    In the Results directory, the results generated by our benchmark can be found. Each page in the pdf-file contains the results from the experiments performed on a certain maximum hyperperiod (written as a title in the top left corner of each side). Each figure then represents a specific number of tasks in each taskset of that experiment. The results written in red boxes is the accuracy of the algorithm, i.e., for how large fraction of the tasksets our algorithm found an optimal schedule set within 60 minutes. This is also summarized in the table below.

    n\l 100 200 300 400 500
    2 100.0 99.9 100.0 100.0 100.0
    3 100.0 96.9 92.1 85.9 82.4
    4 99.7 90.5 80.3 70.8 66.7
    5 97.4 81.0 69.7 61.7 52.5
    6 95.2 76.6 58.4 52.6 44.6
    7 92.8 70.9 56.9 45.2 38.4
    8 89.5 67.3 47.2 39.3 31.8
    9 89.0 62.5 45.5 37.1 28.7
    10 88.0 59.4 38.7 32.4 24.7

    Comments

    For comments or questions, please send an e-mail to x.x@control.lth.se.