Qu’est-ce qu’une interruption ?
Définition
Une interruption est un signal envoyé au processeur par un
périphérique ou un programme pour indiquer qu’un événement
nécessite une attention immédiate.
Utilité
Les interruptions permettent au CPU de gérer plusieurs tâches de
manière efficace sans avoir à surveiller en permanence l’état des
périphériques.
Types d’interruptions
Interruptions matérielles
Générées par des périphériques matériels (clavier, souris, disque
dur, etc.) pour signaler un événement (exemple : une touche
pressée).
Interruptions logicielles
Générées par des programmes pour demander un service au
système d’exploitation (exemple : un appel système).
Exceptions
Interruptions causées par des erreurs ou des événements imprévus
(exemple : division par zéro).
Mécanisme des interruptions
Étapes du mécanisme
Le processus d’interruption suit généralement ces étapes :
1. Le périphérique ou le programme génère une interruption.
2. Le CPU interrompt l’exécution du programme en cours.
3. Le CPU sauvegarde l’état actuel (registres, compteur de
programme, etc.).
4. Le CPU exécute le gestionnaire d’interruption approprié.
5. Une fois l’interruption traitée, le CPU restaure l’état
précédent et reprend l’exécution du programme.
Gestionnaire d’interruption
Rôle
Le gestionnaire d’interruption (ou routine d’interruption) est un
programme spécifique qui traite l’interruption. Il est stocké dans
une table appelée **vecteur d’interruptions**.
Fonctionnement
▶ Le CPU utilise le numéro d’interruption pour localiser le
gestionnaire dans la table.
▶ Le gestionnaire exécute les actions nécessaires (exemple : lire
des données d’un périphérique).
▶ Une fois terminé, le gestionnaire retourne le contrôle au
programme interrompu.
Contrôleur d’interruption (PIC)
Rôle du contrôleur d’interruption
Le contrôleur d’interruption (PIC, Programmable Interrupt
Controller) est un composant matériel qui gère les interruptions
matérielles. Il agit comme un intermédiaire entre les périphériques
et le CPU.
Fonctions principales
▶ Priorisation : Détermine l’ordre de traitement des
interruptions en fonction de leur priorité.
▶ Masquage : Permet d’ignorer temporairement certaines
interruptions.
▶ Routage : Transmet l’interruption au CPU et fournit le
numéro d’interruption.
Fonctionnement du contrôleur d’interruption
Étapes du fonctionnement
1. Un périphérique génère une interruption et la signale au
contrôleur d’interruption.
2. Le contrôleur détermine la priorité de l’interruption.
3. Si l’interruption est de haute priorité, le contrôleur envoie un
signal au CPU.
4. Le contrôleur fournit au CPU le numéro d’interruption
(vecteur).
5. Le CPU exécute le gestionnaire d’interruption correspondant.
Avancées : APIC et contrôleurs modernes
APIC (Advanced Programmable Interrupt Controller)
Les systèmes modernes utilisent des contrôleurs d’interruption
avancés (APIC) pour gérer les interruptions dans les
environnements multi-processeurs.
Fonctionnalités avancées
▶ Gestion des interruptions dans les systèmes multi-cœurs.
▶ Distribution des interruptions entre les processeurs.
▶ Prise en charge des interruptions matérielles et logicielles.
Priorité des interruptions
Gestion des priorités
Les interruptions peuvent avoir des niveaux de priorité. Le CPU
traite les interruptions de haute priorité avant celles de basse
priorité.
Masquage des interruptions
Le CPU peut temporairement ignorer certaines interruptions
(masquage) pour terminer des tâches critiques.
Exemple concret
Scénario
Un utilisateur appuie sur une touche du clavier :
1. Le clavier génère une interruption matérielle.
2. Le contrôleur d’interruption reçoit l’interruption et détermine
sa priorité.
3. Le contrôleur envoie un signal au CPU avec le numéro
d’interruption.
4. Le CPU interrompt le programme en cours et sauvegarde son
état.
5. Le CPU exécute le gestionnaire d’interruption du clavier.
6. Le gestionnaire lit la touche pressée et la stocke en mémoire.
7. Le CPU restaure l’état précédent et reprend l’exécution du
programme.
Avantages des interruptions
Efficacité
Les interruptions permettent au CPU de ne pas perdre de temps à
surveiller les périphériques (évite le polling).
Réactivité
Les événements sont traités rapidement, ce qui améliore la
réactivité du système.
Multitâche
Les interruptions permettent au système de gérer plusieurs tâches
simultanément.
Résumé
Points clés
▶ Une interruption est un signal envoyé au CPU pour traiter un
événement.
▶ Les interruptions peuvent être matérielles, logicielles ou des
exceptions.
▶ Le contrôleur d’interruption (PIC ou APIC) gère les
interruptions matérielles et les priorise.
▶ Le mécanisme d’interruption implique la sauvegarde de l’état,
l’exécution d’un gestionnaire et la restauration de l’état.
▶ Les interruptions améliorent l’efficacité, la réactivité et le
multitâche.