The Cheddar project : a free real time scheduling analyzer
English version
Version Française
Cheddar is a free real time scheduling tool. Cheddar is designed
for checking task temporal constraints of a real time application/system.
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 the
LISYC Team,
University of Brest.
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 feasisibility 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, LL, DM and RM).
- Bound on Blocking times (with PCP and PIP),
- 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.
- 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 level, ...).
- 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 BUGS 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-1.3p5, release date :
November the 1st, 2005) :
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 ChangesLog to have history of modifications.
You can also access to a dayly built
cvs snapshot of Cheddar.
Source code and binaries you get from there are not stable : use them with care.
Finally, a remote cvs access is also available. If you plan to write
code with Cheddar, contact us to get an account on this cvs repository.
1) Tested platforms :
Cheddar runs on :
- Linux Redhat (6.1, 6.2, 7.1 and 9.1).
- Sparc/Solaris 2.7, 2.8 and 2.9.
- Windows Me, 95, 98, 2000, NT4 and XP.
- Cheddar should work on all GNAT/GtkAda supported platforms.
2) What do you need ?
On windows boxes, just unzip the zip file.
To install Cheddar on Unix boxes, you need :
- The GNU make command (gmake).
-
Gtk and GtkAda librairies
must be installed on your
system (GtkAda is the Ada binding of Gtk).
You need Gtk 1.2 or laters and GtkAda 1.2.20 or laters.
All necessary software used to compile or install Cheddar
can be found here.
3) Basic Installation :
For unix,
the simpliest 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.
- Play and have fun.
There is nos patch currently distributed...
See the
BUGS
file to have the detailed list of fixed bugs.
We will release the next version of Cheddar on
September/november 2006 with the following features :
- Update user's guide according to features related to buffer
analysis and task precedencies tools.
- Update the graphical editor in order to switch from GtkAda 1.2 towards
GtkAda 2.x
- Hierarchical schedulers support.
- Provide a global memory analysis (task stack, text/data segments ...)
- End to end response time with message scheduling.
- User's defined message scheduler.
- Improvement of message scheduling with :
- 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)
- Fixing a buggy service which should detect deadlock from simulation.
Cheddar users and developers can now 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 : to post on this 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 the requester.
To unsubscribe to the list : send a request to sympa@listes.univ-brest.fr
with the following text in the body :
SIGNOFF cheddar
-
Cheddar : a Flexible Real Time Scheduling Framework.
F. Singhoff, J. Legrand, L. Nana, L. Marcé.
ACM Ada Letters journal, 24(4):1-8, ACM Press.
Also published in the proceedings of the
ACM SIGADA International Conference, Atlanta, 15-18 November, 2004.
-
Cheddar User's Guide.
Frank Singhoff, Jérôme Legrand.
EA 2215 Technical report number singhoff-01-2003, September 2003.
- The Cheddar FAQ.
- Framework User's guide.
Jérôme Legrand,
Frank Singhoff.
EA 2215 Technical report number legrand-01-2004, July 2004.
- All the publications used by Cheddar to compute and analyse a real time
system can be downloaded here.
-
AADL resource requirements anaysis with Cheddar.
F. Singhoff, J. Legrand, L. Nana. SAE AADL working group meeting. 19-21 october
2005.
-
Scheduling and Memory requirement analysis with AADL.
F. Singhoff, J. Legrand, L. Nana, and L. Marcé. November 2005, Atlanta. Proceedings of the ACM SIGADA International Conference.
-
Performance Analysis of Buffers Shared by Independent Periodic Tasks.
J. Legrand, F. Singhoff, L. Nana, L. Marcé.
LISYC Technical report number legrand-02-2004
January 2004.
-
Extending Rate Monotonic Analysis when Tasks Share Buffers.
F. Singhoff, J. Legrand, L. Nana, L. Marcé. Nice, 28-30 July, 2004, In the DAta Systems in Aerospace Conference (DASIA 2004), ESA Publication Division.
-
About Bounds of Buffers Shared by
Periodic Tasks : the IRMA project. Jérôme Legrand, Frank Singhoff, Laurent
Nana, Lionel Marcé, François Dupont and Hisham Hafidi.
In the 15th Euromicro International Conference of Real Time Systems,
WIP Session.
-
Analyse de tampons partagés par des tâches périodiques et indépendantes.
J. Legrand, F. Singhoff, L. Nana, L. Marcé.
LISYC Technical report number legrand-01-2005.
January 2005.
-
Faisabilité d'une application de supervision : le projet IRMA.
Jérôme Legrand, Frank Singhoff, Laurent Nana, Lionel Marcé, François Dupont et Hisham Hafidi. RTS'03, Paris,
Avril 2003.
- Un éditeur graphique pour Cheddar.
W. Guillo, S. Herry, P. Normand, G. Oliva, R. Prevot.
Rapport de stage de Licence informatique. Brest, Septembre 2002.
-
Implantation du calcul de temps de réponse.
L. Morin.
Rapport de stage de DESS, Mars 2003.
-
Tests de faisabilité basés sur le taux d'occupation CPU des
principaux algorithmes d'ordonnancement temps réel
H. Martin, S. Bothorel.
Rapport de travail d'étude et de rercherche, Mars 2004.
This section is dedicated for teachers who plan to use
Cheddar for their Real time scheduling courses. You can find here
some examples of real time scheduling courses which are built with
the help of Cheddar :
This program is developed and maintened by the
LISYC Team,
mainly by
Frank Singhoff.
The following people have also contributed to the project:
M. Auer,
N. Chauvin,
V. Cuiec,
S. Bothorel,
S. Demurget,
R. Frin,
H. Ihamouten,
D. Geffroy,
M. Gning,
W. Guillo,
S. Herry,
T. Huertas,
A. Huopana,
A. Le bot,
J. Legrand,
H. Martin,
L. Moal,
L. Morin,
L. Nana,
M. Nivala,
P. Normand,
G. Oliva,
R. Prevot,
D. Saulnier,
E. Thomas,
E. Vilain.
Thanks to people who sent us bug reports and/or advices :
Bert Baron,
Peter Mueller,
Hugues Bonnin,
Tim Ren,
Kevin Bryan,
Nick Hoogland,
Jan Stemerdink,
Thomas Vergnaud,
Fabio Rodrigues de la Rocha ...
Please, report bugs and new tested platforms to
cheddar@listes.univ-brest.fr (Warning : to post, you have
to subscribe to the list).
You are using Cheddar ? If so, please, let us know
why you are using it (study of real time applications, educational
purposes, prototyping of schedulers, ...) and what kind
of features you would like to see in this program.
Users can contact us with
cheddar@listes.univ-brest.fr (Warning : to post, you have
to subscribe to the list).
Thanks for all people who sent us comments, bugs and advices.
EA LISYC Team
(cheddar@listes.univ-brest.fr)
Last updated : October the 31th 2005.