Entrées/Sorties Une des tâches fondamentales du système d'exploitation est le c

Entrées/Sorties Une des tâches fondamentales du système d'exploitation est le contrôle des périphériques d'entrée/sortie et la gestion des flux de données en entrée ou en sortie. Il doit : Émettre des commandes vers ses périphériques Intercepter les interruptions Gérer les erreurs I – L'aspect matériel Une des principales difficultés vient de la grande diversité des périphériques (clavier, disque, ...), or l'interface doit autant que possible tous les englober avec le même traitement. 1) Les différents périphériques Du point de vue du traitement de l'information, on peut séparer les périphériques d'entrée/sortie en deux classes : Les périphériques par blocs, en général de 512o – 32Ko (disques) Les périphériques par caractères appelés aussi périphériques alpha-numérique qui traitent un flot sans structure fixe (clavier, souris, imprimante) Il reste des périphériques à part qui n'entrent pas dans ces catégories comme l'horloge et l'écran avec mappage de mémoire... Mais cette classification peut suffire comme base d'interface entre le logiciel du système d'exploitation et un périphérique d'entrée/sortie autonome. Une des difficultés vient des grandes différences de débit des flux de données suivant les périphériques. A titre d'exemples : Périphérique Débit de données Clavier Souris Imprimante laser Scanner USB (Universal Serial Bus) 1.1 Disque IDE (Integrated Drive Electronics) CD-ROM 40x Clé USB 2.0 en écriture Bus ISA (Industry Standard Architecture) Disque EIDE (Extented IDE) FireWire (IEEE 1394) (bus série) USB 2.0 (taux maximal) Écran XGA Disque SCSI (Small Computer System Interface) Bus PCI (Peripheral Component Interconnect) 10 o/s 100 o/s 100 Ko/s 400 Ko/s 1,5 Mo/s 5 Mo/s 6 Mo/s 8 Mo/s 16,7 Mo/s 16,7 Mo/s 50 Mo/s 60 Mo/s 60 Mo/s 80 Mo/s 528 Mo/s 2) Contrôleur de périphérique Une unité d'entrée/sortie est en général constituée de deux parties : Un composant mécanique : le périphérique lui-même Un composant électronique : le contrôleur de périphérique (puce placée sur une carte qui contrôle physiquement le périphérique appelé aussi unité d'échange C'est le contrôleur qui reçoit les ordres du système d'exploitation, comme lire une donnée par exemple. Le contrôleur doit fournir une interface simplifiée au système d'exploitation : par exemple l'ordre du S.E. « lire secteur 345 du disque 2 » doit être traduit en numéro de cylindre/numéro de secteur/numéro de tête par le contrôleur. Le contrôleur doit ensuite vérifier que le secteur n'est pas défectueux, connaître la position du bras, lui ordonner de se déplacer de tant de cylindres, attendre que le secteur recherché soit sous la tête de lecture, ordonner la lecture, convertir dans un tampon le flot binaire série en bloc d'octets, détecter d'éventuelles erreurs. Enfin si le bloc complet est déclaré sans erreur, il peut ensuite être copié en mémoire principale. Le système d'exploitation ne voit que l'interface avec le contrôleur de périphérique, pas avec le périphérique mécanique. Le contrôleur possède un petit nombre de registres qui servent à communiquer avec le système d'exploitation (registre d'état, registre de commande, registre de données). Chaque type de contrôleur est spécifique, il faut donc un logiciel spécial pour communiquer avec le contrôleur, il est appelé pilote de périphérique (device driver) et doit être adapté au système d'exploitation (par exemple pilote HP laser jet pour Windows XP pro, pilote HP laser jet pour UNIX, ...). En général les pilotes sont placés dans le système d'exploitation pour fonctionner en mode noyau (protection). 3) Entrées/sorties mappées en mémoire Par le biais de l'écriture dans les registres du contrôleur, le système d'exploitation commande au périphérique de transmettre des données, de s'activer ou de se désactiver... En lisant ces registres le système d'exploitation peut également savoir dans quel état est le périphérique, s'il est prêt, occupé, ... De plus le périphérique possède souvent un tampon de données dans lequel le système d'exploitation peut lire ou écrire (les pixels affichés à l'écran par exemple proviennent de la RAM vidéo). Il existe trois méthodes de communication du processeur avec les registres du contrôleur et les tampons de données : -Dans la première, chaque registre a un numéro de port d'entrée/sorties (entier 1 ou 2 octets), les instructions sont du genre : In Registre_Proc n°_Port (pour lire une donnée dans le registre n°_Port et la stocker dans le registre processeur Registre_Proc) Out n°_Port Registre_Proc (pour écrire le contenu du registre processeur Registre_proc dans le registre du périphérique n°_Port) -Dans la seconde méthode, appelée entrés/sorties projetés/mappées en mémoire, on attribue à chaque registre du contrôleur une adresse dans l'espace mémoire (cet espace étant exclusivement réservé à ce registre). Les adresses assignées se trouvent en général en haut de l'espace d'adressage. L'avantage est que les instructions utilisent un seul type d'adressage et que la protection consiste juste à ne pas allouer à un programme utilisateur l'espace mémoire réservées aux registres du contrôleur. -Une troisième méthode consiste en un système mixte : la partie du tampon de données mappées en mémoire, en plus des ports d'entrées/sorties (c'est le cas du Pentium). 4) Accès direct à la mémoire Quelque soit la méthode, le processeur peut ensuite demander les données au contrôleur octet par octet, mais cela prend beaucoup de temps processeur. Une autre méthode est l'accès direct à la mémoire (DMA : Direct Memory Acces) qui ne peut se faire que si le matériel est équipé d'un contrôleur DMA. Le contrôleur DMA possède une zone tampon et plusieurs registres, dont un d'adressage mémoire, un de décompte d'octets, plusieurs de contrôle, avec le port d'entrée/sortie, la direction du transfert (lecture/écriture), l'unité de transfert (un ou plusieurs octets à la fois). Le transfert classique des données du tampon à la mémoire principale se fait octets par octets, alors que dans le DMA, le transfert se fait d'abord vers le tampon du contrôleur DMA, ensuite le DMA travaille de façon autonome, libérant ainsi le processeur. II – L'aspect logicielle 1) Les grands principes Le premier principe est celui d'indépendance par rapport au matériel, le programme doit accéder à n'importe quel périphérique d'entrée/sorties sans que l'on ait à préciser le type de périphérique. Le second principe est celui de désignation universelle, le nom d'un fichier ou d'un périphérique doit être une chaîne simple et ne pas dépendre du type de périphérique. Le troisième principe concerne la gestion des erreurs, elle doit être aussi près du matériel que possible. Si le contrôleur détecte une erreur de lecture, il essaie d'abord de la corriger lui-même, s'il ne peut pas, c'est le pilote qui la gère (en redemandant la lecture par exemple dans le cas d'une poussière...), si le pilote échoue, il en informe la couche logicielle supérieure qui gère alors l'interruption. On distingue les transferts synchrones, bloquant le processeur, et les transferts asynchrones qui libèrent le processeur dès que le transfert est commencé. En général, un programme utilisateur doit être suspendu jusqu'à ce que sa requête d'entrée/sortie soit réalisée, c'est le système d'exploitation qui assure que les opérations engendrées par les interruptions paraissent bloquantes pour les programmes utilisateurs. Un autre principe des logiciels d'entrées/sorties est l'usage d'une mémoire tampon pour stocker les données, pour examiner de façon globale le transfert (pour décider où le placer par exemple), pour des contraintes de temps réel (son)... Enfin, on distingue les périphériques partageables (disque), et les périphériques dédiés ou non partageables (imprimante), le système d'exploitation doit pouvoir gérer les périphériques non partageables sans interblocage. 2) Les entrée/sorties programmées Il existe plusieurs façons de construire des entrées/sorties. La plus simple consiste à laisser le processeur traiter toute l'opération, c'est ce qu'on appelle les entrées/sorties programmées. Le processeur gère toutes les étapes du transfert et dialogue continuellement avec le contrôleur de périphérique pour vérifier s'il est en état de continuer. Le processeur n'est libéré que lorsque l'entrée/sortie est terminée (cela ne correspond pas nécessairement à l'exécution complète, l'action du processeur se limitant souvent à copier les données dans un tampon interne). 3) Les entrées/sorties pilotées par les interruptions Pour ne pas monopoliser le processeur, on fait appel aux procédures d'interruptions. Si le processeur doit imprimer un caractère et que l'imprimante n'est pas libre, une interruption suspend le processus d'impression, fait appel à l'ordonnanceur pour charger un autre processus, lorsque l'imprimante est libre, elle envoie un signal qui génère une interruption, si le processus d'impression est prioritaire par rapport au processus en cours, celui-ci est suspendu pour reprendre l'impression. 4) Les entrées/sorties avec DMA Les procédures d'interruption prennent beaucoup de temps, une alternative aux entrées/sorties gérées par les interruptions est l'utilisation de la DMA. Lors d'un impression par exemple, au lieu d'avoir une interruption par caractère, on aura une interruption par tampon imprimé. 5) La structure en couches En général, on organise les logiciels d'entrées/sorties suivant quatre couches : partie logicielle d'entrée/sortie au niveau utilisateur partie logicielle du S.E. indépendante du périphérique pilotes du périphérique matériel Dans la partie logicielle du système d'exploitation indépendante des périphériques, on a les fonctionnalités suivantes : interfaçage uniforme avec les pilotes, mise en mémoire tampon de données, rapport d'erreurs (erreurs de programmation comme écrire sur un disque inexistant, erreurs qui n'ont pu être résolues par le pilotes, ...), allocation et libération des périphériques dédiés (i.e. non partageables, en gérant une file d'attente par exemple...), fourniture uploads/Management/ in-out.pdf

  • 21
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Mar 19, 2022
  • Catégorie Management
  • Langue French
  • Taille du fichier 0.0817MB