Announcement of a new release of Cheddar, a GPL real time scheduling analyzer/simulator 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.4. If you are a regular Cheddar's user, we advice you to switch to the 3.4 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.4) provides the following improvements: - Introduce the notion of "exection units" to increase flexibility when modeling task execution time. We now provide 3 models of capacity: the regular Lui & Layland one, one with a capacity ranging a BCET and a WCET and a third for mixed criticality scheduling (execution time varies between BCET and WCET+1). - Implement AMC anytime mixed criticality scheduling - Implement EDF Energy To time scheduling protocol - Implement TDMA protocol for Spacewire 1) Fix several bugs (see FIXED_BUG.pdf for details) see ticket list on the Cheddar wiki for the complete set of fixed bugs for this release 2) New CheddarADL features, scheduling or analysis methods - Add mixed criticality EDF-VD algorithm - Add mixed criticality SMC algorithm - Add mixed criticality AMC algorithm - Add DVFS and of the ability of a core to have a speed different from the default value of 1 - Add a scheduling option to discard jobs that missed their deadlines instead of keeping and trying to schedule them after their deadline 3) Few improvements on the GUI - When opening an architecture model, in case of error, Cheddar loops 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/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) - Ocarina (ISAE/Télécom-Paris Tech/ESA) - RAMSES (LTCI/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 Mixed-criticality scheduling : EDF-VD, AMC - With multiprocessor policies: global RM/DM/EDF/LLF/MUF, Proportionate Fair, EDZL, RUN, LLREF, with affinity - 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, both unicore and multicore). - With task jitters and offsets - With various task precedencies - With an energy consumption model and DVFS simulation - 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 - 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 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 - Rate Monotonic, Deadline Monotonic, Audsley task priority assignment - Task priority assignment according to CRPD - Shared resource ceiling priority assignement (for PCP like policies) - 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) Hai Nam Tran (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)