Interruption (informatique)
Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

En informatique, une interruption est un arrêt temporaire de l'exécution normale d'un programme informatique par le microprocesseur afin d'exécuter un autre programme (appelé routine d'interruption).

Dans son acception la plus stricte, le terme ne désigne que des interruptions dont l'exécution est provoquée par des causes externes au programme: avancement d'une horloge, signalisation de la complétion d'un transfert de données (Dans les technologies de l'information (TI), une donnée est une description élémentaire, souvent codée, d'une chose, d'une transaction d'affaire, d'un événement, etc.), etc. Cependant, on l'utilise aussi pour désigner des exceptions, c'est-à-dire des arrêts provoqués par une condition exceptionnelle dans le programme (instruction erronée, accès à une zone mémoire (D'une manière générale, la mémoire est le stockage de l'information. C'est aussi le souvenir d'une information.) inexistante, calcul arithmétique (L'arithmétique est une branche des mathématiques qui comprend la partie de la théorie des nombres qui utilise des méthodes de la géométrie algébrique et...) incorrect, appel volontaire au système d'exploitation...). On parle alors parfois d'interruptions asynchrones pour désigner celles provoquées par un évènement externe, et d'interruptions synchrones pour désigner les exceptions.

Fonctionnement

Lors d'une interruption, le microprocesseur sauve tout (Le tout compris comme ensemble de ce qui existe est souvent interprété comme le monde ou l'univers.) ou une grande partie de son état interne (En France, ce nom désigne un médecin, un pharmacien ou un chirurgien-dentiste, à la fois en activité et en formation à l'hôpital ou en cabinet pendant une durée variable selon le "Diplôme...), généralement dans la pile système, et saute ensuite à la routine d'interruption, généralement en suivant une table qui donne pour chaque type d'interruption la routine à exécuter.

Une fois le traitement de l'interruption terminé, la routine se finit généralement par une (ou plusieurs) instruction (Une instruction est une forme d'information communiquée qui est à la fois une commande et une explication pour décrire l'action, le comportement, la méthode ou la tâche qui devra commencer, se...) de retour d'interruption, qui restaure l'état sauvé et fait repartir le processeur (Le processeur, ou CPU (de l'anglais Central Processing Unit, « Unité centrale de traitement »), est le composant de l'ordinateur qui exécute les programmes informatiques. Avec la mémoire notamment,...) de l'endroit où il avait été interrompu. Dans certains cas, la routine d'interruption modifie les adresses de retour, notamment pour effectuer des commutations de tâches.

Lors du fonctionnement de certaines parties du système d'exploitation, il peut être nécessaire de ne pas permettre les interruptions, soit parce que celles-ci perturberaient un compte serré du temps (Le temps est un concept développé par l'être humain pour appréhender le changement dans le monde.), soit parce que des structures de données sont en cours de modification (on réalise ainsi une sorte de verrou d'exclusion mutuelle (Un Mutex (anglais : Mutual exclusion, Exclusion mutuelle) est une primitive de synchronisation utilisée en programmation informatique pour éviter que des ressources non...) dans un système mono-processeur). Aussi, on peut généralement bloquer (on dit souvent masquer) les interruptions. Dans la plupart des systèmes, les interruptions bloquées sont accumulées, c'est-à-dire qu'elles sont exécutées dès qu'elles sont démasquées. Cependant, pour chaque type d'interruption, le compteur d'interruptions en attente se réduit souvent à un simple drapeau; si cela peut ne pas être gênant si l'interruption signale des données en attente sur un périphérique, cela peut cependant occasionner des mauvais comptes si l'interruption déclenche l'incrémentation d'une horloge, si les interruptions sont bloquées pour une durée supérieure à la période de l'horloge.

Sur certains systèmes, il existe une interruption non masquable, généralement dédiée au signalement d'une erreur catastrophique pour le système (par exemple, détection d'une erreur mémoire par code correcteur d'erreurs).

Les interruptions peuvent par ailleurs être hiérarchisées suivant des priorités. Une interruption de priorité supérieure est prise en compte lors du traitement d'une autre interruption, mais une interruption de priorité inférieure est mise en attente.

Usages

On utilise les interruptions principalement dans deux buts:

  • afin de permettre des communications non bloquantes avec des périphériques externes;
  • afin de commuter entre les tâches dans un ordonnanceur.

Entrées-sorties

Lorsque le microprocesseur interroge un périphérique (disque dur, port de communication (La communication concerne aussi bien l'homme (communication intra-psychique, interpersonnelle, groupale...) que l'animal (communication intra- ou inter- espèces) ou la...)...), il y a en général des délais avant que les données ne puissent être obtenues ou transmises. La solution la plus simple est simplement d'attendre les données ou la fin de la transmission en bouclant répétitivement sur un test (attente active, ou polling). Malheureusement, cela bloque tout programme en cours, ce qui est gênant sur un système multi-tâche. Sur les systèmes modernes, on préfère donc généralement un fonctionnement par interruption: le périphérique signale par une interruption qu'il est prêt à émettre, ou que les données ont été transmises ou reçues, et une routine fait le traitement nécessaire. Pour les périphériques rapides (disque dur, USB...), on combine généralement ce procédé avec l'accès direct (Un logiciel fait un accès direct (aussi appelé accès aléatoire) à un élément (par exemple, un enregistrement d’un fichier) lorsqu’il écrit ou...) en mémoire (DMA) : des blocs de données sont lus ou écrits en mémoire par le contrôleur sans intervention du processeur, qui n'intervient qu'en début et en fin de transfert.

L'usage (L’usage est l'action de se servir de quelque chose.) d'interruptions par rapport au polling permet aussi des économies d'énergie (Dans le sens commun l'énergie désigne tout ce qui permet d'effectuer un travail, fabriquer de la chaleur, de la lumière, de produire un mouvement.) et un moindre échauffement : les microprocesseurs actuels possèdent généralement une instruction arrêtant le microprocesseur en attente d'une interruption.

Multi-tâche

On utilise également les interruptions pour commuter les tâches dans les systèmes multi-tâches. Généralement, une interruption périodique est déclenchée par une horloge (souvent 100 ou 1000 Hz), et l'ordonnanceur est alors mis en action. Il peut commuter les tâches en modifiant la tâche de retour de l'interruption.

Page générée en 0.063 seconde(s) - site hébergé chez Amen
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
Ce site est édité par Techno-Science.net - A propos - Informations légales
Partenaire: HD-Numérique