Interruption vs piège
Sur n'importe quel ordinateur, lors de l'exécution normale d'un programme, il peut arriver que des événements entraînent l'arrêt momentané de la CPU. Des événements comme ceux-ci s'appellent des 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, alors que les interruptions logicielles sont appelées Exceptions ou Traps. Une exception est une interruption logicielle générée automatiquement, alors qu'une interruption est une interruption invoquée par le logiciel initiée par le programmeur. Une fois qu'une interruption (logicielle ou matérielle) est levée, le contrôle est transféré à un sous-programme spécial appelé ISR (Interrupt Service Routine) capable de gérer les conditions généré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 de programme causées par des événements matériels externes. Ici, des moyens externes externes à la CPU. Les interruptions matérielles proviennent généralement d’un grand nombre de sources différentes telles que la 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, carte son). 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 une temporisation matérielle interne peut déclencher ce type d'interruption et informer le CPU qu'un certain périphérique requiert une certaine attention. Dans une situation comme celle-ci, la CPU arrêtera ce qu’elle faisait (c’est-à-dire met en pause le programme en cours), fournit le service requis par le périphérique et reviendra 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, dans des 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 sti instruction). Dans les machines 80 × 86, effacer 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 Interruption est utilisé indifféremment avec le terme Exception (qui est une interruption logicielle se produisant automatiquement). Mais certains peuvent dire qu'un piège est simplement un appel spécial à un sous-programme. Ils entrent donc dans la catégorie des interruptions invoquées par logiciel. Par exemple, dans les machines 80 × 86, un programmeur peut utiliser le int instruction d'initier un piège. Comme un piège est toujours inconditionnel, le contrôle sera toujours transféré au sous-programme associé au piège. L'instruction exacte, qui appelle la routine de traitement de l'interruption, est facilement identifiable car une instruction explicite est utilisée pour spécifier une interruption..
Quelle est la difference entre Interrupt et Trap?
Les interruptions sont des interruptions matérielles, alors que les interruptions sont des interruptions invoquées par le logiciel. 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 interruptions. Si vous devez interdire les interruptions matérielles jusqu'à ce qu'une interruption soit générée, vous devez désactiver explicitement 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 supprimer ce drapeau n'empêchera pas les pièges. Contrairement aux interruptions, les interruptions doivent préserver l'état précédent de la CPU.