From AadlWiki

Jump to: navigation, search

The LYSIC team is pleased to announce its annual release of Cheddar.

Cheddar is a free 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 maintened by the LYSIC Team, University of Brest.

Cheddar is composed of two independent parts : an editor used to describe a real time application/system, and a framework. The editor allows you to describe systems composed of several processors which own tasks, shared resources, buffers and which exchange messages. The framework includes many feasibility tests and simulation tools. Feasibility tests can be applied to check that task response times are 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).

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

The current release is now 1.3p5. If you are a regular Cheddar's user, we strongly advice you to switch to the 1.3p5 release due to the 1.3p3 bugs that we fixed.

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

Thanks to H. Lapinoja, J. Legrand, T. Vergnaud, T. Ren, K. Bryan, C.P. Gloster, J. Stemerdink and F. R. De la Rocha for their help on this new release (tests, bug reports or new features)

1) Summary of features :

- Do scheduling simulations with classical real time schedulers

       (Rate Monotonic, Deadline Monotonic,
       Least Laxity First, Earliest Deadline
       First, POSIX queueing policies : SCHED_OTHERS,
       SCHED_FIFO and SCHED_RR) with
       different type of tasks (aperiodic, periodic, task
       activated with a poisson process law, ...)

- Extract information from scheduling simulation.

       (buffer utilization factor, task response times, task missed               deadlines,
       number of preemption, ...)

- Apply feasibility tests on tasks and buffers (without scheduling

       simulation) :
       - Compute task response time bounds.
       - Apply processor utilization tests.
       - Compute bound on buffer size (when buffers are shared by          periodic tasks)

- Shared resources support (scheduling and

       blocking time analysis).  Supported protocols : PIP, PCP.

- Tools to express and do simulations/feasibility tests with task

       precedencies :
       - Schedule tasks according to task precedencies
       - Compute Tindell end to end response time.
       - Apply Chetto and Blazewicz algorithms.

- Tools to run scheduling simulation in the case of

       multiprocessors systems

- Do simulation when tasks are randomly activated. - Can run scheduling simulation on user-defined scheduler

       and task arrival patterns.

- Run user-defined analysis on scheduling simulation. - ...

2) Most of new features provided by 1.3p5 :

     - Fix many bugs of the previous release (see BUGS file)
     - Add AADL import and export. This feature is based on
       the Ocarina AADL parser distributed by the ENST
               (F. Singhoff)
     - Perform several optimization in order to
       increase global performance.
       (ex : decrease memory footprint)
     - Add round robin and time sharing
       built-in schedulers (F. Singhoff)
     - Add FreeBsd Makefile.vars (C.P. Gloster)
     - Feasibility tests can be called by users
       processor by processor and feasibility
       test by feasibility test.
       (see customized feasibility tests)
               (F. Singhoff)
     - Refactoring of some basic widgets
               (H. Lapinoja, F. Singhoff)
     - Improve text displayed in the main root window
       when response time and
       feasibility tests are performed on a project
               (F. Singhoff)
     - Extend the data model of cheddar to include
         the abstraction of address spaces
               (F. Singhoff)
     - Some parametric variable can be set into the
         parametric code (F. Singhoff)
     - Provide extended buffer analysis tools :
         simulation and feasibility tests
         in cases of periodic and randomly
         activated tasks
               (J. Legrand, F. Singhoff)
     - Users can tune which events the simulator
       engine will generate at simulation time  (see                  Tools/Scheduling/Options)
       Warning : "task_activation" and "running_task"
         can not be ungenerated since they are
         needed by many analysis tools
               (F. Singhoff)

3) Work in progress  :

For the next year, we plan to improve the tool with the following features :

- Provide a global memory analysis (task stack, text/data segments ...) - Add Hierarchical schedulers support. - Update the graphical editor in order to take into

     account GtkAda 2.2

- Update the user's guide according to the new provided features - Improvement of message scheduling with :

       - End to end response time with message scheduling.
       - Allowing message sending at any time of a task
       - Providing a way to user-defined message
               delay communication by specification
               of user-defined message scheduling
                       (as user-defined scheduler)

- Fix a buggy service which should detect deadlock from simulation.

Feel free to contact us for help or bugs report.

Best Regards, The LYSIC team

Personal tools