Interruption vs piège
Sur n'importe quel ordinateur, lors de l'exécution normale d'un programme, il peut y avoir des événements qui peuvent provoquer l'arrêt temporaire du processeur. Des événements comme ceux-ci sont appelés interruptions. Les interruptions peuvent être causées par des défauts logiciels ou matériels. Les interruptions matérielles sont appelées (simplement) des interruptions, tandis que les interruptions logicielles sont appelées des exceptions ou des interruptions. Une exception est une interruption logicielle générée automatiquement, tandis qu'un trap est une interruption invoquée par le logiciel initiée par le programmeur. Une fois qu'une interruption (logicielle ou matérielle) est déclenchée, le contrôle est transféré à un sous-programme spécial appelé ISR (Interrupt Service Routine) qui peut gérer les conditions qui sont déclenchées par l'interruption.
Qu'est-ce qu'une interruption?
Le terme Interruption est généralement réservé aux interruptions matérielles. Ce sont des interruptions de contrôle de programme causées par des événements matériels externes. Ici, externe signifie externe à la CPU. Les interruptions matérielles proviennent généralement de nombreuses sources différentes telles que la puce de minuterie, les périphériques (claviers, souris, etc.), les ports d'E / S (série, parallèle, etc.), les lecteurs de disque, l'horloge CMOS, les cartes d'extension (carte son, vidéo carte, etc.). Cela signifie que les interruptions matérielles ne se produisent presque jamais en raison d'un événement lié au programme en cours d'exécution. Par exemple, un événement comme une pression de touche sur le clavier par l'utilisateur, ou une temporisation matérielle interne peut déclencher ce type d'interruption et peut informer le processeur qu'un certain périphérique nécessite une certaine attention. Dans une situation comme celle-là, le CPU arrêtera tout ce qu'il faisait (c'est-à-dire met en pause le programme en cours),fournit le service requis par l'appareil et reviendra au programme normal. Lorsque des interruptions matérielles se produisent et que la CPU démarre l'ISR, les autres interruptions matérielles sont désactivées (par exemple sur les machines 80 × 86). Si vous avez besoin d'autres interruptions matérielles pendant l'exécution de l'ISR, vous devez le faire explicitement en effaçant l'indicateur d'interruption (avec l'instruction sti). Sur les machines 80 × 86, la suppression de l'indicateur d'interruption n'affectera que les interruptions matérielles.l'effacement de l'indicateur d'interruption n'affectera que les interruptions matérielles.l'effacement de l'indicateur d'interruption n'affectera que les interruptions matérielles.
Qu'est-ce qu'un piège?
Un Trap peut être identifié comme un transfert de contrôle, qui est initié par le programmeur. Le terme Trap est utilisé de manière interchangeable avec le terme Exception (qui est une interruption logicielle automatique). Mais certains peuvent argumenter qu'un piège est simplement un appel de sous-programme spécial. Ils entrent donc dans la catégorie des interruptions invoquées par logiciel. Par exemple, sur des machines 80 × 86, un programmeur peut utiliser l'instruction int pour lancer un trap. Comme un trap est toujours inconditionnel, le contrôle sera toujours transféré au sous-programme associé au trap. L'instruction exacte, qui appelle la routine de gestion du trap est facilement identifiable car une instruction explicite est utilisée pour spécifier un trap.
Quelle est la différence entre Interrupt et Trap?
Les interruptions sont des interruptions matérielles, tandis que les interruptions sont des interruptions appelées par logiciel. Les occurrences d'interruptions matérielles désactivent généralement les autres interruptions matérielles, mais ce n'est pas le cas pour les interruptions. Si vous devez interdire les interruptions matérielles jusqu'à ce qu'une interruption soit servie, vous devez effacer explicitement l'indicateur d'interruption. Et généralement, l'indicateur d'interruption sur l'ordinateur affecte les interruptions (matérielles) par opposition aux interruptions. Cela signifie que la suppression de ce drapeau n'empêchera pas les pièges. Contrairement aux interruptions, les interruptions doivent conserver l'état précédent du processeur.