Cheddar is a free real time scheduling tool. Cheddar is designed
for checking task temporal constraints of a real time application/system.
Systems to analyze can be described with AADL
or with the Cheddar architecture design language.
It can help you for quick prototyping of real time schedulers.
It can also be used for educational purpose.
Cheddar is developed and maintened by a team composed of the
LISyC laboratory/Université de Bretagne Occidentale
and
Ellidiss Technologies.
Cheddar can be run as a STOOD
or as a TOPCASED plugin.
The interoperability of STOOD/TOPCASED/Cheddar is managed
by Pierre Dissaux (Ellidiss Technologies) .
More recently, the Ellidiss technologies
has also announced a new tool that embeddeds Cheddar : this new tool
is called 'AADLInspector' and is devoted to AADL model verifications. See
their web site for further details.
Cheddar relies on
Ocarina
to provide schedulability analysis of AADL models. The S3/Télécom-Paris-Tech team,
who is developing Ocarina, also uses the
Cheddar analyzer for different research projects and some tutorial/labs.
The two teams cooperate for
the development of AADL software engineering tools.
See "Example of uses" section for further details.
Our real time scheduling simulator
is composed of two independent parts : a graphical editor used to
describe a real time application/system, and a framework which includes
most of classical real time scheduling/feasibility algotithms/tests.
Cheddar is written in Ada. The graphical editor is made with GtkAda.
Cheddar runs on Solaris, Linux and
win32 boxes and should run on every GNAT/GtkAda supported platforms
(
see AdaCore web site for details).
Cheddar provides two kind of features : a simulation engine and feasibility tests.
Feasibility tests allow a user to study a real time application/system without computing
a scheduling. In the contrary, the simulation engine can be used firstly to computing a
scheduling and
secondly, to automatically looking for task constraint properties in the computed scheduling.
Most of the time, feasibility tests are less complex tools but they are available only for few
schedulers and tasks models.
To solve this problem, the Cheddar simulation engine
provides tools to design specific schedulers and task models : the
system is then analyzed according to a given scheduling.
For each analysis result, Cheddar gives the name of the applied equation and the related publication.
See the publications topic of this web page to get these publications.
The main features provided by Cheddar are then :
Features to do scheduling simulation with classical real time schedulers :
Rate Monotonic analysis (sometimes called RMA, RM or RMS ).
Earliest Deadline First (or EDF).
Deadline Monotonic (or DM, Inverse Deadline).
Least Laxity First (or LLF).
POSIX 1003b scheduling and queueing policies,
(SCHED_FIFO, SCHED_RR, SCHED_OTHERS).
From a scheduling simulation, much information on the studied real time system is
computed :
Worst/best/average blocking time,
Worst/best/average response time,
Number of preemptions, of context switches,
Deadlocks, priority inversions,
Missed deadlines,
...
...
Features to apply many feasibility tests in the preemptive case and in the non preemptive case :
Bound on Response times (with EDF, LLF, DM and RM).
Bound on Blocking times (with PCP, PIP or IPCP),
Feasibility tests based on the processor utilization factor (with EDF, LLF, RM and DM).
Support for cyclic and aperiodic tasks. Cyclic tasks can be periodic (with jitter
and deadline > period) or can be activated with a random poisson process distribution
(useful to model random aperiodic arrivals pattern).
Shared resource support (scheduling with shared resources and
blocking time analysis).
Supported protocols : PIP, PCP or IPCP
Tools to express precedencies and do scheduliing simulations and feasibility tests :
Tindell end to end response time computation (feasibility test).
Chetto and Blazewicz task parameter modification algorithms (feasibility test and scheduling simulation).
Scheduling simulation with task precedencies hosted by different processors.
Partitionning tools to assign tasks on muli-processors systems.
Tools to study task sharing buffers :
Feasibility test to compute bounds on buffers.
Scheduling simulation to buffer utilization factor analysis.
Scheduling simulation of applications distributed on several processor and sharing messages.
Support to design your own schedulers, task pattern arrivals and
event analyzers (event analyzers provide a way to express your own properties
that you want to check from a scheduling simulation).
...
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, ...).
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 aadl@ellidiss.fr 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
files.
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
1.3p5
09/11/2004 : new patch on 1.3 (see Last patch section). Current release is now
1.3p4
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
1.3p2
08/28/2003 : new patch on 1.3 (see Last patch section). Current release is now
1.3p1
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.
Cheddar is a free software under the GNU General Public License.
You can get
the current stable Cheddar source code
here .
Previous releases can be found
here .
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.
Please, contact us to get an account on this SVN repository.
On windows boxes, just unzip the zip file.
To install Cheddar on Unix boxes, you need
the GNU make command (gmake).
All necessary software used to compile or install Cheddar
can be found here.
3) Basic Unix Installation process :
For unix,
the simplest way to install this program is:
Edit the Makefile to give the name of the directory where cheddar must be
installed. To do this, update the CHEDDAR_ROOT variable.
If you do not change CHEDDAR_ROOT, Cheddar will be installed in
/usr/local
Type `gmake' to install the package.
Update your PATH and LD_LIBRARY_PATH variables (see the
HOWTO_INSTALL.txt file for more details).
We will release the next version of Cheddar on
September 2011 with the following features :
Continue to increase the part of the Cheddar automatically generated from its model/meta-model
with platypus. This work should increase Cheddar effiency and modularity.
Improve Hierarchical schedulers support.
Improve the user-defined scheduler services.
Update the graphical editor in order to take into
account GtkAda 2.10
Improvement of message scheduling with :
End to end response time with message scheduling.
Allowing message sending at any time of a task
capacity
Providing a way to user-defined message
delay communication by specification
of user-defined message scheduling
(as user-defined scheduler)
Provide a global memory analysis (task stack, text/data segments ...)
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 cheddar@listes.univ-brest.fr.
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 sympa@listes.univ-brest.fr
with the following text in the body :
SUBSCRIBE cheddar foo@bar.com
where foo@bar.com is your email adress.
To unsubscribe to the list : send a request to sympa@listes.univ-brest.fr
with the following text in the body :
A text book on Ada and real time scheduling analysis has been published
by Cambridge University press. This text book is Building Parallel, Embedded,
and Real-Time Applications with Ada. J. W. McCormick, F. Singhoff, J. Hugues.
Cambridge University Press, UK, 365 pages, July 2010.
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.
Investigating the usability of real-time scheduling theory with the Cheddar project.
F. Singhoff, A. Plantec, P. Dissaux and J. Legrand.
Journal of Real Time Systems,
volume 43, number 3, pages 259-295. November 2009. Springer Verlag. ISSN:0922-6443
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.
December 2004,
ISSN:1094-3641.
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,
November 2005,
ISSN:1094-3641.
Cheddar is developed and maintened by a team composed of members from the
LISyC laboratory/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 (LISyC/Université de Bretagne Occidentale),
Stéphane Rubini (LISyC/Université de Bretagne Occidentale)
and Frank Singhoff (LISyCUniversité de Bretagne Occidentale).
The project is sponsored/funded by Ellidiss Technologies and Conseil régional de Bretagne.
The Cheddar project was started in 2002 by Frank Singhoff,
LISyC Team,
University of Brest.
Since 2008, Ellidiss Technologies
also contributes to the development of
Cheddar and provides industrial support.
Researches on Cheddar are also conducted in collaboration with the following groups:
The following people have also contributed to the project:
M. Auer,
S. Bothorel,
M. Baert,
F. Charlet,
N. Chauvin,
R. Couillet,
V. Cuiec,
S. Demurget,
S. Edzang,
R. Frin,
H. Ihamouten,
D. Geffroy,
M. Gning,
W. Guillo,
S. Herry,
T. Huertas,
J. Hugues,
A. Huopana,
H. Lapinoja,
G. Laurens,
A. Le bot,
H. Martin,
L. Moal,
L. Morin,
C. Mouden,
P. Normand,
M. Nivala,
G. Oliva,
R. Prevot,
D. Saulnier,
M. Strauss,
E. Thomas,
N. Vienne,
E. Vilain,
and B. Zalila.
Thanks to people who sent us bug reports and/or advices :
B. Baron,
P. Mueller,
H. Bonnin,
T. Ren,
K. Bryan,
N. Hoogland,
V. Hugel,
J. Stemerdink,
T. Vergnaud,
F. Rodrigues de la Rocha,
G. Laurens,
V. Hugel,
C. Valle
Su Young Lee,
P. Wong,
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
cheddar@listes.univ-brest.fr (Warning : this is a private mailing-list. To post, you have
to subscribe to the mailing-list first).