Entre Interruption et Exception

Anonim

Interruption / Exception

Dans certains ordinateurs, des événements peuvent provoquer l'arrêt temporaire du processeur pendant l'exécution normale d'un programme. Les événements comme celui-ci sont appelés interruptions. Les interruptions peuvent être causées par des pannes logicielles ou matérielles. Les interruptions matérielles sont appelées (simplement) Interruptions, tandis que les interruptions logicielles sont appelées Exceptions. Une fois qu'une interruption (logiciel ou matériel) 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 soulevées par l'interruption.

Qu'est-ce que l'interruption?

Le terme Interrupt est généralement réservé aux interruptions matérielles. Ce sont des interruptions de contrôle de programme provoquées par des événements matériels externes. Ici, des moyens externes externes à la CPU. Les interruptions matérielles proviennent généralement de nombreuses sources différentes telles que les minuteries, les périphériques (claviers, souris, etc.), les ports E / S (série, parallèle, etc.), les lecteurs de disque, l'horloge CMOS, les cartes d'extension carte, etc.). Cela signifie que les interruptions matérielles ne se produisent presque jamais en raison d'un événement lié au programme d'exécution. Par exemple, un événement comme une pression sur le clavier par l'utilisateur ou un temporisateur interne de temporisation peut déclencher ce type d'interruption et peut informer le processeur qu'un certain périphérique a besoin d'attention. Dans une situation comme celle-ci, le processeur arrête ce qu'il faisait (c'est-à-dire met le programme en pause), fournit le service requis par l'appareil et retourne au programme normal. Lorsque des interruptions matérielles se produisent et que la CPU démarre l'ISR, d'autres interruptions matérielles sont désactivées (par exemple, sur des machines 80 × 86). Si vous avez besoin d'autres interruptions matérielles pendant que l'ISR est en cours d'exécution, vous devez le faire explicitement en effaçant le drapeau d'interruption (avec l'instruction sti). Dans les machines 80 × 86, l'effacement du drapeau d'interruption n'affecte que les interruptions matérielles.

Qu'est-ce que les exceptions?

Exception est une interruption logicielle, qui peut être identifiée comme une routine de gestionnaire spéciale. L'exception peut être identifiée comme un piège survenant automatiquement (un piège peut être identifié comme un transfert de contrôle, qui est initié par le programmeur). Généralement, il n'y a pas d'instructions spécifiques associées aux exceptions (les pièges sont générés en utilisant une instruction spécifique). Ainsi, une exception se produit en raison d'une condition "exceptionnelle" qui se produit lors de l'exécution du programme. Par exemple, la division par zéro, l'exécution d'un code d'opération illégal ou d'une erreur liée à la mémoire peut provoquer des exceptions. Chaque fois qu'une exception est déclenchée, le processeur suspend temporairement le programme qu'il exécutait et lance le rapport ISR. ISR contiendra quoi faire avec l'exception. Il peut corriger le problème ou, si cela n'est pas possible, interrompre le programme avec élégance en imprimant un message d'erreur approprié.Bien qu'une instruction spécifique ne provoque pas d'exception, une exception sera toujours provoquée par une instruction. Par exemple, la division par erreur zéro ne peut se produire que pendant l'exécution de l'instruction de division.

Quelle est la différence entre Interrupt et Exception?

Les interruptions sont des interruptions matérielles, tandis que les exceptions sont des interruptions logicielles. Les occurrences d'interruptions matérielles désactivent généralement d'autres interruptions matérielles, mais ce n'est pas le cas pour les exceptions. Si vous devez interdire les interruptions matérielles jusqu'à ce qu'une exception soit servie, vous devez explicitement désactiver l'indicateur d'interruption. Et généralement, le drapeau d'interruption sur l'ordinateur affecte les interruptions (matérielles) par opposition aux exceptions. Cela signifie que l'effacement de ce drapeau n'empêchera pas les exceptions.