Voici une ventilation de ce qui se passe lorsqu'un processeur est interrompu:
le mécanisme d'interruption
1. Signal d'interruption: Un événement externe (comme un paquet réseau arrivant, une minuterie à l'expiration ou une erreur matérielle) déclenche un signal d'interruption. Ce signal est envoyé au CPU.
2. Handler d'interruption: Le CPU fait une pause son exécution d'instructions actuelle et saute immédiatement vers un emplacement de mémoire prédéfini appelé "Handler d'interruption". Ce gestionnaire est un morceau de code spécialement conçu pour gérer le type d'interruption qui s'est produit.
3. Économie de contexte: Le processeur enregistre l'état de son exécution actuelle, notamment:
- Counter du programme (PC): L'adresse de l'instruction suivante que le CPU allait exécuter.
- Registres: Les valeurs stockées dans les registres du CPU (qui contiennent des données temporaires).
- Flags: Informations sur l'état sur le CPU (par exemple, drapeau de transport, drapeau zéro).
4. Interruption d'entretien: Le gestionnaire d'interruption prend le contrôle et effectue les actions nécessaires pour répondre à l'événement d'interruption. Cela pourrait impliquer:
- Données de lecture: Par exemple, la lecture des données d'une carte réseau lorsqu'un paquet arrive.
- Envoi de données: Envoi de données à un appareil en réponse à une interruption.
- Mettez à jour l'état du système: Mise à jour des compteurs, des minuteries ou d'autres variables système.
- Gestion des erreurs: Prendre des mesures correctives en cas d'erreur matérielle.
5. Restauration de contexte: Une fois le gestionnaire d'interruption terminé, il restaure le contexte enregistré (PC, registre, drapeaux) vers le CPU.
6. Retour à l'exécution: Le CPU reprend l'exécution du programme d'origine, à partir de l'instruction qui a été interrompue.
Pourquoi les interruptions sont importantes
* Réponse en temps réel: Les interruptions permettent au processeur de gérer les événements en temps réel, en veillant à ce que les tâches critiques (comme la communication réseau ou la réponse à l'entrée des utilisateurs) soient traitées rapidement.
* multitâche: Les interruptions forment la base des systèmes d'exploitation multitâche, permettant à plusieurs programmes de partager le temps du CPU. Le CPU peut basculer rapidement entre les tâches en répondant aux interruptions de minuterie.
* Efficacité: Les interruptions permettent au CPU de se concentrer sur sa tâche principale tout en déléguant la gestion des dispositifs périphériques et d'autres événements aux gestionnaires d'interruption dédiés.
Types d'interruptions
* Interruptions matérielles: Déclenché par des périphériques matériels externes (comme le clavier, les lecteurs de disque, les cartes réseau).
* Interruptions du logiciel: Généré par des instructions dans le programme lui-même (par exemple, appels système, exceptions).
* Interruptions de la minuterie: Généré par une minuterie dans le CPU, utilisé pour la planification et le multitâche.
Exemple:
Imaginez que vous tapez sur votre clavier. Chaque appuyée sur la touche génère une interruption matérielle. Le CPU passe au gestionnaire d'interruption du clavier, lit le code clé et met à jour le tampon où le texte est stocké. Il revient ensuite à votre traitement de texte, qui a désormais accès au personnage nouvellement dactylographié.
|