qu'entend-on par la désactivation des interruptions?
Lors de la saisie d'un inteerupt gestionnaire, nous avons d'abord "désactiver les interruptions" sur le cpu(en utilisant la cli d'instructions x86). Pendant le temps que les interruptions sont désactivées, supposons dire que l'utilisateur appuie sur la lettre " a " sur le clavier qui serait normalement entraîner une interruption. Mais depuis les interruptions sont désactivées, cela signifie que:
- le gestionnaire d'interruption de " a " ne sont jamais utilisés, car les interruptions sont désactivées dans la section critique ou
- l'interruption sera gérée par l'os, mais retardée, jusqu'à ce que les interruptions sont activées à nouveau.
Plus précisément, le besoin de l'utilisateur à appuyer sur " a "à nouveau, si la première fois il a appuyé sur" a " à un moment où les interruptions ont été désactivés ?
OriginalL'auteur trohit | 2010-08-06
Vous devez vous connecter pour publier un commentaire.
Souvent, une interruption est en "file d'attente" par le matériel.
[Une interruption est souvent juste une porte logique qui peuvent coller sur; une fois c'est sur, il y reste pendant un certain temps.]
Si l'utilisateur cliquait sur " a " qu'une seule fois au cours de l'intervalle lorsque les interruptions ont été désactivé, il s'inscrire comme une interruption lorsqu'ils ont été ré-activé.
Si l'utilisateur en quelque sorte réussi à frapper 'a' deux fois au cours de l'intervalle lorsque les interruptions ont été désactivés, on pourrait s'inscrire comme une interruption quand ils sont activés. Si c'était la première ou la seconde dépend de la précision de la porte logique de configuration.
Cela en fonction sur le clavier. Les claviers modernes ont un petit tampon qui permettra d'enregistrer les événements de clavier pendant que votre ordinateur est en cours de traitement. La plupart des claviers d'attribuer le caractère touches une position (X + Y) pour économiser de la bande passante et de l'argent, au détriment de la prévention de certaines clés de la presse combinaisons de s'inscrire correctement dans des conditions extrêmes où le PROCESSEUR n'arrive pas à suivre, mais certains claviers aussi d'envoyer des touches individuellement. La plupart des claviers envoyer touche de modification des événements séparément, par exemple, et certains jeux de claviers, de faire de même pour le
WASD
et les touches fléchées.OriginalL'auteur S.Lott
La réponse est que cela dépend si vous étiez déjà en cours de traitement d'une interruption de clavier.
La plupart des routines de service d'interruption (ISR) ont le code à la fin de ceux qui en informe le matériel qu'il a été "réparé." Dans le cas du contrôleur de clavier, les commandes sont écrites en reconnaissant les octets reçus. C'est au moment de la confirmation que le contrôleur de clavier matériel de cesse de l'utilisation de l'électricité pour signaler une condition d'interruption.
Si vous vous occupez d'une non-interruption de clavier, disons que l'alarme incendie, interruption, du clavier, du matériel électrique affirme que l'interruption de déclencher tant que la touche est enfoncée. Le signal électrique est ignoré jusqu'à ce que le PROCESSEUR est interrompt de nouveau activée. À la fin de l'entretien le feu interruption d'alarme, l'alarme incendie ISR reconnaît toutes les données et ré-active les interruptions sur le CPU. Immédiatement, le PROCESSEUR passe d'une interruption, car le contrôleur de clavier est toujours électriquement signaler une condition d'interruption.
Si vous vous occupez d'une interruption de clavier, et l'utilisateur tape un deuxième de frappe lors de l'exécution de votre clavier ISR, puis il ya une chance de le manque des données à partir de la deuxième frappe, ou de la recevoir plus tard. En particulier, si le rapport de recherche internationale réinitialise le contrôleur de clavier grâce à un accusé, mais le rapport de recherche internationale n'a pas reçu tous les octets disponibles à l'extérieur du clavier contrôleur, alors que c'est un problème.
Souvent, un rapport de recherche internationale sera d'abord gérer l'interruption qui a déclenché son activation, puis après prise en compte de l'interruption, de sondage de l'appareil pour voir si elle a reçu plus de données depuis la première interruption. Si oui, de générer une interruption logicielle à l'entrer de l'ISR et de la maintenance de l'appareil.
OriginalL'auteur Heath Hunnicutt
La réponse est simple, une interruption désactive automatiquement plus d'interruptions. Les interruptions doivent et sont désactivés pour la plus courte période seulement. La première instruction dans l'original AU BIOS clavier ISR a été
STI
activer les interruptions.La réponse est heureux que la PIC priorise les interruptions matérielles et même avec des interruptions activées que l'interruption de l'horloge IRQ0 pouvez interrompre le clavier ISR. Bien sûr, un laboratoire national de métrologie peut se produire de toute façon, mais heureusement cela ne se produit jamais sur un PC actuel.
OriginalL'auteur Mike Gonta
Il serait physiquement impossible pour un utilisateur d'appuyer sur "a" deux fois pendant la durée normale du traitement d'une interruption. Il serait terriblement peu probable, même si il a appuyé sur deux touches à la fois, mais le matériel doit tenir au moins une clé jusqu'à ce que le CPU est prêt pour l'obtenir.
Sur Pc--c'est d'atteindre le CHEMIN du retour à mon PCXT jours, le clavier sous-système peut tenir dans la zone de 13 touches pour le CPU.
OriginalL'auteur Bill K
Désactiver perturber ont diffrent la preuve.
1. Défaillance matérielle
2.exceptions { par exemple: division par zéro }
et ect.
Ou par exemple : pour les e/S de l'appareil.
si le perturber l'était pas, l'ordinateur n'était pas l'efficacité!
OriginalL'auteur saeed eivazi