FPGA comme
co-processeur de
Xenomai/Linux
temps-r´eel
G. Goavec-M´erou
Bases
OS
temps-partag´e
OS temps-r´eel
Au dela des
processeurs
FPGA
Conclusion sur les
OS
Environnement
mat´eriel
Mise en œuvre
RTOS
FPGA comme co-processeur de
Xenomai/Linux temps-r´eel
Gwenha¨el Goavec-M´erou, J.-M Friedt
30 d´ecembre 2016
1 / 20
FPGA comme
co-processeur de
Xenomai/Linux
temps-r´eel
G. Goavec-M´erou
Bases
OS
temps-partag´e
OS temps-r´eel
Au dela des
processeurs
FPGA
Conclusion sur les
OS
Environnement
mat´eriel
Mise en œuvre
Pourquoi un ordonnanceur
Cas du bare-metal (sans OS).
Un processeur
n’ex´ecute qu’une instruction
par cycle d’horloge ;
n’as qu’un seul fil de
traitement ;
pr´esente des sauts sur
interruptions.
mise en place d’une machine `a
´etat basique pour la gestion des
´ev´enements.
Mais :
priorit´e statique ;
pas d’´evolution en cours de
fonctionnement.
volatile char c ;
volatile received char ;
volatile timer fired ;
v o i d t i m e r i s r ( ) {
/something /
timer fired = 1;
}
v o i d usart isr () {
c = USART DR ;
r e c e i v e d c h a r = 1 ;
}
i n t mai n ( ) {
r e c e i v e d c h a r = 0 ;
timer fired = 0;
i n i t u s a r t ( ) ;
while (1) {
i f ( r e c e i v e d c h a r ) {
/do something /
r e c e i v e d c h a r = 0 ;
}
i f (timer fired) {
/do o t h e r t h i n g /
timer fired = 0;
}
SLEEP MODE ;
}
}
2 / 20
FPGA comme
co-processeur de
Xenomai/Linux
temps-r´eel
G. Goavec-M´erou
Bases
OS
temps-partag´e
OS temps-r´eel
Au dela des
processeurs
FPGA
Conclusion sur les
OS
Environnement
mat´eriel
Mise en œuvre
Ordonnanceur
Un syst`eme d’exploitation est multi-tˆache :
un seul processus peut ˆetre ex´ecut´e `a la fois
Mais de nombreux processus concurrents sont charg´es
dynamiquement et attendent d’obtenir la ressource CPU (commandes
ps aux ou htop).
utilisation d’un ordonnanceur pour distribuer le temps CPU entre
les processus concurrents.
Processus d´efini par :
une priorit´e (plus la priorit´e est haute plus la tˆache va s’ex´ecuter
rapidement/fr´equemment) ;
un ´etat (running,runnable,sleeping )
L’ordonnanceur donne le type de politique du syst`eme
(temps-partag´e, temps-r´eel)
3 / 20
FPGA comme
co-processeur de
Xenomai/Linux
temps-r´eel
G. Goavec-M´erou
Bases
OS
temps-partag´e
OS temps-r´eel
Au dela des
processeurs
FPGA
Conclusion sur les
OS
Environnement
mat´eriel
Mise en œuvre
Principe du temps partag´es
Syst`eme GNU/Linux ordonnancement temps-partag´e.
But : donner l’impression `a l’utilisateur que tous les processus
s’executent en parall`ele.
´equit´e d’acc`es aux ressources CPU tous les processus
disposent d’un timeslice (ou quantum) de temps ;
processus d´ecrit par une priorit´e dynamique.
pr´eemption r´eguli`ere des tˆaches afin de rendre le syst`eme r´eactif
(mais au d´epends des latences).
4 / 20
FPGA comme
co-processeur de
Xenomai/Linux
temps-r´eel
G. Goavec-M´erou
Bases
OS
temps-partag´e
OS temps-r´eel
Au dela des
processeurs
FPGA
Conclusion sur les
OS
Environnement
mat´eriel
Mise en œuvre
Principe de pr´eemption
Type de basculement entre tˆaches :
task1
task2
timeslice
RUNNING
RUNNING
RUNNABLE
RUNNABLE
scheduler
timeout
D´epassement de la tranche de
temps allou´ee
task1
task2
RUNNING
RUNNING
SLEEPING
RUNNABLE
I/O access
scheduler
Acc`es bas niveau
task1
task2
RUNNING
RUNNINGRUNNABLE
scheduler
event
RUNNABLE
´evenement externe (interruption)
Dans tous les cas, l’ordonnanceur
va choisir la tˆache la plus
prioritaire (la mˆeme pouvant
reprendre la main).
5 / 20
1 / 20 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!