systeme d`exploitation et temps reel1

publicité
SPECIFICITES DU TEMPS
REEL DANS LES
SYSTEMES
D’EXPLOITATION
• RAPPEL:
Les
systèmes
d'exploitation comportent plusieurs
couches
• Niveau machine: les fonctions du
micro-processeur sont cablées. Le
mode utilisateur est accessible aux
programmes de l'application, alors
que le mode superviseur ne l'est pas.
• Noyau: Ce niveau rassemble des
extensions logicielles du niveau
machine, et gère les interruptions et les
tâches.
• Exécutif: Ce niveau rassemble les
logiciels nécessaires à l'exécution des
programmes tel l'allocation de la
mémoire, la gestion des fichiers et le
pilotage des périphériques.
• Application: ce sont les programmes
spécifiques à une application
• Les niveaux machine et noyau n'ont
pas de spécificité temps réel car ces
niveaux gèrent les interruptions et les
tâches.
• Ce sont donc les niveaux supérieurs
qui vont offrir ou non les outils
permettant de créer des applications
multi-tâche et temps réel.
• Les services d’un OS sont:
– la communication entre tâches
– la synchronisation entre tâches
– la gestion des tâches (commencer, arrêter,
suspendre,...)
– ordonnancer les tâches (allouer la CPU à une
tâche) (*)
– gestion de la mémoire
– gestion des interruptions et des E/S physiques (*)
• Les services d’un OS sont:
– gestion des E/S logiques et gestion des
périphériques
– gestion des fichiers
– traitement des erreurs et exceptions
– gestion du temps
• Sur certains calculateurs spécialisés
(appelés calculateur temps réel),
certains services sont directement
cablés sur les processeurs pour
augmenter leurs performances.
• IV- GESTION DES TÂCHES
• Il existe deux classes de tâches:
• les tâches IMMÉDIATES (extérieures,
hard, routine d'interruption)
• et les tâches DIFFÉRÉES (intérieurs,
soft).
• Une tâche immédiate (TI) s'exécute
lors de l'arrivée d'une interruption sur le
processeur. Ces tâches sont toujours
plus prioritaires que les tâches
différées. Ces tâches sont en général
liées aux entrées sorties et doivent être
les plus rapides possible.
• Les tâches différées (TD) contiennent
les traitements spécifiques à une
application. Elles s'exécutent par
l'intermédiaire
d'instructions
spécifiques.
• Les tâches immédiates sont toujours
plus prioritaires que les tâches
différées.
• La CPU est allouée en priorité aux
tâches Immédiates • c'est le SYSTÈME D'INTERRUPTION
qui s'en charge
• - puis la CPU est allouée aux tâches
différées
qui
sont
gérées
par
L'ORDONNANCEUR.
SYSTÈME D'INTERRUPTION
• Une interruption est un signal physique
qui est cablé sur le processeur (ou
micro-processeur).
• Un changement d'état de ce signal
provoque une rupture de séquence du
processeur, c'est-à-dire une mise en
attente de la tâche différée en cours de
traitement par la CPU au profit de la
tâche
immédiate
associée
à
l'interruption.
• Selon les processeurs, il peut exister
plusieurs
niveaux
d'interruptions
(classés en niveau de priorité),
auxquels correspondent de façon
bijective des tâches immédiates.
• Une interruption de niveau supérieur
peut interrompre une tâche immédiate
de niveau inférieur.
• La majorité des interruptions peuvent
être masquées de façon globale ou
sélective sur les différents niveaux
existants.
• Lorsque qu'une interruption parvient au
processeur et qu'elle n'est pas
masquée,
la
tâche
immédiate
correspondante est exécutée.
• Il existe deux catégories d'interruption:
les interruptions EXTERNES et les
interruptions INTERNES.
• Les interruptions externes sont issues
des périphériques et sont donc liées à
la gestion des entrées/sorties.
• Les interruptions sont générées, soit
parce que le périphérique est prêt (ex:
travail demandé réalisé), soit sur des
événements particuliers
• Les interruptions internes proviennent
du calculateur même et non des
périphériques.
• IT Horloge: une horloge est un
dispositif
matériel
émettant
une
interruption systématique toutes les n
secondes
(ex:
10
me).
Cette
interruption permet de gérer le temps.
• Elle permet la modification de
l'ordonnancement des tâches différées,
démarrage d'une tâche à une heure
précise ou toutes les n secondes,
datation des informations issues de
l'extérieur.
• L'horloge permet la modification de
l'ordonnancement des tâches différées,
démarrage d'une tâche à une heure
précise ou toutes les n secondes,
datation des informations issues de
l'extérieur.
• IT sur erreur (aussi appelée TRAP):
• dépassement
des
capacités
du
processeur
• division par zéro
• instruction machine non conforme
(après un mauvais branchement sur
une portion de données par exemple)
• IT logicielle (TRAP) qui correspond à
l'appel d'un sous-programme qui sera
exécuté en mode superviseur (appel à
une routine système)
• Mécanismes d'Interruption
•
Que se passe t-il lorsqu'une interruption non masquée
parvient au processeur ?
•
La logique du processeur teste de façon cyclique les
différents signaux, et ce uniquement entre chaque
instruction.
• les points d'interruptibilité ne sont
présents qu'entre les instructions..
• Si dans la majorité des cas une
interruption met en attente une tâche
différée, il peut arriver qu'une
interruption arrive pendant le traitement
d'une tâche immédiate. Les règles
suivantes sont appliquées:
• 1) une tâche immédiate de niveau n en
cours d'exécution ne sera jamais
relancée si une nouvelle interruption de
même niveau apparaît. Par contre, à la
fin de son exécution, cette tâche
immédiate sera de nouveau réexécutée.
• 2) Si une tâche immédiate de
niveau n est en cours d'exécution et
qu'une interruption de niveau inférieur
apparaît, la tâche immédiate associée
ne sera exécutée qu'à la fin de la
première.
• Pour ne rater aucune interruption, un
registre spécialisé non accessible par
le programmeur les mémorise
• Lors de l'arrivée d'une interruption, la
CPU est affectée à la tâche immédiate
associée.
• Le processeur recopie dans certains de
ses registres, et ce de façon
automatique, des
données placées
en mémoire. Cette zone s'appelle
"contexte de la tâche".
Contexte d'une tâche
• l'adresse en mémoire de la première
instruction de la tâche immédiate,
valeur recopiée dans le registre
"compteur ordinal" (program counter).
• la valeur du registre d'état de la
tâche, valeur recopiée dans le registre
d'état du processeur.
• l'adresse de la pile de la tâche, valeur
recopiée dans la pile du calculateur.
• Quand le processeur a réalisé ces copies,
l'unité d'exécution est relancée et donc la
prochaine instruction exécutée est bien celle
de la tâche immédiate.
• Les contextes des tâches immédiates sont
rassemblés dans un zone mémoire
spécialisée
appelée
aussi
mémoire
débanalisée. Selon les constructeurs, cette
zone est soit fixée une fois pour toute (en
"haut" ou en "bas" de la mémoire), soit ne
l'est pas et le programmeur place les
contextes où il le souhaite.
•
Contexte étendu d'une tâche
• Sur certains calculateurs, d'autres
registres peuvent faire partie du
contexte, notamment un registre
d'accumulateur (les tâches immédiates
étant associées aux entrées/sorties), il
est en général nécessaire d'utiliser un
accumulateur pour réaliser un transfert
d'information.
• Lors du traitement de la tâche
immédiate,
il
est
absolument
nécessaire d'acquitter l'interruption,
c'est-à-dire qu'il faut au minimum
reconnaître quelle est la source de
l'interruption
et
demander
au
périphérique qui l'a généré de faire
retomber cette interruption.
• Si cela n'est pas réalisé, à la fin de son
traitement, la tâche immédiate se
verrait de nouveau ré-exécutée.
• Quand une tâche immédiate a terminé son
traitement, elle exécute une instruction
particulière (RTE ou RTI, ...) qui va
permettre de relancer la tâche interrompue
(tâche immédiate ou différée).
• Pour faire cela, le système doit, avant
d'interrompre une tâche,sauvegarder son
contexte
• V.4 Identification de la source d'une
interruption externe
• Pour traiter une interruption, il est
nécessaire de déterminer quel est le
périphérique qui l'a générée. Les
méthodes utilisées dépendent des
constructeurs et peuvent être classées
en
deux
méthodes
principales:
l'identification directe et la scrutation
(polling).
• Identification directe:
• Chaque coupleur (contrôleur du
périphérique) est directement cablé à
un niveau d'interruption du processeur.
Comme chaque niveau d'interruption
est associé à une seule tâche
immédiate, le programmeur sait à
l'avance que l'exécution d'une tâche
est activée par un périphérique
particulier.
• L'avantage de cette méthode est la très
grande rapidité de reconnaissance du
périphérique
générateur
de
l'interruption.
• L'inconvénient réside dans le fait que le
nombre de périphérique ne peut pas
dépasser le nombre de niveaux
d'interruption du processeur.
• Scrutation (POLLING)
• Le principe de cette méthode vise à
dépasser
le
nombre
limité
d'interruptions du processeur en
associant
sur
chaque
niveau
d'interruption plusieurs coupleurs.
• La reconnaissance du périphérique se
fait alors soit par logiciel, soit
directement par le processeur.
• Par logiciel, la tâche immédiate doit
interroger successivement le registre
d'état de chaque coupleur associé au
niveau d'interruption pour connaître
celui qui a levé l'interruption et la
traiter.
• Le programme impose de ce fait une
priorité entre les différents coupleurs
d'un même niveau.
• Si deux coupleurs lèvent une
interruption au même moment, la tâche
immédiate associée sera exécutée
deux fois.
• Cette méthode, si elle est simple à
mettre en œuvre, a le désavantage
d'être relativement lente si le nombre
de coupleurs est important.
• Pour accélérer la scrutation, certains
processeurs interrogent en même
temps tous les coupleurs d'un même
niveau, et ce par les bus d'adresse et
par un signal spécialisé.
• Celui qui a levé l'interruption s'identifie
alors, sur le bus de données par
exemple. Il est nécessaire qu'un circuit
logique crée une priorité entre les
périphériques pour éviter que la
reconnaissance échoue si deux
coupleurs d'un même niveau lèvent
une interruption en même temps.
• certains processeurs comme le 68.000,
interrogent les périphériques qui leur
renvoient un numéro de vecteur par
le bus de données que le processeur
interprète comme une adresse, cette
dernière contenant l'adresse de la
tâche
immédiate
(ou
routine
d'interruption).
• Pour le 68.000, il existe 7 niveaux
d'interruptions qui sont codés sur les
pins IPLO, IPL1 et IPL2. Quand un
coupleur lève une interruption, le
processeur termine l'instruction en
cours, réalise la sauvegarde dans la
pile système du compteur ordinal et de
la pile utilisateur, modifie le registre
d'état (passage en mode superviseur et
masquage des interruption de niveaux
inférieurs), et place sur les pins A1, A2
et A3 (bus d'adresse) le niveau
d'interruption qu'il a reconnu.
• En réponse, le coupleur qui a levé
l'interruption place sur le bus de
données (DO à D7), un numéro de
vecteur
qui
donne
pour
le
microprocesseur l'adresse de la routine
d'interruption.
• L'acquittement
d'une
interruption
consiste à indiquer au coupleur que le
processeur a pris en compte le signal,
et que ce dernier ne doit plus être
généré (sinon, la tâche immédiate
serait de nouveau exécutée).
• En général, le processeur réalise cet
acquittement, soit en lisant la donnée
dans un des registres du coupleur, soit
en envoyant une information dans un
registre spécialisé du coupleur.
• VI- GESTION DES TÂCHES
DIFFEREES
• la gestion des tâches immédiates :
tâches dont l'exécution est liée
essentiellement aux interruptions et
donc aux entrées-sorties.
• la gestion des tâches différées (TD),
c'est-à-dire les tâches contenant les
traitements de l'application.
• Dans tous les cas, une tâche
immédiate est prioritaire par rapport
à une tâche différée.
• VI.1- Etats des tâches différées
• Chaque tâche différée est caractérisée
par un état particulier.
• La gestion de ces états est assurée par
l'ordonnanceur (scheduler) qui assure
la mise à jour de paramètres internes à
l'exécutif.
• Cet ordonnanceur assure aussi la
gestion et la commutation des
contextes associés à chacune des
tâches différées.
• une seule tâche différée peut être
exécutée à la fois.
• Si, pour différentes raisons, une tâche
différée doit libérer la CPU au profit
d'une autre, l'ordonnanceur assure la
sauvegarde du contexte de la première
(contexte qui cette fois contient
l'ensemble des registres du processeur
hormis les registres système tels que la
'pile système'), puis la restauration du
contexte de la seconde.
Téléchargement