Solutions temps réel sous Linux

Détails bibliographiques
Auteur principal : Blaess Christophe (Auteur)
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