0% ont trouvé ce document utile (0 vote)
205 vues35 pages

Mécanismes d'interruptions en systèmes d'exploitation

Ce chapitre traite des mécanismes de base utilisés par les systèmes d'exploitation, notamment les interruptions matérielles et logicielles, les déroutements, et les appels système. Il décrit également les niveaux d'interruptions, le masquage et le démasquage des interruptions.

Transféré par

Wided Touhami
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
205 vues35 pages

Mécanismes d'interruptions en systèmes d'exploitation

Ce chapitre traite des mécanismes de base utilisés par les systèmes d'exploitation, notamment les interruptions matérielles et logicielles, les déroutements, et les appels système. Il décrit également les niveaux d'interruptions, le masquage et le démasquage des interruptions.

Transféré par

Wided Touhami
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre 3: Mécanismes de base

Objectifs
 Comprendre le principe des interruptions
matérielles et des interruptions logicielles.
 Comprendre la différence entre :
Interruptions, déroutements et appels
système
 Savoir comment le système d’exploitation
utilise ces mécanismes de base pour la gestion
des entrés-sortie, des processus,…
1. Rappels et définitions
a. Processeur
 Dispositif physique capable d’exécuter des
instructions
 Peut prendre un certain nombre d’états distincts.
 Le processeur communique avec un
environnement : Mémoire centrale,
Périphériques, …
 Le processeur est capable de modifier son état et
celui de son environnement en exécutant des
instructions.
b. Exécution d’un programme
 Un programme doit être chargé en mémoire
centrale pour pouvoir être exécuté.
 Le processeur charge l’instruction à exécuter
à partir de la mémoire dans un registre
interne appelé Registre Instruction (RI).
 L’adresse de la prochaine instruction à
exécuter se trouve dans un registre spécial
appelé Compteur Ordinal (CO).
b. Exécution d’un programme (2)

Processeur Mémoire Centrale


Système
RI
UAL Instr k 4500 Instruction 1
4501 Instruction 2
CO
….. ……
UC 5001 5000 Instruction K
….. …….
5600 Instruction n
c. Point interruptible
 Par convention, l’état d’un processeur et de
son environnement n’est pas défini pendant
l’exécution d’une instruction (sauf instruction
interruptible)
 Le processeur et son environnement ne sont
observables qu’aux points interruptible ou
points observable.
 Point interruptible: instant entre l’exécution
de deux instructions.
c. Point interruptible (2)

Instr 1 Instr 2 Instr 3 ….. Instr n

Points interruptibles

 Remarque: Certaines instructions sont


interruptibles.
 Exemple: interruptible-restartable instructions: LDM,
STM, PUSH, POP.
d. Etat d’un processeur
 Défini par les valeurs d’un ensemble de ses
registres.
 Deux types de registres :
1.Les registres programmables ou externes:
désignés explicitement comme opérandes dans
une instruction. Exemple: AX, BX, CX, DX, …
2.Les registres internes : Opérandes implicites de
certaines instructions.
e. Contexte d’un processus
 Toutes les informations qui permettront à un CPU de
reprendre l’exécution du processus interrompu sont
sauvegardés lorsqu’une une interruption est détectée.
 Ces informations en un point observable sont :
 Un mot d’état programme (Program Status Word ou PSW)
 L’adresse de la prochaine instruction à exécuter, contenue dans le
compteur ordinal (CO)
• Les indications sur l’état du CPU au moment de l’interruption (le
mode d'exécution « maître/esclave », masque d'interruption, etc..)
données par le registre d’état (ou flags),
 Les opérandes et les résultats intermédiaires contenus
dans les registres externes,
 Liste des fichiers ouverts,….
e. Contexte d’un processus

 Ces informations représente l’état ou le


contexte du programme interrompu.
 Lorsque le traitement de l’interruption est
terminé, le contexte du programme est
restauré.
 Les informations sauvegardées sont chargés dans
leurs registres respectifs
f. Mode d’exécution et mode
d’adressage
 Dans un système multiprogrammé on doit
protéger :
 Le système des accès non autorisés des applications
utilisateurs;
 Les applications utilisateurs entre eux.
 Solutions
 Contrôler l’utilisation des instructions;
 Contrôler l’accès à la mémoire.
Comment contrôler l’utilisation des instructions?
Mode d’exécution
 Sur de nombreuses machines, on utilise deux
modes d’exécutions :
 Mode système (ou mode maître): on peut
exécuter toutes les instructions de la machine.
 Mode utilisateur (ou mode esclave): On ne peut
exécuter qu’un sous ensemble du répertoire
d’instructions:
 Dans ce mode on ne peut pas exécuter les instructions
privilégiées : instructions d’E/S; instructions de
modification de la protection mémoire; …
Mode d’exécution
 Pour spécifier(définir) le mode d’exécution, on
ajoute dans le PWS un bit appelé mode
d’exécution:
 Bit=1 : Mode Système;
 Bit=0 : Mode Utilisateur.
Comment l’application utilisateur peut-il
effectuer des opérations d’E/S ?
 L’application utilisateur doit passer par un appel
système (ou appel au superviseur).
 Exemple: instruction int du 80x86.
Mode d’adressage
 Comment contrôler l’accès à la mémoire?
 Sur les machines supportant la mémoire
virtuelle, un bit du mot d’état indique le type
d’adressage utilisé :
 Adressage virtuel: pour les application
utilisateurs,
 Adressage réel: pour le système d’exploitation.
2. Les interruptions
a. Notion d’interruption
 Sous le contrôle d’un SE multitâche, le CPU est
en permanence susceptible d’exécuter un
programme.
 Le problème est de savoir à quel moment le CPU
