[aadl]: Ann. of a new release of Cheddar, a GPL real time scheduling analyzer
frank singhoff
singhoff at univ-brest.fr
Thu Jul 23 05:12:47 EDT 2020
We are pleased to announce a new release of Cheddar.
Cheddar is a GPL real time scheduling tool. Cheddar is designed for
checking task temporal constraints and buffer sizes of a real time
application/system.
It can also help you for quick prototyping of real time schedulers.
Finally, it can be used for educational purposes.
Cheddar is developed and maintained by the Lab-STICC Team,
University of Brest.
Since 2008, Ellidiss Technologies also contributes to the development of
Cheddar and provides industrial support.
Cheddar is written in Ada and runs on Linux and win boxes.
Thanks to contributors of this release (see AUTHORS.txt for the list of
the contributors).
The current release is now 3.2. If you are a regular Cheddar's user, we
advice you to switch
to the 3.2 release. See "ChangesLog.pdf" and "FIXED_BUGS.pdf" files for
more information.
1) Summary of the new features for this release
-----------------------------------------------
The new release (aka Cheddar-3.2) provides the following improvements:
1) Fix several bugs (see FIXED_BUG.pdf for details) such as :
- Cheddar does not work when When_Resource was false
- XML event table printer was slow ; use streams instead
- Speed attribute of core units now scale task execution time
...
2) New GUI features
- Scheduling GANTT display now provides a zoom feature and processor
may have different speed, that may help to display large scheduling
sequences
- Model name is now displayed in the main window
3) New features to connect Cheddar with other tools
- Java binding of Cheddar ADL : it is now possible to write Java
programs to generate Cheddar XML model files, in order to call Cheddar
from any Java program
(e.g. Eclipse plugin or standalone program). This Java binding is fully
synchronized with CheddarADL updates thanks to Platypus code generators
- Eclipse Plug-in to analyze AADL models from OSATE2
4) New analysis features:
- Scheduling simulation feature for SDF
- New feasibility interval subprograms implementation : should now be
compliant with most of the task models existing in Cheddar
- New processor demand function feasibility tests
- New schedulers : DAG HLFET scheduler, EDH (energy oriented
scheduler), LLREF
- Add MILS implementation and partitionning technics : to model and
veriy security aspects of MILS architecture combined with Cheddar ARINC
653 modeling/analysis features
- Add NoC communication analysis:
- Provide a new protocol to simulate message exchanges
- Provide a transformation method to analyze NoC communications
as a DAG scheduling problem
- Add Spacewire communication analysis feature : to analyze them as a
DAG of tasks
- Add packages to manage Design patterns for multiprocessors/multicores:
- prolog_printer : prints a prolog representation of Cheddar
ADL models
- feasibility test repository : package which describes all
feasibility tests
implemented into the Cheddar framework
- Memory bank interference analysis for DRAM components. A Kalray
schedulability analysis is under
development.
5) Cheddar ADL improvements:
- Extend the concept of network
- Add concept of battery and memory units
- Implement a new dependency type : Remote Procedure Call
- Add various attribute on existing entities in order to implement
new analysis features
6) Update of the compilation and running environment
- Docker scripts are now available to compile and run Cheddar kernel
- Cheddar binaries compilation process has been organized in 3 clear
set of binaries : ellidiss, open source public distribution and examples
for research activities
- Cheddar sourcecode has been updated to be compiled with GNAT 2014
on windows, linux 64 and linux 32
- Cheddar kernel sourcecode has been updated to be compiled with GNAT
2019 on windows 64, linux 64 and linux 32
2) License and web site
-----------------------
Cheddar is distributed under the GNU GPL license.
It's a free software, and you are welcome to redistribute it under
certain conditions;
See the GNU General Public License for details.
Source code, binaries and documentations can be freely downloaded from
http://beru.univ-brest.fr/~singhoff/cheddar
3) Main Cheddar features
----------------------------------
Cheddar is composed of two independent parts : an editor used to
describe a real-time system, and an analysis framework.
The analysis framework includes many feasibility tests and simulation
features (see below).
The editor allows you to describe systems composed of several cores,
processors, caches, memory and energy units which own tasks, shared
resources, buffers, address spaces/partitiosn, which may exchange
messages or communication with buffers. Cheddar includes its own ADL,
namely Cheddar ADL, to describe such architecture.
Cheddar is also able to handle AADL models with
a full compliant AADL V2 parsers by the Ellidiss commercial product
AADLInspector.
CheddarKernel, the Elllidiss commercial version of Cheddar, is embedded
into
AADLInspector and maintained by Ellidiss.
The analysis framework is embedded in the following tool set:
- STOOD and AADLInspector (Ellidiss Tech)
- TASTE (European Space Agency)
- OSATE2 (SEI/CMU)
- RAMSES (Télécom Paris Tech)
- PPOOA (ETS Ingenieros Industriales)
- MOSART (LIAS/ENSMA) and Polarsys Time4sys framework
The main provided analysis tools are:
- Do scheduling simulations
- With preemptive and non preemptive scheduling policies
- With uniprocessor, Multiprocessor and hierarchical scheduling
policies
- With usual uniprocessor : RM, DM, LLF, EDF, POSIX queue policies
(SCHED_RR/FIFO/OTHER),
EDH, MUF, Round-Robin, D-over, time sharing policies, HLFET/DAG
- With hierachical scheduling policies: ARINC 653, aperiodic
servers (sporadic, deferable, polling,
priority exchange), Round robin
- With multiprocessor policies: global RM/DM/EDF/LLF/MUF,
Proportionate Fair, EDZL, RUN, LLREF
- With instruction cache entities
- With different type of tasks : aperiodic, periodic, task
activated with a poisson process, ...
- With shared resources (and with FIFO, PCP, PIP, IPCP
synchronization protocols)
- Several hierarchical schedulers (such as ARINC 653 scheduling).
- With task jitters and offsets
- With various task precedencies
- With an energy consumption model
- Extract information from scheduling simulation, such as
- Worst/best/average task response times, task missed deadlines
- Number of preemption, number of context switch
- Worst/best/average shared resource blocking time
- Deadlock and priority inversion
- Worst/average buffer utilization factor, message worst/average
waiting time
- Apply feasibility tests on tasks and buffers
- Compute worst case task response time on periodic task set
- Several methods to compute worst case response time with linear
and tree transaction
- Apply processor utilization feasibility tests.
- Compute bound on buffer size (when buffers are shared by
periodic tasks)
- Worst case shared resource blocking time
- Memory footprint of software entities
- Apply feasibility tests based on demand function.
- Schedulability with models of hardware components
- NoC and spacewire communication delays analysis
- Memory interferences (DRAM)
- CRPD analysis, L1 instruction cache interference
- Algorithms to assign priorities
- Classical Rate Monotonic and Deadline Monotonic
- Audsley algorithms
- Priority assigned according to CRPD
- Ceiling priority for shared resources
- Shared resources support (both scheduling simulation and
blocking time analysis). Supported protocols : PIP, PCP, IPCP
- Tools to express and perform analysis with task dependencies :
- Model task transaction (linear or tree) and compute worst
case response time
- Scheduling simulation tasks according to task precedencies
- Compute Tindell Holistic end to end response time.
- Apply Chetto and Blazewicz algorithms.
- Cheddar provides a way to quickly define user-defined schedulers to
model specific scheduling of ad-hoc applications/systems (ex : ARINC 653)
- User-defined scheduling policies (based on pipeline models or
automaton models)
- User-defined task model policies, to express and handle specific
task activation policies
- User-defined analysis on scheduling simulation, to look for
specific properties on
scheduling simulation result
- Partitionning tools for periodic task set
- Provide basic policies such as : Best fit, General Task fit,
Fist fit, Small fit and Next fit.
- Implementation of the PAES meta-heuristic to allow Cheddar
users to compute Pareto Front. Such
a Meta-Heuristic has been used to 1) compute partitionning of
MILS architecture with objective
functions to minimize missed deadlines and maximize security
properties 2) assign a set of functions
to a set of tasks with objective function to minimize the
number of preemptions and minimiz missed
deadlines.
Best Regards
Stéphane Rubini (Lab-STICC, University of Brest)
Jerome Legrand (Ellidiss Technologies)
Nam Tran Hai (Lab-STICC, University of Brest)
Alain Plantec (Lab-STICC, University of Brest)
Laurent Lemarchand (Lab-STICC, University of Brest)
Valérie Anne Nicolas (Lab-STICC, University of Brest)
Pierre Dissaux (Ellidiss Technologies)
Frank Singhoff (Lab-STICC, University of Brest)
More information about the sae-aadl-users
mailing list