Cheddar : un simulateur d'ordonnanceurs temps réel
English version
Version Française
Cheddar est un outil de simulation permettant de calculer
différents critères de performance
(contraintes temporelles, dimensionnement de ressources).
L'outil permet, entre autre, de tester le respect des contraintes
temporelles d'un jeu de tâches modélisant une application/un système
temps réel.
Cet outil a initialement été écrit dans un but pédagogique, mais
il peut néanmoins, dans une certaine mesure, aider les
personnes qui étudient/conçoivent des algorithmes d'ordonnancement
temps réel ou qui souhaitent étudier
les contraintes temporelles d'une application
temps réel simple.
Cheddar est maintenu par une équipe mixte constituée du
Laboratoire LISyC
de l'Université de Bretagne Occidentale
et d' Ellidiss Technologies .
Cheddar peut être employé comme plug-in
avec STOOD
ou avec TOPCASED.
L'interopérabilité de Cheddar avec ces outils de modélisation
est géré par
Pierre Dissaux (Ellidiss Technologies) .
Par ailleurs,
Ellidiss Technologies propose un support industriel pour Cheddar.
Plus récemment, Ellidiss Technologies a annoncé la mise sur le marché d'un nouvel outil
dédié à la vérification d'architecture AADL et incluant Cheddar : il s'agit
de l'outil 'AADLInspector' (cf. leur site web).
Cheddar exploite
Ocarina
pour l'analyse de performance de modèle AADL.
Ocarina est un compilateur AADL développé par l'équipe S3/Télécom-Paris-Tech.
Les deux équipes collaborent régulièrement afin de prototyper divers outils AADL
(cf. partie "Exemples d'utilisation" pour de plus amples informations).
Cheddar est principalement constitué de deux composants
logiciels :
- Un éditeur qui permet à l'utilisateur de
décrire l'application à analyser et sur lequel, les résultats
de simulation seront présentés.
- Une bibliothèque comportant les principaux résultats
de la théorie de l'ordonnancement temps réel ainsi que quelques
outils de files d'attente.
Cheddar est écrit en Ada (l'interface graphique est basée sur
GtkAda). L'outil a été testé sur Linux, Windows et Solaris
mais devrait fonctionner sur toutes les plates-formes
supportées par GNAT
(voir le site web d'AdaCore).
Cheddar offre deux types de fonctionnalité : un environnement de simulation
et des tests de faisabilité.
Les tests de faisabilité permettent à l'utilisateur
de vérifier si les contraintes temporelles d'une application sont respectées sans
pour autant calculer une simulation de l'ordonnancement.
L'environnement de simulation quant à lui, effectue une analyse d'un ordonnancement
précédemment calculé. L'environnement peut être étendu afin de modéliser
des modèles de tâches ou d'ordonnanceurs non couverts par la théorie de l'ordonnancement
actuel.
Pour chaque résultat d'analyse, Cheddar affiche le nom ou la référence de la
méthode de calcul appliquée (voir la liste des publications/documents de cette page).
Les principales fonctionnalités de l'outil sont :
- Calcul d'ordonnancement pour la plupart des algorithmes "standards" :
- Rate Monotonic (ou RM).
- Earliest Deadline First (ou EDF).
- Deadline Monotonic (ou DM, Inverse Deadline).
- Least Laxity First (ou LLF).
- Ordonnancement POSIX 1003b
(politiques SCHED_FIFO, SCHED_RR, SCHED_OTHERS).
- A partir d'un ordonnancement, l'environnement de simulation permet d'obtenir :
- Les temps de blocage sur ressources partagées (bornes maximales, minimales, délais moyens).
- Les temps de réponse des tâches (bornes maximales, minimales, délais moyens).
- Nombre de commutations de contexte, de préemption.
- Recherche d'interblocage, d'inversion de priorité.
- Echéances manquées.
- ...
- ...
- Possibilité d'appliquer des tests de faisabilité dans le cas préemptif ou non préemptif :
- Borne sur les temps de réponse (pour EDF, LL, DM et RM).
- Borne sur les temps de blocage sur ressources partagées (avec PCP, PIP ou IPCP),
- Test sur le taux d'utilisation processeur (avec EDF, LLF, RM et DM).
- Support des tâches périodiques, apériodiques, activées aléatoirement (loi de Poisson, Exponentiel). Support de tâches périodiques avec jitter, offset et avec délais critiques quelconque vis-à-vis de la période.
- Support des ressources partagées (simulation, calcul de borne du temps de blocage).
Protocoles supportés : PIP, PCP, IPCP.
- Expression et ordonnancement de tâches avec contraintes de précédence ;
- Temps de réponse de bout en bout avec le calcul Holistique de Tindell (test de faisabilité).
- Modification de paramètres de tâches avec la méthode de Chetto et Blazewicz (
test de faisabilité et simulation).
- Ordonnancement de tâches avec graphe de précédences pour système multi-processeurs.
- Outils de partitionnement pour système multi-processeurs.
- Outils pour analyser l'utilisation de tampons :
- Test de faisabilité pour calculer une borne sur la taille des tampons.
- Outils de simultation pour analyser le taux d'occupation des tampons à partir d'une
simulation.
- Ordonnancement de messages.
- Services permettant d'étendre le simulateur par adjonction d'ordonnanceurs, de
modèles de tâches ou d'analyseur d'événements.
- ...
L'image ci-dessous est une copie d'écran de l'outil. On y voit dans la partie haute les chronogrammes
issues de l'ordonnancement des tâches, puis, dans la partie basse, les résultats concernant
l'analyse de l'ordonnancement ainsi que les tests de faisabilité.
Le version actuelle de Cheddar est la version Cheddar-2.1 (distribuée depuis le
1er juillet 2008) :
Cheddar est un outil open-source distribué sous la license GNU.
Vous pouvez télécharger la version stable actuelle du source
ici .
Les versions précédentes sont
ici
(voir le fichier ChangesLog.pdf pour un historique
des modifications).
Le cas échéant, nous disposons d'un accès SVN
(à demander par la liste
de diffusion de Cheddar si vous envisagez de contribuer au développement de l'outil).
1) Plates-formes testées :
- Linux Debian et Redhat (6.1, 6.2, 7.1 et 9.1).
- Sparc/Solaris 2.7, 2.8 et 2.9.
- Windows Me, 95, 98, 2000, NT4 et XP.
- FreeBsd.
2) Logiciel nécessaire :
Sur Windows, il suffit de décompresser le fichier zip est de lancer Cheddar depuis le
répertoire utilisé lors de la décompression.
Sur Unix, vous avez besoin de
la commande GNU make (gmake).
3) Installation pour Unix :
Sur Unix, la façon la plus simple pour installer Cheddar est la suivante :
- Editez le Makefile afin de désigner le répertoire où
doit être installé le logiciel.
Pour ce faire, vous devez mettre à jour la variable
CHEDDAR_ROOT. Par défaut, Cheddar sera installé dans
/usr/local
- Tapez `gmake' pour installer le logiciel.
- Modifiez vos variables shell PATH et LD_LIBRARY_PATH (voir le fichier HOWTO_INSTALL.txt).
- Lancez et testez l'outil.
Il n'y a pas de patch binaire actuellement distribué.
Voir le fichier
FIXED_BUGS.pdf
pour la liste des bugs corrigés.
Les bugs connus et non corrigés
sont décrits ici.
Pour toute question concernant l'utilisation ou le développement de
Cheddar, l'Université de Bretagne Occidentale héberge une liste de diffusion.
Pour poster dans cette liste, envoyer vos mails vers
cheddar@listes.univ-brest.fr.
Attention : cette liste est privée. Pour pouvoir y poster, vous devez vous
y inscrire d'abord.
Pour s'abonner à la liste : envoyer une requête à sympa@listes.univ-brest.fr
avec le corps de mail suivant :
SUBSCRIBE cheddar foo@bar.com
Où foo@bar.com est l'adresse e-mail de l'expéditeur.
Pour se désabonner : envoyer une requête à sympa@listes.univ-brest.fr
avec le corps de mail suivant :
SIGNOFF cheddar
Principales publications liées à Cheddar :
- Ouvrage concernant Ada et la théorie de l'ordonnancement temps réel:
Building
Parallel, Embedded, and Real-Time Applications with Ada. J. W. McCormick,
F. Singhoff, J. Hugues. Cambridge University Press, UK, 365 pages, Juillet 2010, ISBN-13: 9780521197168.
Les corrections des exercices de cet ouvrage concernant la théorie de l'ordonnancement
temps réel on été réalisées avec Cheddar. Ces corrections sont accessibles gratuitement sur le site web de
Cambridge University Press.
-
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.
-
Refactoring of an Ada 95 library with a Meta CASE tool.
A. Plantec, F. Singhoff.
ACM SIGAda Ada Letters, volume 26, number 3,
pages 61-70. Edited by ACM Press,
New York, USA,
November 2006,
ISSN:1094-3641.
-
AADL Modeling and Analysis of Hierarchical Schedulers.
F. Singhoff and A. Plantec. ACM SIGAda Ada Letters, volume 27, number 3, pages
41-50. Edited by ACM Press,
New York, USA,
November 2007, ISSN:1094-3641.
-
Cheddar Release 2.x User's Guide.
Frank Singhoff. LISyC technical report number singhoff-01-2007. February 2007.
-
The Cheddar AADL Property sets (Release 2.x).
Frank Singhoff.
LISyC technical report number singhoff-03-07.
February 2007.
- The Cheddar Release 2.x FAQ.
Frank Singhoff. LISyC technical report number singhoff-02-2007. February 2007.
- Toutes les
publications associées à
Cheddar peuvent être consultées ici.
- Toutes les
publications utilisées
dans Cheddar peuvent être consultées ici.
Nous distribuons Cheddar avec
des exemples AADL et XML
.
D'autre part, vous
trouverez ici quelques contributions faites par des utilisateurs de Cheddar :
Le logiciel Cheddar est
développé par une équipe mixte Université de Bretagne Occidentale/LISyC et Ellidiss
Technologies, équipe actuellement constituée
de Pierre Dissaux (Ellidiss Technologies),
de Jérôme Legrand (Ellidiss Technologies),
d’Alain Plantec (Université de Bretagne Occidentale/LISyC),
de Stéphane Rubini (Université de Bretagne Occidentale/LISyC)
et de Frank Singhoff (Université de Bretagne Occidentale/LISyC).
Le projet Cheddar est financé par Ellidiss Technologies et le Conseil régional de Bretagne.
Le projet cheddar a été lancé en 2002 par Frank Singhoff,
Laboratoire LISyC,
Université de Bretagne Occidentale.
Depuis 2008, Ellidiss Technologies
contribue également au projet
et propose un support industriel pour cet environnement.
Par ailleurs, ces
activités de recherche autour de Cheddar sont menées en collaboration
avec diverses équipes :
Merci à ceux qui ont contribué au développement de cet outil :
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.
Merci à ceux qui nous ont envoyé des rapports de bug, conseils
ou idées :
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,
et M. Zanconi.
Enfin, merci à ceux qui ont participé au projet ... et qui ont été oubliés ci-dessus...
Un espace de travail pour les développeurs existe
via un wiki
accessible ici. Cet espace de travail est disponible pour faire
les rapports de bugs et récupérer de la documentation développeur (ex : instructions de compilation).
Les rapports de bug peuvent aussi être envoyés sur
cheddar@listes.univ-brest.fr
(Attention, pour poster sur cette liste, vous devez d'abord
y être abonné).
Contact : Frank Singhoff mailto:singhoff@univ-brest.fr
Dernière mise à jour : le 1er septembre 2011