cmoila a écrit :
Les interruptions et conséquences logicielles sont un sujet très vaste. Je vais essayer de résumer en simplifiant pas trop.
D'abord, les interruptions sont un concept matériel. C'est à dire que c'est une fonctionnalité du CPU (des pates, sur la puce). Un PIC sert justement à ça. La plus simple des interruptions c'est le bouton reset du PC, qui oblige la puce a se réinitialiser immédiatement quelque soit la situation.
Bien sûr, si les interruptions c'est du matériel, il y a forcement une partie logiciel qui va avec. Cette partie c'est la gestion du matériel de bas niveau c'est à dire le noyau de base du système d'exploitation. Dans un PC ce qui gère les interruptions, c'est le BIOS qui est écrit en assembleur du CPU et du chipset. La plupart des périphériques branchés sur un PC, passe par une interruption pour communiquer un changement d'état. C'est le cas du controleur de clavier. Qui appelle matériellement le CPU; lequel déroute son fonctionnement sur la bonne routine du bios. Ensuite c'est le systéme d'exploitation qui intervient pour faire le traitement adapté. La façon dont tu vas utiliser cette information dépend donc de l'OS et de ses API et non pas d'un langage de programmation particulier. Ensuite, ce concept matériel à donné naissance à un concept de programmation qui lui dépend du langage. C'est la programmation événementielle qui généralise le principe des interruptions. Pour pouvoir faire de la programmation événementielle correcte, il faut 2 conditions : un OS qui le soit, et un langage de prog qui le permette. Windows est d'origine un OS qui offre une API de gestion de messages meme dans un langage comme le C qui ne le permet pas de façon standard, mais faut le bon compilateur et c'est très compliqué. Par contre, si tu utilises un langage objet avec des bibliotheques de classes orientées programmation événementielle, alors tout devient plus simple. Comme c'est le cas avec VB, C# et C++, quand tu programmes sous le framwork .net, ou du java quand tu programmes pour une virtual machine. Donc la premiere chose à faire, est de choisir ton outil de programmation, car les réponses concretes en dépendent. Quel C ? Quel windows ?
|