Télécharger le fichier pdf d’un mémoire de fin d’études
Ordonnancement
Ordonnançabilité
Ordonnancement conduit par le temps ou les évènements
|
Table des matières
Introduction générale
Partie I Contexte et Motivations
1 Ordonnancement temps réel multiprocesseur
1.1 Modélisation et vocabulaire
1.1.1 Modélisation des applications
1.1.2 Modélisation de l’architecture matérielle
1.1.3 Ordonnancement
1.2 Ordonnancement monoprocesseur
1.2.1 Algorithmes d’ordonnancement à priorité fixe au niveau des tâches
1.2.2 Algorithme d’ordonnancement à priorité fixe au niveau des travaux
1.2.3 Algorithmes d’ordonnancement à priorité dynamique au niveau des travaux
1.3 Ordonnancement multiprocesseur
1.3.1 Ordonnancement par partitionnement
1.3.2 Ordonnancement global
1.3.3 Ordonnancement semi-partitionné
1.3.4 Autres approches
1.4 Généralisation des algorithmes monoprocesseurs
1.4.1 Algorithmes RM-US[ξ], EDF-US[ξ], EDF(k) et fpEDF
1.4.2 Algorithme Global-Fair Lateness
1.4.3 Algorithmes d’ordonnancement à laxité nulle (Zero Laxity)
1.4.4 Algorithme Global-Least Laxity First
1.4.5 Algorithme U-EDF
1.5 Ordonnancement global dit équitable
1.5.1 Ordonnancement PFair
1.5.2 Ordonnancement global DP-Fair
1.6 Approches hybrides
1.6.1 Ordonnancement semi-partitionné
1.6.2 Algorithme RUN
1.7 Conclusion
2 Principe et fonctionnement des mémoires caches
2.1 Fonctionnement d’un processeur
2.1.1 Exécution d’un programme
2.1.2 Exemple de programme
2.1.3 Mémoire cache
2.1.4 Types d’architectures
2.1.5 Optimisations
2.2 Principe d’une mémoire cache
2.2.1 Technologies de mémoire
2.2.2 Principe de localité
2.2.3 Hiérarchie mémoire
2.3 Fonctionnement d’un cache
2.3.1 Associativité
2.3.2 Protocoles de cohérence
2.4 Sources de défauts de cache
2.4.1 Types de défauts de cache
2.4.2 Préemption et « context switch misses »
2.4.3 Partage de cache et « cache thrashing »
2.4.4 Bilan
2.5 Caractérisation du comportement mémoire d’une tâche
2.5.1 Working Set Size
2.5.2 Nombre de cycles par instruction
2.5.3 Fréquence d’accès au cache
2.5.4 Stack distance
2.5.5 Reuse distance
2.5.6 Récapitulatif
2.6 Prise en compte des caches dans les systèmes ordonnancés
2.6.1 Sauvegarde du cache
2.6.2 Partitionnement du cache
2.6.3 Verrouillage du cache
2.6.4 Co-ordonnancement
2.7 Conclusion
3 Motivations
3.1 Constats
3.1.1 De nombreuses politiques d’ordonnancement..
3.1.2 Quelles approches pour l’évaluation de ces politiques ?
3.1.3 Des difficultés pour combiner les résultats existants..
3.1.4 Et des aspects opérationnels oubliés ou au second plan..
3.2 Objectifs
3.3 Besoins
3.4 Évaluation des outils disponibles
3.4.1 MAST
3.4.2 Cheddar
3.4.3 STORM
3.4.4 Yartiss
3.4.5 Conclusion sur les simulateurs
3.5 Conclusion
Partie II Simulation d’ordonnancement
4 SimSo : un outil pour la simulation d’ordonnancement
4.1 Présentation générale
4.2 Architecture
4.2.1 Simulation à événements discrets
4.2.2 Structures de données pour les paramètres de simulation
4.2.3 Classes pour la simulation
iv4.2.4 Modèle de temps d’exécution
4.3 Ordonnanceurs
4.3.1 Fonctionnement et interface d’un ordonnanceur
4.3.2 Difficultés liées à la mise en œuvre d’ordonnanceurs
4.3.3 Ordonnanceurs disponibles
4.3.4 Exemple
4.4 Génération de tâches
4.4.1 Choix des taux d’utilisation
4.4.2 Choix des périodes
4.4.3 Tâches sporadiques
4.5 Valeurs mesurées
4.5.1 Préemptions et migrations
4.5.2 Dépassements d’échéance
4.5.3 Temps de réponse et laxité normalisée
4.5.4 Appels à l’ordonnanceur
4.5.5 Récapitulatif des mesures disponibles
4.6 Utilisation de Simso
4.6.1 Interface graphique
4.6.2 Mode script
4.7 Conclusion
5 Évaluation des politiques d’ordonnancement
5.1 Mise en place de l’évaluation
5.1.1 Comparaison des méthodes de génération
5.1.2 Génération des systèmes et simulations
5.1.3 Valeurs mesurées
5.2 Évaluation des politiques de type G-EDF
5.2.1 Test d’ordonnançabilité GFB
5.2.2 Comparaison des algorithmes de type G-EDF
5.3 Ordonnancement partitionné
5.3.1 Systèmes partitionnables
5.3.2 Impact du placement des tâches
5.3.3 Comparaison G-EDF et P-EDF
5.4 Comparaison des politiques DP-Fair
5.4.1 Comparaison de LRE-TL et LLREF
5.4.2 DP-WRAP
5.5 Comparaison des politiques U-EDF, RUN et EKG
5.6 Usage du WCET
5.6.1 Simulation d’ordonnancement avec durées aléatoires des travaux
5.6.2 Évaluation basée sur le WCET
5.6.3 Ordonnancement d’un système en surcharge
5.7 Avantages liés aux politiques conservatives
5.7.1 Ordonnancement ER-Fair
5.7.2 Algorithme d’ordonnancement NVNLF
5.7.3 Combiner G-EDF à des politiques non conservatives
5.8 Conclusion
Partie III Simulation avec impact des caches
6 Modèles de cache
6.1 Contexte
6.1.1 Besoin pour la simulation
6.1.2 Entrées disponibles
6.1.3 Hypothèses
6.2 Présentation des modèles
6.2.1 Évaluation du CPI
6.2.2 Défauts de cache pour une tâche isolée
6.2.3 Défauts de cache pour une tâche avec un cache partagé
6.2.4 Estimation des coûts de préemption
6.2.5 Estimation des défauts de cache suite à une migration
6.3 Évaluation des modèles
6.3.1 Choix des outils et benchmarks
6.3.2 Caractérisation du comportement mémoire des programmes
6.3.3 Caches N-Way et fully-associative
6.3.4 Évaluation du comportement des tâches en isolation
6.3.5 Partage de cache
6.3.6 Coûts des préemptions
6.3.7 Conclusion
7 Prise en compte des surcoûts temporels dans SimSo
7.1 Prise en compte des aspects opérationnels dans SimSo
7.1.1 Intégration des pénalités temporelles
7.1.2 Intégration de modèles de cache dans SimSo
7.2 Expérimentations
7.2.1 Comparaison de G-EDF et P-EDF avec pénalités temporelles
7.2.2 Variation des offsets avec prise en compte des caches
7.2.3 Impact du placement des tâches
7.2.4 Pénalités de préemption et migration
7.3 Conclusion
Conclusion
A Boite à outils pour l’évaluation
A.1 Simulation d’ordonnancement
A.1.1 STRESS et PERTS
A.1.2 GHOST et RTSIM
A.1.3 FORTISSIMO
A.1.4 FORTAS
A.1.5 RealtssMP
A.2 Exécutions réelles
A.2.1 Linux
A.2.2 LITMUSRT
A.2.3 RESCH
A.2.4 ChronOS Linux
A.3 Simulateurs d’architecture
A.3.1 Gem5
A.3.2 Simics
A.3.3 SESC et ESESC
A.3.4 MARSSx86 et PTLSim
A.3.5 Autres
A.4 Mesure de SDP et analyse des caches
A.4.1 MICA
A.4.2 Cachegrind
A.4.3 Stressmark Workload
A.4.4 StatStack
A.5 Benchmarks
A.5.1 Benchmarks orientés temps réel
A.5.2 Benchmarks orientés embarqués
A.5.3 Benchmarks orientés WCET
A.5.4 Conclusion sur les benchmarks
Bibliographie
Télécharger le rapport complet
