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: Cours Archi 2 Les interruptions (P1) 2024, Avril
Anonim

Interruption vs exception

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 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) des interruptions, tandis que les interruptions logicielles sont appelées des 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 qui sont déclenché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 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 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.

Que sont les exceptions?

L'exception est une interruption logicielle, qui peut être identifiée comme une routine de gestion spéciale. Une exception peut être identifiée comme un trap se produisant automatiquement (un Trap peut être identifié comme un transfert de contrôle, qui est initié par le programmeur). En général, 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, la 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 processeur suspend temporairement le programme qu'il exécutait 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, il peut abandonner le programme correctement 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, 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 une interruption et une 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 les 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 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 exceptions. Cela signifie que la suppression de cet indicateur n'empêchera pas les exceptions.

Recommandé: