Différence entre l'interruption et l'exception

Différence entre l'interruption et l'exception

Interruption vs exception

Dans n'importe quel ordinateur, lors de son exécution normale d'un programme, il pourrait y avoir des événements qui peuvent entraîner l'arrêt temporairement du CPU. Des événements comme celui-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) interruptions, tandis que les interruptions logicielles sont appelées exceptions. Une fois qu'une interruption (logiciel ou matériel) est augmentée, le contrôle est transféré vers un sous-programme spécial appelé ISR (routine de service d'interruption) qui peut gérer les conditions qui sont soulevées par l'interruption.

Qu'est-ce que l'interruption?

Le terme interruption est généralement réservé aux interruptions matérielles. Ce sont des interruptions de contrôle du programme causées par des événements matériels externes. Ici, des moyens externes externes au CPU. Les interruptions matérielles proviennent généralement de nombreuses sources différentes telles que la puce de minuterie, les appareils périphériques (claviers, souris, etc.), Ports d'E / S (série, parallèle, etc.), entraînements de disque, horloge CMOS, cartes d'extension (carte son, carte vidéo, 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 touche appuyant sur le clavier par l'utilisateur, ou une synchronisation interne de chronomètre peut soulever ce type d'interruption et peut informer le processeur qu'un certain appareil a besoin. Dans une situation comme celle-ci, le processeur cessera ce qu'il faisait (je.e. Utilise le programme actuel), fournit le service requis par l'appareil et reviendra au programme normal. Lorsque des interruptions matérielles se produisent et que le CPU démarre l'ISR, d'autres interruptions matérielles sont désactivées (e.g. Dans 80 × 86 machines). Si vous avez besoin d'autres interruptions matérielles pour se produire pendant l'exécution de l'ISR, vous devez le faire explicitement en effacistant le drapeau d'interruption (avec instruction STI). Dans les machines 80 × 86, l'effacement de l'indicateur d'interruption n'affectera que les interruptions matérielles.

Quelles sont les exceptions?

L'exception est une interruption logicielle, qui peut être identifiée comme une routine de gestionnaire spécial. L'exception peut être identifiée comme un piège à se produire 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 à l'aide d'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 de zéro, l'exécution d'un opcode ou d'une défaut liée à la mémoire illégale pourrait entraîner des exceptions. Chaque fois qu'une exception est élevée, le CPU suspend temporairement le programme qu'il exécutait et démarre l'ISR. ISR contiendra ce qu'il faut faire à l'exception. Il peut corriger le problème ou s'il n'est pas possible, il peut interrompre le programme gracieusement en imprimant un message d'erreur approprié. Bien qu'une instruction spécifique ne provoque pas d'exception, une exception sera toujours causée par une instruction. Par exemple, la division de zéro erreur ne peut se produire que lors de l'exécution de l'instruction de la division.

Quelle est la différence entre l'interruption et l'exception?

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