Différence entre interruption et exception

Différence entre interruption et exception
Différence entre interruption et exception

Vidéo: Différence entre interruption et exception

Vidéo: Différence entre interruption et exception
Vidéo: C'est pas sorcier -INONDATIONS : sorciers prennent l'eau 2024, Juillet
Anonim

Interruption vs Exception

Sur n'importe quel ordinateur, lors de l'exécution normale d'un programme, des événements peuvent entraîner l'arrêt temporaire du processeur. 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 (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 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 du programme causées par des événements matériels externes. Ici, externe signifie externe au 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 tel qu'une pression sur une touche du clavier par l'utilisateur ou l'expiration d'un temporisateur matériel 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 telle situation, le CPU arrête ce qu'il faisait (c'est-à-dire met en pause le programme en cours), fournit le service requis par l'appareil et revient au programme normal. Lorsque des interruptions matérielles se produisent et que le CPU démarre l'ISR, les autres interruptions matérielles sont désactivées (par exemple, dans les machines 80 × 86). Si vous avez besoin que d'autres interruptions matérielles se produisent pendant l'exécution de l'ISR, vous devez le faire explicitement en effaçant l'indicateur d'interruption (avec l'instruction sti). Dans les machines 80 × 86, la suppression de l'indicateur d'interruption n'affectera 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 déroutement automatique (un déroutement peut être identifié comme un transfert de contrôle initié par le programmeur). Généralement, il n'y a pas d'instructions spécifiques associées aux exceptions (les interruptions sont générées à l'aide d'une instruction spécifique). Ainsi, une exception se produit en raison d'une condition "exceptionnelle" qui se produit pendant l'exécution du programme. Par exemple, une division par zéro, l'exécution d'un opcode illégal ou une erreur liée à la mémoire peuvent provoquer des exceptions. Chaque fois qu'une exception est déclenchée, le CPU suspend temporairement le programme qu'il était en train d'exécuter et démarre l'ISR. ISR contiendra ce qu'il faut faire avec l'exception. Il peut corriger le problème ou, si ce n'est pas possible, interrompre le programme en affichant 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, l'erreur de division par zéro ne peut se produire que pendant l'exécution de l'instruction de division.

Quelle est la différence entre interruption 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 vrai pour les exceptions. Si vous devez interdire les interruptions matérielles jusqu'à ce qu'une exception soit servie, vous devez explicitement effacer l'indicateur d'interruption. Et généralement, l'indicateur d'interruption sur l'ordinateur affecte les interruptions (matérielles) par opposition aux exceptions. Cela signifie que la suppression de cet indicateur n'empêchera pas les exceptions.

Conseillé: