Système d'exploitation - Matériel d'E / S

L'une des tâches importantes d'un système d'exploitation est de gérer divers périphériques d'E / S, notamment souris, claviers, pavé tactile, lecteurs de disque, adaptateurs d'affichage, périphériques USB, écran bitmap, LED, convertisseur analogique-numérique, marche / arrêt interrupteur d'arrêt, connexions réseau, E / S audio, imprimantes, etc.

Un système d'E / S doit prendre une demande d'E / S d'application et l'envoyer au périphérique physique, puis prendre toute réponse provenant du périphérique et l'envoyer à l'application. Les périphériques d'E / S peuvent être divisés en deux catégories -

  • Block devices- Un périphérique bloc est un périphérique avec lequel le pilote communique en envoyant des blocs entiers de données. Par exemple, disques durs, caméras USB, Disk-On-Key, etc.

  • Character devices- Un périphérique de caractères est un périphérique avec lequel le pilote communique en envoyant et en recevant des caractères uniques (octets, octets). Par exemple, les ports série, les ports parallèles, les cartes son, etc.

Contrôleurs de périphériques

Les pilotes de périphérique sont des modules logiciels qui peuvent être connectés à un système d'exploitation pour gérer un périphérique particulier. Le système d'exploitation prend l'aide des pilotes de périphériques pour gérer tous les périphériques d'E / S.

Le contrôleur de périphérique fonctionne comme une interface entre un périphérique et un pilote de périphérique. Les unités d'E / S (clavier, souris, imprimante, etc.) se composent généralement d'un composant mécanique et d'un composant électronique où le composant électronique est appelé contrôleur de périphérique.

Il existe toujours un contrôleur de périphérique et un pilote de périphérique pour chaque périphérique pour communiquer avec les systèmes d'exploitation. Un contrôleur de périphérique peut être capable de gérer plusieurs périphériques. En tant qu'interface, sa tâche principale est de convertir un train de bits série en bloc d'octets, d'effectuer une correction d'erreur si nécessaire.

Tout périphérique connecté à l'ordinateur est connecté par une fiche et une prise, et la prise est connectée à un contrôleur de périphérique. Voici un modèle de connexion du CPU, de la mémoire, des contrôleurs et des périphériques d'E / S où les contrôleurs de CPU et de périphérique utilisent tous un bus commun pour la communication.

E / S synchrones vs asynchrones

  • Synchronous I/O - Dans ce schéma, l'exécution du processeur attend pendant que les E / S se poursuivent

  • Asynchronous I/O - Les E / S se déroulent en même temps que l'exécution du CPU

Communication avec les périphériques d'E / S

L'UC doit disposer d'un moyen de transmettre des informations vers et depuis un périphérique d'E / S. Il existe trois approches disponibles pour communiquer avec le CPU et le périphérique.

  • Instruction spéciale I / O
  • E / S mappées en mémoire
  • Accès direct à la mémoire (DMA)

Instruction spéciale I / O

Cela utilise des instructions CPU spécialement conçues pour contrôler les périphériques d'E / S. Ces instructions permettent généralement d'envoyer des données à un périphérique d'E / S ou de les lire à partir d'un périphérique d'E / S.

E / S mappées en mémoire

Lors de l'utilisation d'E / S mappées en mémoire, le même espace d'adressage est partagé par la mémoire et les périphériques d'E / S. Le périphérique est connecté directement à certains emplacements de mémoire principale afin que le périphérique d'E / S puisse transférer un bloc de données vers / depuis la mémoire sans passer par le CPU.

Lors de l'utilisation d'E / S mappées en mémoire, le système d'exploitation alloue un tampon dans la mémoire et informe le périphérique d'E / S d'utiliser ce tampon pour envoyer des données à l'UC. Le périphérique d'E / S fonctionne de manière asynchrone avec le CPU, interrompt le CPU une fois terminé.

L'avantage de cette méthode est que chaque instruction qui peut accéder à la mémoire peut être utilisée pour manipuler un périphérique d'E / S. Les E / S mappées en mémoire sont utilisées pour la plupart des périphériques d'E / S haute vitesse tels que les disques et les interfaces de communication.

Accès direct à la mémoire (DMA)

Les périphériques lents tels que les claviers génèrent une interruption vers le processeur principal après le transfert de chaque octet. Si un périphérique rapide tel qu'un disque générait une interruption pour chaque octet, le système d'exploitation passerait la plupart de son temps à gérer ces interruptions. Ainsi, un ordinateur typique utilise du matériel d'accès direct à la mémoire (DMA) pour réduire cette surcharge.

L'accès direct à la mémoire (DMA) signifie que la CPU accorde au module d'E / S l'autorisation de lire ou d'écrire dans la mémoire sans intervention. Le module DMA contrôle lui-même l'échange de données entre la mémoire principale et le périphérique d'E / S. La CPU n'est impliquée qu'au début et à la fin du transfert et n'est interrompue qu'après le transfert complet du bloc.

L'accès direct à la mémoire nécessite un matériel spécial appelé contrôleur DMA (DMAC) qui gère les transferts de données et arbitre l'accès au bus système. Les contrôleurs sont programmés avec des pointeurs de source et de destination (où lire / écrire les données), des compteurs pour suivre le nombre d'octets transférés et des paramètres, qui incluent les types d'E / S et de mémoire, les interruptions et les états des cycles du processeur.

Le système d'exploitation utilise le matériel DMA comme suit -

Étape La description
1 Le pilote de périphérique est invité à transférer les données du disque vers une adresse de tampon X.
2 Le pilote de périphérique demande ensuite au contrôleur de disque de transférer les données vers la mémoire tampon.
3 Le contrôleur de disque démarre le transfert DMA.
4 Le contrôleur de disque envoie chaque octet au contrôleur DMA.
5 Le contrôleur DMA transfère les octets au tampon, augmente l'adresse mémoire, diminue le compteur C jusqu'à ce que C devienne zéro.
6 Lorsque C devient zéro, DMA interrompt la CPU pour signaler l'achèvement du transfert.

Interrogation vs interruptions d'E / S

Un ordinateur doit avoir un moyen de détecter l'arrivée de tout type d'entrée. Cela peut se produire de deux manières, appeléespolling et interrupts. Ces deux techniques permettent au processeur de gérer des événements qui peuvent survenir à tout moment et qui ne sont pas liés au processus qu'il exécute actuellement.

Interrogation d'E / S

L'interrogation est le moyen le plus simple pour un périphérique d'E / S de communiquer avec le processeur. Le processus de vérification périodique de l'état du périphérique pour voir s'il est temps pour la prochaine opération d'E / S est appelé interrogation. Le périphérique d'E / S met simplement les informations dans un registre d'état, et le processeur doit venir chercher les informations.

La plupart du temps, les appareils ne nécessitent pas d'attention et quand on le fait, il devra attendre d'être interrogé ensuite par le programme d'interrogation. C'est une méthode inefficace et une grande partie du temps des processeurs est gaspillée sur des sondages inutiles.

Comparez cette méthode à un enseignant qui demande continuellement à chaque élève d'une classe, l'un après l'autre, s'ils ont besoin d'aide. De toute évidence, la méthode la plus efficace serait pour un élève d'informer l'enseignant chaque fois qu'il a besoin d'aide.

Interrompt les E / S

Un autre schéma pour traiter les E / S est la méthode pilotée par interruption. Une interruption est un signal adressé au microprocesseur provenant d'un appareil nécessitant une attention particulière.

Un contrôleur de périphérique met un signal d'interruption sur le bus lorsqu'il a besoin de l'attention du CPU lorsque le CPU reçoit une interruption.Il enregistre son état actuel et appelle le gestionnaire d'interruption approprié en utilisant le vecteur d'interruption (adresses des routines du système d'exploitation pour gérer divers événements). Lorsque le dispositif d'interruption a été traité, la CPU continue sa tâche d'origine comme si elle n'avait jamais été interrompue.