Skip to content

MATLAB & Simulink code of paper “Exploiting a Dual-Mode Strategy for Performance-Maximization and Resource-Efficient CPS Design”, EMSOFT, 2019.

Notifications You must be signed in to change notification settings

ReFLEX-Lab-York/dual-period

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dual-Period Task Scheduling

MATLAB/Simulink simulation of the paper 'Exploiting a Dual-Mode Strategy for Performance-Maximization and Resource-Efficient CPS Design'.

Requirements

  1. Install MATLAB (c) R2017a or later
  2. Install MinGW-w64 compiler (DO NOT include any space in the installation folder!)

Instructions

In MATLAB, config the mex compiler using the following commands:

setenv('MW_MINGW64_LOC',<MinGW installation folder>)
mex -setup C++

Edit & Run The Program

In MATLAB, Home -> Open -> 'path-to-repository'/main.c, then click Run on the top.

Project Structure

  • /afbs-kernel: the scheduler for Simulink
  • /analysis: scripts for analysis results and ploting figures in reports
  • /experiments: early experiments
  • /result: folder for saving experiment result data
  • /tasksets: everything related to taksets
  • /tasksets/UUnifast.m: UUnifast synthetic task generator
  • main_ga.m: implementations of genetic algorithms
  • main_random.m: implementations of random search
  • main_cost_space.m: evaluate the cost space
  • main_single_period_brute.m: solve the optimal single period using brute force
  • main_task_allocation_greedy.m: allocation additional tasks to a non-control taskset
  • run_single_simulation: single run of one instance
  • rta.py: response time analysis of dual period (in Python)
  • .slx: Simulink model files

Known Issues

  • EDF policy is not implemented
  • There is a limitation on the simulation time (as kernel_cnt is long)
  • For DUAL, control tasks have to be the highest priorities
  • For DUAL, the deadline is not equal to DUAL
  • For DUAL, the switching back too T_i^H is not implemented
  • For DUAL, the switch will be deferred to the next release

Citation

@article{dai2019dual,
  title={A dual-mode strategy for performance-maximisation and resource-efficient CPS design},
  author={Dai, Xiaotian and Chang, Wanli and Zhao, Shuai and Burns, Alan},
  journal={ACM Transactions on Embedded Computing Systems (TECS)},
  volume={18},
  number={5s},
  pages={1--20},
  year={2019},
  publisher={ACM New York, NY, USA}
}

About

MATLAB & Simulink code of paper “Exploiting a Dual-Mode Strategy for Performance-Maximization and Resource-Efficient CPS Design”, EMSOFT, 2019.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • MATLAB 51.3%
  • C++ 42.6%
  • Python 4.8%
  • C 1.3%