Solutions temps réel sous Linux
Auteur principal : | |
---|---|
Format : | Livre |
Langue : | français |
Titre complet : | Solutions temps réel sous Linux / Christophe Blaess |
Édition : | 2e édition |
Publié : |
Paris :
Eyrolles
, DL 2015, cop. 2016 |
Description matérielle : | 1 vol. (XV-300 p.) |
Sujets : | |
Documents associés : | Autre format:
Solutions temps réel sous Linux |
- P. 1
- Chapitre 1 Multitâche et commutation
- P. 1
- Multitâche sous Linux
- P. 3
- Création de processus
- P. 5
- Parallélisme multithreads
- P. 8
- Systèmes multiprocesseurs
- P. 8
- Multiprocesseurs, multicoeurs et hyperthreading
- P. 10
- Affinité d'une tâche
- P. 17
- États des tâches
- P. 19
- Ordonnancement
- P. 20
- Préemption
- P. 20
- Conclusion
- P. 21
- Points clés
- P. 21
- Exercices
- P. 21
- Exercice 1 (*)
- P. 21
- Exercice 2 (**)
- P. 22
- Exercice 3 (**)
- P. 22
- Exercice 4 (***)
- P. 23
- Chapitre 2 Interruptions, exceptions et appels système
- P. 23
- Mode noyau
- P. 24
- Interruptions
- P. 24
- Principe
- P. 25
- Entrées-sorties sans interruptions
- P. 26
- Entrées-sorties avec interruptions
- P. 27
- Interruptions sous Linux
- P. 28
- Routage des interruptions
- P. 30
- Exceptions
- P. 30
- Principe
- P. 31
- Fichier core
- P. 34
- Appels système
- P. 34
- Suivi d'un appel système
- P. 37
- Threads du noyau
- P. 39
- Conclusion
- P. 39
- Points clés
- P. 39
- Exercices
- P. 39
- Exercice 1 (*)
- P. 39
- Exercice 2 (*)
- P. 39
- Exercice 3 (**)
- P. 40
- Exercice 4 (**)
- P. 40
- Exercice 5 (***)
- P. 41
- Chapitre 3 Ordonnancement temps partagé et priorités
- P. 41
- Temps partagé
- P. 41
- Principes
- P. 44
- Ordonnanceur historique
- P. 45
- Ordonnanceurs du noyau 2.6
- P. 46
- Ordonnanceur CFS
- P. 47
- Groupes de processus
- P. 51
- Autres ordonnanceurs
- P. 51
- Configuration des priorités
- P. 51
- Courtoisie des processus
- P. 53
- Priorités entre threads
- P. 55
- Conclusion
- P. 55
- Points clés
- P. 55
- Exercices
- P. 55
- Exercice 1 (*)
- P. 56
- Exercice 2 (*)
- P. 56
- Exercice 3 (**)
- P. 56
- Exercice 4 (***)
- P. 56
- Exercice 5 (***)
- P. 57
- Chapitre 4 Limitations de l'ordonnancement temps partagé
- P. 57
- Mesure du temps
- P. 58
- Heure Unix avec gettimeofday()
- P. 58
- Précision des mesures
- P. 61
- Horloges Posix
- P. 64
- Tâches périodiques
- P. 64
- Timers Unix classiques
- P. 66
- Timers Posix
- P. 68
- Granularité
- P. 70
- Précision
- P. 79
- Préemption des tâches
- P. 82
- Conclusion
- P. 83
- Points clés
- P. 83
- Exercices
- P. 83
- Exercice 1 (*)
- P. 83
- Exercice 2 (**)
- P. 83
- Exercice 3 (**)
- P. 83
- Exercice 4 (***)
- P. 84
- Exercice 5 (***)
- P. 85
- Chapitre 5 Principes du temps réel
- P. 85
- Définitions
- P. 85
- Temps réel
- P. 86
- Classes de temps réel
- P. 86
- Temps réel absolu
- P. 87
- Temps réel strict
- P. 87
- Temps réel strict certifiable
- P. 88
- Temps réel strict non certifiable
- P. 88
- Temps réel souple
- P. 90
- Rôles respectifs
- P. 90
- Traitement direct dans le noyau
- P. 93
- Traitement des interruptions
- P. 94
- Temps réel sous Linux
- P. 94
- Échelle des priorités
- P. 96
- Configuration de l'ordonnancement
- P. 98
- Processus temps réel
- P. 100
- Garde-fou temps réel
- P. 101
- Threads temps réel
- P. 106
- Threads en Round Robin
- P. 109
- Rotation sans Round Robin
- P. 110
- Temps réel depuis le shell
- P. 111
- Ordonnancement EDF (Earliest Deadline First)
- P. 117
- Conclusion
- P. 117
- Points clés
- P. 118
- Exercices
- P. 118
- Exercice 1 (*)
- P. 118
- Exercice 2 (*)
- P. 118
- Exercice 3 (**)
- P. 118
- Exercice 4 (**)
- P. 118
- Exercice 5 (***)
- P. 119
- Chapitre 6 Performances du temps réel souple
- P. 119
- Timers temps réel
- P. 119
- Précisions et fluctuations
- P. 122
- Granularité des timers
- P. 122
- Conclusion sur les timers
- P. 123
- Temps de commutation
- P. 123
- Commutation entre threads
- P. 127
- Commutations entre processus
- P. 128
- Comparaison processus et threads
- P. 130
- Imprévisibilités dues à la mémoire virtuelle
- P. 132
- Préemptibilité du noyau
- P. 132
- Principes
- P. 134
- Préemptibilité du noyau standard
- P. 135
- Connaître la configuration d'un noyau
- P. 136
- Expériences sur la préemptibilité
- P. 144
- Conclusion
- P. 145
- Points clés
- P. 145
- Exercices
- P. 145
- Exercice 1 (*)
- P. 145
- Exercice 2 (**)
- P. 145
- Exercice 3 (**)
- P. 145
- Exercice 4 (**)
- P. 146
- Exercice 5 (***)
- P. 147
- Chapitre 7 Problèmes temps réel classiques
- P. 147
- Démarrage en Round Robin
- P. 149
- Barrières Posix
- P. 150
- Inversion de priorité
- P. 150
- Principe
- P. 154
- Héritage de priorité
- P. 156
- Prise de mutex
- P. 159
- Comportement en temps réel
- P. 162
- Reprise de mutex en temps réel
- P. 165
- Solutions
- P. 167
- Appel explicite à l'ordonnanceur
- P. 168
- Conclusion
- P. 169
- Points clés
- P. 169
- Exercices
- P. 169
- Exercice 1 (*)
- P. 169
- Exercice 2 (**)
- P. 169
- Exercice 3 (**)
- P. 169
- Exercice 4 (***)
- P. 169
- Exercice 5 (***)
- P. 171
- Chapitre 8 Limites et améliorations du temps réel Linux
- P. 171
- Traitement des interruptions
- P. 178
- PREEMPT_RT
- P. 181
- Threaded interrupts
- P. 183
- Fully preemptible kernel
- P. 183
- Conclusion sur PREEMPT_RT
- P. 184
- Outils de mesure des performances
- P. 184
- Cyclictest
- P. 185
- Hwlatdetect, Hackbench...
- P. 186
- Économies d'énergie
- P. 187
- Variation de fréquence d'horloge
- P. 189
- Heuristique performance
- P. 190
- Heuristique powersave
- P. 190
- Heuristique ondemand
- P. 191
- Conclusion
- P. 191
- Points clés
- P. 192
- Exercices
- P. 192
- Exercice 1 (**)
- P. 192
- Exercice 2 (**)
- P. 192
- Exercice 3 (**)
- P. 192
- Exercice 4 (***)
- P. 192
- Exercice 5 (***)
- P. 193
- Chapitre 9 Extensions temps réel de Linux
- P. 193
- Les nanokernels temps réel
- P. 193
- Principes
- P. 195
- RTLinux
- P. 195
- RTAI et Adeos
- P. 198
- Xenomai
- P. 200
- Interface de programmation
- P. 201
- Installation de Xenomai
- P. 201
- Modification du noyau Linux
- P. 203
- Compilation de Linux modifié
- P. 205
- Compilation de Xenomai
- P. 206
- Expériences avec Xenomai
- P. 206
- Première exploration
- P. 208
- Programmes de tests
- P. 211
- Conclusion
- P. 211
- Points clés
- P. 211
- Exercices
- P. 211
- Exercice 1 (*)
- P. 211
- Exercice 2 (**)
- P. 212
- Exercice 3 (**)
- P. 212
- Exercice 4 (***)
- P. 213
- Chapitre 10 Programmer avec Xenomai
- P. 213
- Programmation de tâches simples
- P. 213
- Principes
- P. 215
- Initialisation du processus
- P. 216
- Création de tâche
- P. 218
- Compilation et exécution
- P. 220
- Processus unithread
- P. 221
- Recherche des changements de modes
- P. 223
- Alarmes et tâches périodiques
- P. 223
- Réveils périodiques
- P. 232
- Alarmes
- P. 235
- Watchdog
- P. 237
- Synchronisation des tâches
- P. 237
- Sémaphores
- P. 240
- Mutex
- P. 245
- Conclusion
- P. 246
- Points clés
- P. 246
- Exercices
- P. 246
- Exercice 1 (*)
- P. 246
- Exercice 2 (**)
- P. 246
- Exercice 3 (**)
- P. 246
- Exercice 4 (***)
- P. 247
- Chapitre 11 Traitement des interruptions
- P. 247
- Programmation d'un driver
- P. 247
- Squelette d'un module
- P. 249
- Structure d'un driver
- P. 255
- Traitement des interruptions
- P. 261
- Traitement en threaded interrupt
- P. 265
- Interruptions avec Xenomai
- P. 265
- Real Time Driver Model
- P. 271
- Interruptions avec RTDM
- P. 275
- Conclusion
- P. 276
- Points clés
- P. 276
- Exercices
- P. 276
- Exercice 1 (*)
- P. 276
- Exercice 2 (**)
- P. 276
- Exercice 3 (**)
- P. 276
- Exercice 4 (***)
- P. 277
- Conclusion État des lieux et perspectives
- P. 277
- Situation actuelle
- P. 277
- Linux vanilla
- P. 278
- Patch PREEMPT_RT
- P. 278
- Xenomai
- P. 278
- Mesures
- P. 279
- Perspectives
- P. 281
- Annexe A Compilation d'un noyau
- P. 281
- Préparation des sources
- P. 283
- Configuration de la compilation
- P. 283
- Principes
- P. 285
- Interfaces utilisateur
- P. 286
- Options de compilation
- P. 287
- Compilation et installation
- P. 287
- Compilation croisée
- P. 288
- Compilation native
- P. 291