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 le
LISYC,
Université de Brest.
Cheddar est principalement constitué de deux composants
logiciel :
- 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 couvert 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 et PIP),
- 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 > période.
- Support des ressources partagées (simulation, calcul de borne de temps de blocage).
Protocoles supportés : PIP, PCP.
- 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èle de tâches ou d'analyseur d'événements.
- ...
L'image ci-dessous est une copie d'écran de l'outil. On y va dans la partie haute les chronogrammes
issues de l'ordonnancement des tâches, puis, dans la partie basse, les résultats concertant
l'analyse de l'ordonnancement ainsi que les tests de faisabilité.
Le version actuelle de Cheddar est la version Cheddar-1.3p5 (distribuée depuis le
1er novembre 2005) :
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 ChangesLog pour un historique
des modifications).
Vous pouvez aussi consulter les versions non stables produites
tous les soirs
depuis le répertoire CVS.
Le cas échéant, nous disposons d'un accès CVS (à demander par la liste
de diffusion de Cheddar).
1) Plates-formes testées :
- Linux 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 and XP.
- Cheddar devrait fonctionner sur toute plate-forme
supportée par GNAT/GtkAda.
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).
-
Les bibliothèques Gtk et GtkAda
doivent être installées sur votre système.
Vous avez besoin de Gtk 1.2 (ou plus récent) et GtkAda 1.2.20 (ou plus récent).
Vous trouverez tous les paquetages nécessaires pour compiler, installer et exécuter Cheddar
ici.
3) Installation :
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.
- Lancez et testez l'outil.
Il n'y a pas de patch binaire actuellement distribué.
Voir le fichier
BUGS
pour la liste des bugs corrigés.
Pour toute question concernant l'utilisation ou le développement de
Cheddar, l'Université de Brest 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.
Pour s'abonner à la liste : envoyer une requête à sympa@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@univ-brest.fr
avec le corps de mail suivant :
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.
- Toutes les
publications utilisées
dans Cheddar peuvent être consultées ici.
-
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.
Plusieurs enseignements portant sur l'ordonnancement temps réel ont
été réalisés à l'aide de Cheddar.
Les sujets et supports de ces cours
sont accessibles ci-dessous :
Cette application est maintenue par le
LISYC,
et principalement par
Frank Singhoff.
Merci à ceux qui ont contribué au développement de cet outil :
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.
Merci à ceux qui nous ont envoyé des rapports de bug, conseils
ou idées :
Bert Baron,
Peter Mueller,
Hugues Bonnin,
Tim Ren,
Kevin Bryan,
Nick Hoogland,
Thomas Vergnaud,
Jan Stemerdink,
Fabio Rodrigues de la Rocha ...
Les rapports de bug peuvent être envoyer sur
cheddar@listes.univ-brest.fr
(Attention, pour poster sur cette liste, vous devez d'abord
y être abonné).
Vous utilisez Cheddar ? si c'est le cas, faites nous le savoir
et n'hesitez pas à nous indiquer ce qui manque à cet outil.
Contact et questions peuvent être posées sur :
cheddar@listes.univ-brest.fr
(Attention, pour poster sur cette liste, vous devez d'abord
y être abonné).
Merci à tous ceux qui nous ont aidé par leurs commentaires,
rapports de bug ou conseils.
Equipe LISYC
(cheddar@listes.univ-brest.fr)
Dernière mise à jour : 1er novembre 2005.