The Cheddar project : a free real-time scheduling analyzer
In few words
Cheddar is a free real-time scheduling tool. Cheddar
allows you to model software architectures of real-time systems and to
check its schedulability or others performance criteria.
Systems to analyze can be modeled with
or with the Cheddar architecture design language.
Cheddar can also help you for quick prototyping of real time schedulers
or it can be used for educational purpose.
Cheddar is developed and maintened by a team composed of the
Lab-STICC laboratory UMR CNRS 6285 and Université de Bretagne Occidentale
The Cheddar project was started in 2002 by Frank Singhoff,
University of Brest.
Since 2008, Ellidiss Technologies
also contributes to the development of
Cheddar and provides industrial support.
Cheddar is composed of two independent parts : an editor used to
model the real-time system to analyze, and a framework to perform such analysis.
The editor allows you to describe systems composed of several cores, processors
which own tasks, shared resources, buffers and which may exchange messages or communication with buffers.
Cheddar includes its own ADL, namely Cheddar ADL.
However, Cheddar is also able to handle AADL models with a simple AADL parser but also with
a full compliant AADL V2 parsers thanks to is commercial version : AADLInspector.
The framework includes many feasibility tests and simulation tools.
The framework can be embbed in specific tool set such as STOOD (Ellidiss Tech),
TASTE (ESA) or AADLInspector (Ellidiss Tech).
can be applied to check that task deadlines can be met and that
buffers have bounded size.
When feasibility tests can not be applied, the studied application can
be analyzed with scheduling and buffer simulations.
Cheddar provides a way to quickly define "user-defined schedulers" to
model scheduling of ad-hoc applications/systems (ex : ARINC 653).
The main analysis tools of Cheddar are the following :
- Analysis with scheduling simulations :
- With preemptive and non preemptive scheduling policies
- With uniprocessor and multiprocessor scheduling policies
- With uniprocessor : Rate Monotonic, Deadline Monotonic,
Least Laxity First, Earliest Deadline
First, POSIX queueing policies (SCHED_OTHERS,
SCHED_FIFO and SCHED_RR) and many other uniprocessor policies
- With multiprocessor : Proportionate Fair, EDZL, RUN
- 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, sporadic server, polling server,
- With task jitters and offsets
- With various task precedencies
- 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, buffers and shares resources :
- 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
- Shared resources support (both scheduling simulation and
blocking time analysis). Supported protocols : PIP, OPCP, IPCP
- Tools to express and performa analysis with task dependencies :
- Model task transation (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.
- Task and resource priority assignment :
- Classical Rate Monotonic, Deadline Monotonic, Audsley task priority assignment
- Task priority assignment according to CRPD
- Shared resource ceiling priority assignement (for PCP like policies)
- Features to allow users to define and handle their own policies :
- 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 algorithms for periodic task set :
- Best fit policy
- General Task fit policy
- Fist fit policy
- Small fit policy
- Next fit policy
The picture below is a screenshot of Cheddar : on the top of the picture, scheduling is
drawn according to the scheduler of each processor. On the bottom,
some task information is provided (response times, missed deadlines, processor utilization factor, ...).
- 11/02/2015 : a new Cheddar's binary release is distributed (Release 3.0)
- 08/10/2011 : Announce of Ellidiss Technologies (From Pierre Dissaux).
Ellidiss announces the availability of their new product: AADL Inspector.
AADL Inspector is a light-weight standalone analysis tool for textual AADL specifications
It includes a set of static rules checkers, Cheddar for schedulability analysis and Marzhin for dynamic simulation.
Additional plug-ins can easily be added to fit corporate or project specific analysis requirements.
Please contact Ellidiss' technical support at email@example.com for further details about these extended capabilities.
AADL Inspector is available for download at: http://www.ellidiss.com/downloads.asp
and comes with a temporary evaluation license.
- 07/01/2008 : a new Cheddar's release is distributed (Release 2.1)
- 02/12/2007 : a new Cheddar's release is distributed (Release 2.0)
- 01/12/2007 : create a SVN repository for Cheddar (http://beru.univ-brest.fr/svn/CHEDDAR-2.0)
- 12/07/2005 : provides solaris binaries
- 11/17/2005 : fix the install Makefile and the INSTALL file to the
linux distribution. The current linux archive contains these updated
- 11/11/2005 : the gtkada compiled libraries are now include in the linux binaries distribution.
- 11/01/2005 : annual Cheddar's release. Current release is now
- 09/11/2004 : new patch on 1.3 (see Last patch section). Current release is now
- 09/08/2004 : a new Cheddar's release is distributed (1.3p3)
- 09/25/2003 : new version of the User's guide.
- 09/09/2003 : new patch on 1.3 (see Last patch section). Current release is now
- 08/28/2003 : new patch on 1.3 (see Last patch section). Current release is now
- 08/26/2003 : a new Cheddar's release is distributed (1.3p0)
- 07/03/2003 : a remote cvs access is now available. If you plan to write
code with Cheddar, contact us to get an account on this cvs repository.
- 05/31/2003 : create a Cheddar users and developpers mailing list and
provide dayly built cvs snapshot.
- 11/21/2002 : release of a new patch, see FIXED_BUGS.txt file for list of fixed bugs.
Current version is now Cheddar-1.2p1.
- 10/21/2002 : improve installation Makefile and online User's guide.
Download Cheddar binaries (current version is Cheddar-3.0, release date :
the 2nd of November 2015) :
Cheddar is a free software under the GNU General Public License.
You can get
the current stable Cheddar source code
Previous releases can be found
See the ChangesLog.pdf file to have history of modifications.
The file REQUESTED_FEATURES.pdf contains the
new features required by users and which will be implemented din the next releases.
You can also get access
to the SVN repository of Cheddar.
Cheddar is written in Ada, with GNAT and GtkAda Adacore products.
Cheddar is known to run on Linux and
windows boxes, but should run on every Adacore supported platforms
see AdaCore web site for details).
For installation procedures, please read
There is no binary patch currently distributed as all fixed bug are
integrated in the current binary release.
file to have the detailed list of fixed bugs.
The list of
the bugs to be fixed can be read there (file BUGS_TO_FIX.pdf).
Current developments on Cheddar are about the following topics:
- Cache analysis support.
- Global multiprocessor scheduling.
- NoC support.
- PAES implementation.
Cheddar users and developers can share information with
a mailing list hosted by the University of Brest.
To post to the list, send e-mail to firstname.lastname@example.org.
Warning : this is a private mailing-list (to post on this mailing-list, you have to be subscribed).
To subscribe to the list : send a request to email@example.com
with the following text in the body :
SUBSCRIBE cheddar firstname.lastname@example.org
where email@example.com is your email adress.
To unsubscribe to the list : send a request to firstname.lastname@example.org
with the following text in the body :
- A text book on Ada and real-time scheduling analysis published
by Cambridge University press : Building Parallel, Embedded,
and Real-Time Applications with Ada. J. W. McCormick, F. Singhoff, J. Hugues.
Cambridge University Press, UK, 365 pages, April 2011.
ISBN-13: 9780521197168. This book has several exercises on real-time
scheduling analysis with solutions computed by Cheddar. Exercises solutions of this
book are freely available from the Cambridge University Press website.
- The seminal publication of Cheddar :
Cheddar : a Flexible Real Time Scheduling Framework.
F. Singhoff, J. Legrand, L. Nana, L. Marcé.
ACM SIGAda Ada Letters,
volume 24, number 4, pages 1-8.
Edited by ACM Press, New York, USA.
About how to use Cheddar with AADL :
Scheduling and Memory requirement analysis with AADL.
F. Singhoff, J. Legrand, L. Nana, and L. Marcé.
ACM SIGAda Ada Letters, volume 25, number 4, pages 1-10.
Edited by ACM Press, New York, USA,
You may also be interested by the list of AADL properties to use with Cheddar :
The Cheddar AADL Property sets (Release 2.x).
LISyC technical report number singhoff-03-07.
Cheddar Release 3.x User's Guide.
Christian Fotsing, Frank Singhoff. Lab-STICC technical report number. July 2014.
- All the publications related to Cheddar :
can be downloaded here.
We distribute Cheddar with
a set of AADL and XML examples.
section also contains a set of contributions from Cheddar's users :
- The educational section contains a set of real time
scheduling course built with Cheddar.
- The examples of use section contains reports on performance
analysis realized with Cheddar.
- This section also provides tools developed by Cheddar's
Cheddar is developed and maintened by a team composed of members from the
Lab-STICC laboratory UMR CNRS 6285/Université de Bretagne
Occidentale and Ellidiss Technologies.
The current members of this project are
Pierre Dissaux (Ellidiss Technologies),
Jérôme Legrand (Ellidiss Technologies),
Alain Plantec (Lab-STICC/Université de Bretagne Occidentale),
Stéphane Rubini (Lab-STICC/Université de Bretagne Occidentale),
Jalil Boukhobza(Lab-STICC/Université de Bretagne Occidentale),
Laurent Lemarchand (Lab-STICC/Université de Bretagne Occidentale)
and Frank Singhoff (Lab-STICC/Université de Bretagne Occidentale).
The project has been funded by Ellidiss Technologies,
Conseil régional de Bretagne, UBO, BMO/Brest Métrople Océance, BPI France,
Conseil général du Finistère and EGIDE/Campus France PESSOA number 27380SA.
Researches on Cheddar are also performed in collaboration with the following partners:
The following people have also contributed to the project: see
Thanks to people who sent us bug reports and/or advices :
F. Rodrigues de la Rocha,
Su Young Lee,
and M. Zanconi, ...
For doing bug reports, fetching compilation instructions and developer documentations,
a work space is available for Cheddar software developers
on this wiki.
You can also report bugs and new tested platforms to
email@example.com (Warning : this is a private mailing-list. To post, you have
to subscribe to the mailing-list first).
Contact : Frank Singhoff mailto:firstname.lastname@example.org
Last update : November 2015