Différence entre interruption et déroutement

Différence entre interruption et déroutement
Différence entre interruption et déroutement

Vidéo: Différence entre interruption et déroutement

Vidéo: Différence entre interruption et déroutement
Vidéo: Chapitre 1 - Systèmes temps réel 2024, Juillet
Anonim

Interruption vs Piège

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 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) Interruptions, tandis que les interruptions logicielles sont appelées Exceptions ou Traps. Une exception est une interruption logicielle générée automatiquement, tandis qu'un piège 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 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 tout 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 ex.g. en 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 qu'un piège ?

Un piège peut être identifié comme un transfert de contrôle initié par le programmeur. Le terme Trap est utilisé de manière interchangeable avec le terme Exception (qui est une interruption logicielle se produisant automatiquement). Mais certains peuvent prétendre qu'un déroutement est simplement un appel de sous-programme spécial. Ils entrent donc dans la catégorie des interruptions invoquées par logiciel. Par exemple, dans les machines 80 × 86, un programmeur peut utiliser l'instruction int pour déclencher un déroutement. Etant donné qu'un déroutement est toujours inconditionnel, le contrôle sera toujours transféré au sous-programme associé au déroutement. L'instruction exacte, qui invoque la routine pour gérer le déroutement, est facilement identifiée car une instruction explicite est utilisée pour spécifier un déroutement.

Quelle est la différence entre Interrupt et Trap ?

Les interruptions sont des interruptions matérielles, tandis que les interruptions sont des interruptions invoquées par le logiciel. Les occurrences d'interruptions matérielles désactivent généralement d'autres interruptions matérielles, mais ce n'est pas vrai pour les interruptions. Si vous devez interdire les interruptions matérielles jusqu'à ce qu'un déroutement soit servi, 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 interruptions. Cela signifie que la suppression de ce drapeau n'empêchera pas les pièges. Contrairement aux traps, les interruptions doivent préserver l'état précédent du CPU.

Conseillé: