Question

Je veux savoir qui se visse des interruptions de périphériques de processus. Qu'est-ce qui se passe quand il y a une interruption lorsqu'un thread en mode utilisateur est en cours d'exécution? En outre faire d'autres threads utilisateur la chance de fonctionner lorsque le système est en train de traiter une interruption?

Veuillez me suggérer quelques documents de référence décrivant la façon dont les interruptions sont gérées par des fenêtres.

Était-ce utile?

La solution

appareil s'interrompt sont (généralement) traitées par tous les fils avait la CPU qui a pris l'interruption, mais dans un anneau 0 et à un niveau de protection différent. Cela limite certaines des actions un gestionnaire d'interruption peut prendre, parce que la plupart du temps le thread courant ne sera pas lié au thread qui attend l'événement pour arriver que l'interruption indique.

Le noyau lui-même est la source fermée, et seulement documenté par son API interne. Cette API est exposée aux auteurs de pilote de périphérique, et décrit dans les kits de développement de pilotes.

Quelques ressources pour vous aider à démarrer:

  • Toute édition de Microsoft Windows Internals par Salomon et Russinovich. Le courant semble être la 4ème édition, mais même une ancienne édition vous aidera.

  • Le DDK de Windows, maintenant rebaptisé WDK . Sa documentation est disponible en ligne aussi. Assurez-vous de lire le mode noyau Guide de conception ...

  • Sysinternals a des outils et des articles pour sonder à et expliquer le comportement du noyau. Cette habitude d'être un site indépendant jusqu'à ce que Microsoft a eu assez de Mark Russinovich semblant savoir plus sur la façon dont le noyau a travaillé qu'ils ont fait. ; -)

Notez que le code source à un grand nombre des pilotes de périphériques courants sont inclus dans le DDK dans les échantillons. Bien que les versions de production sont presque certainement différents, la lecture des pilotes d'échantillons peut répondre à certaines questions, même si vous ne voulez pas vous mettre en œuvre un pilote.

Autres conseils

Comme tout autre système d'exploitation, Windows traite les interruptions en mode noyau, avec une élévation Interrompre niveau de priorité (je pense qu'ils les appellent années IRPL, mais je ne sais pas ce que le « R » signifie). Tous les fils de l'utilisateur ou à un niveau inférieur fil noyau en cours d'exécution sur le même ordinateur est interrompue pendant que la demande d'interruption est traitée, et sera reprise lorsque le traitement est terminé ineterrupt.

Pour en savoir plus sur appareil interrompt sous Windows, vous devez étudier le développement du pilote de périphérique. Ceci est un sujet de niche, je ne pense pas que vous pouvez trouver de nombreuses ressources utiles dans le Web et vous pourriez avoir à chercher un livre ou un cours de formation.

Quoi qu'il en soit, poignée de Windows interrompt avec la requête d'interruption (niveaux IRQLs) et procédure différée appelle . Une interruption est gérée en mode noyau, qui se déroule dans une plus grande priorité que le mode utilisateur. Un gestionnaire d'interruption appropriée doit réagir très rapidement. Il effectue uniquement les opérations absolument nécessaires et enregistre un appel de procédure différé afin de fonctionner à l'avenir. Cela se produira, lorsque le système est dans une demande d'interruption de niveau.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top