Coder Social home page Coder Social logo

bottcode / evaluating-a-multicore-mixed-criticality-system-implementation-against-a-temporal-isolation-kernel Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 1.0 49.15 MB

License: GNU General Public License v3.0

Shell 5.92% Tcl 24.00% Ada 8.89% C 4.92% Makefile 1.39% Python 54.87%

evaluating-a-multicore-mixed-criticality-system-implementation-against-a-temporal-isolation-kernel's Introduction

Evaluating a multicore Mixed-Criticality System implementation against a temporal isolation kernel

This repository is the main reference for the article that Professor T. Vardanega and I published with the above title: https://doi.org/10.1016/j.sysarc.2022.102688

The role of this repository is:

  • contain and execute some bash scripts that allow you to configure and execute python scripts correctly
    • actually, the configuration is badly splitted into two different files (the aforementioned one and this one). Read the disclaimer below.
  • aggregate two more repositories
    • the former contains the Ada runtime environment implementing the semi-partitioned model by Xu & Burns.
    • the latter contains some python scripts implementing the schedulability analysis (both for the RTE Platform and TSP Platform), synthetic tasksets generation (both for RTE Platform and TSP Platform) and storing the interesting Ada tasksets to be executed on the RTE Platform. Such tasksets are saved in XML format too.
  • contains some python scripts that implement off-line data analysis resulting from real executions on the target HW.

Executing Ada application targetting RTEMS over XtratuM

If you want to execute Ada tasksets on the TSP Platform, you need to install both XtratuM 2.0.5 and RTEMS 4.9 (including its toolchain to compile Ada programs targetting RTEMS) targetting XtratuM itself. XtratuM is open-source, but you need to contact the FentISS team if you want to get it. You also need a Board Support Package (BSP) in order to execute RTEMS over XtratuM. FentISS has developed one for their applications, but you need to ask them if they are willing to share it with you.

Collecting data coming from the target HW to the host

The transition between automatic execution of Ada applications and analysis of log data is not automated. Before running the bash script, be sure that you have properly opened a terminal monitor (such as cutecom or HTerm) and connected to the target.

Requirements

First of all, check each submodules' requirements.

Then, for RTA and tasksets generation, you need:

  1. Ubuntu (any Linux distro should be Ok)
  2. Python3
  3. pip3
  4. git (>= 2)

For the RTE Platform, you need:

  1. ... work in progress

How to use the whole infrastructure

If you have not already, read the disclaimer below. Really.

This section is still work in progress. Meanwhile, read the disclaimer below ๐Ÿ™ƒ

In a nutshell

  1. git clone https://github.com/BottCode/Evaluating-a-multicore-Mixed-Criticality-System-implementation-against-a-temporal-isolation-kernel.git
  2. cd Evaluating-a-multicore-Mixed-Criticality-System-implementation-against-a-temporal-isolation-kernel/
  3. sh setup_local_repo.sh
  4. sh execute_comparison_xuburns.sh

1. Repo configuration

You need various git submodules and python modules. Before to use this infrastructure:

  1. execute sh setup_local_repo.sh

This script will set-up you repository.

2. Configuration

You can manipulate the input data via the configuration.ini file. The following is an explanation for each file section.

[Experiments]

In this section you can choose which experiments you want to execute. Use yes to execute an experiment. For instance, the following configuration executes only experiments 1, 3 and 4.

exp_1 = yes
exp_2 = no
exp_3 = yes
exp_4 = yes

[Tasksets for each UL]

This parameter is across all experiments.

In this section you can set how many tasksets to generate for each utilization level (see next section). We call this number $n$. For instance, if your utilizations range is $[1.6, 1.648]$ stepping $0.012$, you have $(1.648-1.6) / 0.012 = 4$ utilizations levels (${1.6, 1.612, 1.624, 1.636, 1.648}$). If you set $n=10$, then you will generate $4 * 10=40$ tasksets.

n = 10

[Utilization Levels]

This parameter is across all experiments.

In this section you can set the utilizations range (explained above) you want to explore. For instance, the following configuration sets $[1.11, 1.875]$ range stepping $0.012$. This range is

lower_bound = 1.11
upper_bound = 1.875
step        = 0.012

[Criticality Factor Levels]

This parameter is for experiment 2

In this section you can set the criticality factors range you want to explore. You can set this range as explained above. For instance, the following configuration generates $n$ tasksets for each criticality factor level in ${1.5, 1.75, 2, 2.25, 2.5, 2.75, 3, 3.25, 3.5, 3.75, 4}$.

lower_bound = 1.5
upper_bound = 4
step        = 0.25

Please Note: the criticality factor concept does not apply to a tasksets thought for the TSP approach, since a (TSP) task can have only one criticality level.

[HI-crit Proportion Levels]

This parameter is for experiment 3

In this section you can set the HI-crit proportions range you want to explore. You can set this range as explained above. For instance, the following configuration generates $n$ tasksets for each HI-crit proportion level in ${0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8}$.

lower_bound = 0.2
upper_bound = 0.8
step        = 0.1

[Tasksets Size]

This parameter is for experiment 4

In this section you can set the tasksets cardinality. For instance, the following configuration generates $n$ tasksets for each taskset cardinality in ${15, 20, 25, 30, 35}$.

size_list = 15, 20, 25, 30, 35

[Per-tasks utilization range]

This parameter is across all experiments.

In this section you can set the Per-tasks nominal utilization range.

lower_bound = 0.048
upper_bound = 0.6

3. Schedulability Analysis and tasksets generation

After the previous configuration setting:

  1. execute sh execute_comparison_xuburns.sh

This script will execute the experiments specified into the configuration file and (incrementally) plot the results.

Execution on real target

Off-line data analysis

Disclaimer

This work is a continuation of my master's thesis work in Computer Science at the University of Padua. In the rush to get my degree, a lot of the code I wrote (system configuration, taskset generation, schedulability analysis, and off-line data analysis) is really ugly ๐Ÿ˜ญ. Some things Iโ€™m ashamed of, but I think youโ€™ll understand. I decided to publish the source code of my work anyway, both to facilitate any subsequent work to mine and because there may be someone in the community who one day decides to re-engineer the source code.

evaluating-a-multicore-mixed-criticality-system-implementation-against-a-temporal-isolation-kernel's People

Contributors

bottcode avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

jm-wu-bit

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.