1
TP de simulation d’algorithmes
d’ordonnancement temps réel
Encadré par: Pr. Baghdadi / Pr. Rhofir
Réalisé par: Achraf Safih (Numéro : 36)
Logiciel Utilisé:
2
Cheddar est un outil open-source dédié à l'analyse et à la simulation de systèmes
temps réel. Il est principalement utilisé dans le domaine de l'informatique embarquée et
des systèmes critiques. Cheddar permet d'évaluer les performances et de vérifier la
faisabilité temporelle des systèmes utilisant des modèles temps réel comme les tâches
périodiques, les tâches sporadiques, et les files d'attente.
1. Prise en main de l'outil Cheddar
Fenêtre principale de Cheddar
3
Édition d'un composant core
Édition d'un composant processor
Édition d'un composant address space
4
édition d'un composant task
Simulation de l'ordonnancement
5
Analyse par tests de faisabilité
Exercice 1
Rate Monotonic Protocol:
édition d'un composant task
6
Simulation de l'ordonnancement
Analyse par tests de faisabilité
2. Comparaisons d'algorithme
Exercice 2
Rate Monotonic Protocol:
édition d'un composant task
7
Simulation de l'ordonnancement
Analyse par tests de faisabilité
Earliest Deadline First Protocol:
Édition d'un composant core
8
édition d'un composant task
Simulation de l'ordonnancement
9
Analyse par tests de faisabilité
Exercice 3
Earliest Deadline First Protocol
édition d'un composant task
Simulation de l'ordonnancement
Analyse par tests de faisabilité
10
Least Laxity First Protocol
Édition d'un composant core
Simulation de l'ordonnancement
Analyse par tests de faisabilité
11
3. Partage de ressources
Exercice 4
édition d'un composant task
Édition d'une ressource partagée
12
Ordonnancement avec une ressource partagée
Analyse par tests de faisabilité
13
Ordonnancement avec une ressource partagée dont le protocole est pip
Analyse par tests de faisabilité
4. Exercices de synthèse
Question 1:
• En général, quels sont les critères utilisés pour fixer la priorité des tâches ?
• Déterminer les différents paramètres des tâches nécessaires à leur analyse
d'ordonnancement. Vous motiverez plus particulièrement le choix de la priorité.
Les critères pour fixer les priorités des tâches incluent :
14
1. La période (Period) : Les tâches avec une période plus courte (exécutées plus
fréquemment) sont généralement assignées une priorité plus élevée. Cela
correspond à l'algorithme Rate Monotonic (RM).
2. Les échéances (Deadline) : Les tâches avec des échéances plus proches
reçoivent une priorité plus élevée. Cela correspond à l'algorithme Earliest
Deadline First (EDF).
3. La criticité des tâches : Les tâches critiques ou qui impactent fortement le
système si elles échouent doivent avoir des priorités plus élevées.
4. Les dépendances : Si une tâche dépend d'autres tâches, sa priorité peut être
ajustée pour éviter des blocages inutiles.
Pour chaque tâche, les paramètres nécessaires sont :
● Name : Nom de la tâche (par exemple, CAPTEUR_1).
● Capacity (ou WCET) : Durée d’exécution maximale.
● Period : Intervalle de temps entre deux exécutions successives.
● Deadline : Échéance maximale pour finir la tâche.
● Priority : Niveau de priorité, basé sur la période (algorithme RM) ou les
échéances (algorithme EDF).
Question 3 :
En fait, les tâches CAPTEUR_1, CAPTEUR_2, et CAPTEUR_3 partagent une zone de
mémoire accédée en exclusion mutuelle. CAPTEUR_1 et CAPTEUR_2 accèdent à
cette ressource pendant toute leur capacité. CAPTEUR_3 accède à la ressource
pendant les deux premières millisecondes de sa capacité. Le sémaphore qui protège la
zone de mémoire partagée applique le protocole PIP. Expliquer pourquoi les temps de
réponse calculés dans la question précédente ne constituent plus des pires cas.
Lorsque les tâches partagent une ressource en exclusion mutuelle (par exemple, une
zone mémoire protégée par un sémaphore), elles peuvent subir :
1. Des blocages : Une tâche peut être bloquée si une autre tâche de plus basse
priorité occupe la ressource.
2. Des inversions de priorité : Une tâche de haute priorité peut être retardée par
une tâche de basse priorité qui détient la ressource.
Ces phénomènes ne sont pas pris en compte dans les calculs de base (indépendance
des tâches). Par conséquent, les temps de réponse calculés ne reflètent pas les vrais
pires cas.
Conclusion
Ce TP sur l’ordonnancement temps réel nous a permis de comprendre et d’appliquer
les concepts fondamentaux de planification dans les systèmes critiques. Grâce au
simulateur Cheddar, nous avons pu modéliser, analyser et comparer différents
15
algorithmes d’ordonnancement, tels que Rate Monotonic (RM), Earliest Deadline First
(EDF) et Least Laxity First (LLF), tout en explorant leurs avantages et limites dans
diverses situations.