Utilisateur:Topeil/Principes des systèmes d'exploitation/Abstraction du matériel

Abstraction du matériel

modifier

Pourquoi le système d'exploitation doit-il tenir compte du matériel ?

modifier
  • Simplification pour les programmes
  • Sécurité

Interruptions et changements de contexte

modifier

Comme le processeur est le cœur de l'ordinateur, c’est à partir de lui que sont transmis tous les ordres au reste du matériel. On a alors besoin d'un moyen pour ce matériel d'y répondre, ce qui donne deux possibilités : le système pourrait vérifier périodiquement ce qui s'est passé sur les périphériques (on parle alors de polling), ou il peut recevoir des messages depuis ceux-ci qui l'interrompent dans sa tâche. Cette deuxième solution a été retenue sur les processeurs actuels : c’est le mécanisme des interruptions. Comme on l'a dit dans l'introduction, celles-ci peuvent être aussi bien causées par certains matériels que par un processus ou un compte à rebours. À chaque interruption, l'activité du processeur est interrompue, et un saut est effectué jusqu'à une partie du code du noyau. Celui-ci doit s'assurer que les calculs en cours ne soient pas perdus en sauvegardant les données du processus, puis traiter l'interruption avant, le cas échéant, de repasser la main au processus.

La technique du polling est aussi utilisée dans certains cas, par exemple si les interruptions sont trop nombreuses, ce qui monopolise le système. Pour quelques périphériques, par exemple certaines carte réseau, il pourra désactiver les interruptions et vérifier son état à intervalles réguliers.


Les pilotes

modifier

Pour utiliser un matériel particulier, il faut que le système "connaisse" son mode de fonctionnement. On écrit donc du code qui permette d’utiliser chacun, que l’on appelle le pilote. Cependant, à cause de leur diversité, il est impossible d'intégrer tous ceux-ci directement au démarrage : généralement, si l'un s'avère nécessaire car le matériel correspondant est détecté, le noyau charge le pilote et peut ensuite l’utiliser.