va pouvoir prendre en compte les événements
extérieurs à la séquence d'instructions qu‘il
exécute :
 Frappe d'une touche sur le clavier,
 Déplacement de la souris,
 Fin d'impression,
 Un paquet arrive sur la carte réseau,
 Passage d’un objet devant un capteur,….
a. Notion d’interruption (2)
 Il faut donc introduire un mécanisme matériel
qui indique au processeur d’arrêter le traitement
courant. Ce mécanisme s’appelle une
interruption.
 A chacun de ces interruptions correspond une
procédure spécifique à exécuter par le CPU.
Traitement de la
requête

Exécution du Continuation du
programme en cours programme

Requête
b. Définition d’interruption

 Une interruption est un mécanisme qui


permet d'interrompre l'exécution d'un
processus suite à un événement extérieur ou
intérieur et de passer le contrôle à une routine
dite "routine d'interruption" ou "traitement
d’interruption".
c. Classes d’interruptions

 Il existe 3 classes d’interruptions


 Les interruptions matérielles
 Les interruptions logicielles
 Les déroutement
c.1. Interruption matérielles
 Sollicitée par le matériel pour effectuer un traitement
(lire une touche du clavier par exemple).
 Dans ce cas le matériel déclenche une IRQ (Interrupt
ReQuest) possédant un numéro propre au port auquel
le matériel est connecté. Chaque IRQ correspond à une
interruption particulière.
 Ce signal modifie l'état d'un indicateur qui est
régulièrement testé par le CPU (les points
interruptibles).
 Pour déterminer la cause de l'interruption on utilise un
indicateur, pour les différentes causes, On parle alors
du vecteur d'interruptions.
Interruption matérielles (2)
Vecteur d’interruption
 On associe a chaque cause d'interruption un
numéro k qui l'identifie.
 On dispose également dans les adresses basses
de la mémoire d'une table appelée le vecteur
d'interruptions (vi).
 Les cases vi[k] de cette table contiennent
l'adresse de la routine a exécuter lors d'une
interruption de cause k.
 Cette routine est appelée le traitant
d'interruption de cause k.
Vecteur d’interruption
c.2 Les appels au superviseur
 Le programme courant lui-même peut
déclencher une interruption à l’aide d’une
instruction spéciale: un appel système.
 Cela permet, d’utiliser certains services du
système qui nécessitent des privilèges
réservés au système.
 Exemple(sous linux): open(), read(), kill(),
fork(), exec(),
c.3. Les déroutements
 Des interruptions internes produites par le
processeur, sur des erreurs par exemple :
 Division par zéro,
 Dépassement de capacité,
 Erreur d'adressage,
 Accès à une zone de mémoire protégée, etc..
 Ces interruptions sont généralement
appelées exceptions.
d. Niveaux d’interruptions et
propriétés
 Dans système d'interruptions, on associe à
chaque interruption, une priorité qui permet de
regrouper les interruptions en classes ou niveaux.
 Chaque niveau est caractérisée par un degré
d'urgence d'exécution de son programme
d'interruption.
Règle : Une interruption de niveau i est plus
prioritaire qu'une interruption de niveau j si i < j.
d. Niveaux d’interruptions et
propriétés

 Pour quoi ces niveaux d’interruption?


 L'intérêt d’un tel système est la solution de
problèmes tels que :
 Arrivée de plusieurs d'interruption pendant
l'exécution d'une instruction,
 Arrivée d'une d'interruption pendant l'exécution
du traitement d'une interruption précédente
Niveaux d’interruptions et propriétés

Priorité 8 5 6 3

10 Processus en Continuation
exécution du processus

Temps
e. Masquer une interruption
 Certaines séquences d’instructions ou
programmes doivent être exécutées de
manière atomique (ou sans interruption).
Comment protéger ces programmes ?
 Masquer les interruptions :Retarder le
mécanisme de changement d’état provoqué
par l’arrivée d’une l’interruption.
Masquer une interruption
 Certaines interruptions présentent tellement
d'importance qu'il ne doit pas être possible
d'interrompre leur traitement.
 On masquera alors les autres interruptions pour
empêcher leur prise en compte.
Une interruption masquée n'est pas ignorée :
elle est prise en compte dès qu'elle est
démasquée.
f. Armer et désarmer une interruption
 Au contraire (de masquage d’interruption),
on peut supprimer complètement l'effet d'un
niveau d'interruption :
 On dit alors que le niveau est désarmé ou
inhibée.
 Une interruption désarmée sera ignorée et donc
perdue.
 Par défaut, les interruptions sont
évidemment armées.
j. Interruptions et gestion des
processus
 Les interruptions induites par l'horloge permettent la
gestion du temps par le système d'exploitation.
 Le système peut programmer l'horloge pour que celle-
ci génère une interruption toutes les 10 ms (par
exemple).
 A chacune de ces interruptions le système peut
reprendre la main et exécuter un algorithme de choix
de tâches (ordonnanceur) de manière à éviter qu'un
programme monopolise le CPU.
 Ces interruptions peuvent également servir à la
gestion du temps dans les programmes.
h. Schéma général d’un programme de
traitement d’interruption
 Le système d'interruption est un dispositif,
incorporé au niveau du séquenceur, qui
enregistre et traite les signaux d'interruption:
1. Arrêter le processus en cours ;
2. Identification de la source d'interruption;
3. Sauvegarder le contexte du processus interrompu;
4. Exécuter le programme de routine d'interruption ;
5. Restaurer le contexte du processus interrompu;
6. Reprendre l'exécution du processus interrompu.
Schéma général d’un programme de
traitement d’interruption

Vous aimerez peut-être aussi