Skip to content

Supplementary source code for the ECRTS 2022 paper 'Unikernel-Based Real-Time Virtualization under Deferrable Servers: Analysis and Realization'

License

Notifications You must be signed in to change notification settings

tu-dortmund-ls12-rt/unikernel-based_deferrable_server_analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unikernel-based Deferrable Server Analysis

The repository on Github is used to reproduce the evaluation from

Unikernel-Based Real-Time Virtualization under Deferrable Servers: Analysis and Realization

for ECRTS 2022. This document is explaining how to use the artifact to repeat the experiments presented in the paper, i.e., Section 6.1. Due to the nature of a close-source project with the company, i.e., EMVICORE GmbH, the source code of the case study in Section 6.2 is not included in this artifact. Please cite the above paper when reporting, reproducing or extending the results.

The rest of the document is organized as follows:

  1. Environment Setup
  2. How to run the experiments
  3. Overview of the corresponding functions
  4. Miscellaneous

Environment Setup

Requirements

Some common software should be installed:

sudo apt-get install software-properties-common git python3.9

If the installation of Python3.9 doesn't work, likely you need to add deadsnakes PPA beforehand as it is not available on universe repo:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update

To run the experiments Python 3.9 is required (another version of Python 3 might also work). Moreover, the following packages are required:

getopt
math
matplotlib
multiprocessing
numpy
os
pickle
random
statistics
sys

Assuming that Python 3.9 is installed in the targeted machine, to install the required packages:

pip3 install matplotlib numpy

or

python3.9 -m pip install matplotlib numpy

In case any dependent packages are missing, please install them accordingly.

According to the feedback of one reviewer, Python 3.10 might not require all dependncies listed above.

File Structure

.
├── res                     # Resource packages
│   ├── benchmark.py        # Server and task creation
│   ├── our_analysis.py     # Our analysis
│   ├── plot.py             # Plotting functionality
│   └── rtc_cb.py           # RTC-based analysis	
├── data                    # Evaluation data
│   ├── 1setup              # Server and task specification
│   ├── 2results            # Evaluation results
│   └── 3plots              # Plots to present the results
├── main.py                 # Main function of the evaluation
├── auto.sh                 # bash-script to automize the evaluation
└── README.md

Note that the source code of the case study part (Section 6.2) is contributed by a close-source project, so it is excluded from this repository. Please contact the company, i.e., EMVICORE GmbH for further information.

Deployment

The following steps explain how to deploy this framework on a common PC:

First, clone the git repository or download the zip file:

git clone https://github.com/tu-dortmund-ls12-rt/unikernel-based_deferrable_server_analysis.git

Move into the extracted/cloned folder, change the permissions of the script to be executable, and execute auto.sh natively:

cd unikernel-based_deferrable_server_analysis
chmod 777 auto.sh
./auto.sh

How to run the experiments

  • To reproduce Figure 6 and 7 in the paper, auto.sh should be executed.
  • The plotted figures can be found in the folder data/3plots:
Paper figure Plot in data/3plots
Fig. 6 'plot2_num_servers_combined_util_servers=[0.1, 0.4].pdf'
Fig. 7 'plot3_num_servers=[10, 100]_util_servers_combined.pdf'

As a reference, we utilize a machine running Archlinux 5.17.3-arch1-1 x86_64 GNU/Linux,with i7-10610U CPU and 16 GB main memory. It takes about 170 seconds with this machine to obtain these two figures, when set num_processors = 5 in main.py

Overview of the corresponding functions

The following tables describe the mapping between content of our paper and the source code in this repository.

Section 4.1 (RTC-based analysis):

On Paper Source code
Theorem 4 rtc_cb.wcrt_analysis_single()

Section 4.2 (Our Analysis for Sporadic Tasks):

On Paper Source code
Theorem 7 our_analysis.wcrt_analysis_single()

Miscellaneous

Authors

  • Kuan-Hsun Chen (University of Twente)
  • Mario Günzel (TU Dortmund University)
  • Boguslaw Jablkowski (EMVICORE GmbH)
  • Markus Buschhoff (EMVICORE GmbH)
  • Jian-Jia Chen (TU Dortmund University)

Acknowledgments

This work has been supported by European Research Council (ERC) Consolidator Award 2019, as part of PropRT (Number 865170), and by Deutsche Forschungsgemeinschaft (DFG), as part of Sus-Aware (Project no. 398602212).

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

About

Supplementary source code for the ECRTS 2022 paper 'Unikernel-Based Real-Time Virtualization under Deferrable Servers: Analysis and Realization'

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published