Sommaire • Principe de gestion • Unité d’échange • Pilote et modes d’entrées-sorties • Algorithmes d’ordonnancement du bras du disque • Entrées-sorties sous Unix • Entrées-sorties sous Windows Processeur • Il dialogue avec l’extérieur par le biais des périphériques d’entrées-sorties (E/S) dont les principaux sont par exemple le clavier, la souris, etc. • De plus, les caractéristiques techniques de ces périphériques sont très diverses et la manière de réaliser une opération d’entrées- sorties peut être en conséquence très différente Fonctions d’un SE • L’une des principales fonctions d’un SE consiste à contrôler tous les périphériques d’entrée/sortie (E/S) de l’ordinateur
• Il doit pouvoir envoyer les commandes aux périphériques,
intercepter les interruptions et gérer les erreurs
• Il fournit également une interface simple entre les
périphériques et le reste du système Gestion des périphériques d’E/S
• Elle s’effectue globalement à deux
niveaux : – Au niveau du matériel avec le dispositif de l’unité d’échange ou contrôleur d’entrées- sorties ; – Au niveau du SE, avec pilote d’entrées-sorties Périphériques d’E/S • Du point de vue des informations manipulées, ils peuvent être divisés en deux catégories: – les périphériques par blocs et – les périphériques par caractères ou alphanumériques Périphériques par blocs • Un périphérique par blocs stocke des informations dans des blocs de taille fixe, chacun possédant sa propre adresse
• La taille classique des blocs s’étend de 512
à 32 768 octets Propriété • La propriété essentielle d’un périphérique par blocs est qu’il permet d’écrire et de lire chaque bloc indépendamment des autres
• Ex: Disques Périphériques alphanumériques
• Il accepte ou fournit un flot de caractères,
sans aucune structure de blocs – Il n’est adressable et ne possède aucune fonction de recherche
• Ex: Imprimantes, interfaces réseau, souris,
… Nota • Cette classification n’est pas parfaite : – certains périphériques ne correspondent pas à ce schéma • Ex: – Les horloges ne sont pas adressables par blocs, pas plus qu’elles ne génèrent ou n’acceptent des flots de caractères – Les écrans avec mappage mémoire ne correspondent pas davantage au modèle Nota • Les périphériques présentent des vitesses de fonctionnement et des débits de transfert de données très différents, – d’où une pression considérable sur le logiciel qui doit gérer correctement une grande variété de périphériques Débits de données de certains périphériques Sommaire • Principe de gestion • Unité d’échange • Pilote et modes d’entrées-sorties • Algorithmes d’ordonnancement du bras du disque • Entrées-sorties sous Unix • Entrées-sorties sous Windows Unité d’échange Unité d’échange • offre une interface standard d’entrées- sorties au processeur dans le sens où elle convertit son dialogue avec le processeur dans les signaux spécifique à l’interface du périphérique, qu’elle est seule à connaître • adapte ainsi les caractéristiques électriques et logiques des signaux émis ou reçus par les périphériques à celles des signaux véhiculés par les bus Unité d’échange • est constituée par un ensemble de registres adressables par le processeur – Leur nombre et leur gestion dépendent des spécificités particulières de l’unité d’échange Registres • Fonctionnellement on trouve : – Un registre d’état qui permet de connaître l’état du périphérique piloté par cette unité d’échange • Chaque état est caractérisé par une valeur numérique disponible dans le registre d’état ; Registres – Un registre de commandes dans lequel le processeur vient décrire l’opération d’entrées- sorties à réaliser ; – Un registre de données. C’est au travers de ce registre que se font les échanges de données entre la mémoire et l’unité d’échange Sommaire • Principe de gestion • Unité d’échange • Pilote et modes d’entrées-sorties • Algorithmes d’ordonnancement du bras du disque • Entrées-sorties sous Unix • Entrées-sorties sous Windows Pilote • Au niveau du SE, la réalisation des opérations d’entrées-sorties est prise en charge par un programme particulier, appelé pilote d’entrées- sorties ou driver • Ce pilote maintient des structures de données qui décrivent l’état des unités d’échange associées et un ensemble de fonctions pour agir sur les périphériques : – open : cette fonction permet d’ouvrir un périphérique c’est-à-dire qu’elle initialise le périphérique et les structures de données associées ; Pilote – close : cette fonction rompt la liaison avec le périphérique ; – read, write : ces fonctions permettent d’effectuer des lectures ou des écritures de données sur ou à partir des périphériques ; – schedule : cette fonction permet d’ordonnancer les requêtes d’entrées-sorties, de façon à optimiser les temps de réalisation des opérations ; Pilote – interrupt : cette fonction constitue le gestionnaire d’interruption associé au périphérique et est exécutée lorsque celui-ci lève une interruption à destination du processeur Protocoles d’entrées-sorties • Le pilote peut dialoguer avec l’unité d’échange selon trois protocoles différents : – le mode par scrutation ou attente active ; – le mode avec interruption ; – le mode avec DMA (Direct Memory Access, accès direct à la mémoire) Protocole avec scrutation ou attente active • Dans ce protocole, le pilote scrute en permanence l’unité d’échange pour savoir si elle prête à recevoir ou à délivrer une nouvelle donnée – Cette scrutation s’effectue par une lecture régulière du contenu du registre d’état de l’unité d’échange Pilote avec interruption • Avec ce protocole, l’unité d’échange utilise le mécanisme des interruptions pour signaler qu’elle est prête – Un gestionnaire d’interruption interrupt() est associé au pilote du périphérique – A la réception d’une interruption, le programme en cours d’exécution est arrêté au profit de ce gestionnaire Mode avec DMA • Pour éviter le ralentissement de l'unité centrale par ces tâches de bas niveau, on utilise parfois l'accès direct à la mémoire (DMA) – En fait, le dispositif DMA est un composant matériel permettant d’effectuer des échanges entre la mémoire centrale et l’unité d’échange sans utilisation du processeur DMA • Le comprend : – Un registre d’adresse qui reçoit l’adresse du premier caractère à transférer ; – Un registre de comptage qui reçoit le nombre de caractères à transférer ; – Un registre de commande qui reçoit le type d’opération à effectuer (lecture ou écriture) ; DMA – Une zone tampon permettant le stockage de données ; – Un composant actif, de type processeur, qui exécute un transfert sans utilisation du processeur central Sommaire • Principe de gestion • Unité d’échange • Pilote et modes d’entrées-sorties • Algorithmes d’ordonnancement du bras du disque • Entrées-sorties sous Unix • Entrées-sorties sous Windows Pilote • peut comporter une fonction schedule – dont le rôle est d’ordonnancer les requêtes à destination du périphérique qu’il contrôle
• Ceci est notamment vrai pour les requêtes à
destination du disque dur Secteur du disque • L’accès à un secteur du disque se décompose en deux parties : – Le temps de positionnement du bras correspond au temps nécessaire pour que le bras portant la tête de lecture vienne se positionner sur la piste contenant le secteur ; – Le temps de latence correspond au temps nécessaire pour qu’une fois la tête placée sur la bonne piste, le secteur passe sous la tête de lecture • Ce temps de latence dépend de la vitesse de rotation du disque Nota • Le temps de positionnement est la partie la plus pénalisante pour la réalisation d’une opération d’entrées-sorties sur le disque – Afin de réduire cette pénalité induite par les mouvements du bras, le pilote ordonnance les requêtes de la file d’attente du contrôleur de manière à réduire ces mouvements Algorithmes d’ordonnancement
• FCFS (First-Come First-Served, premier
arrivé, premier servi) ; • SSF (Shortest Seek First, recherché la plus rapide en premier); • SCAN (ascenseur ou balayage); Application • On a une file de requêtes disque suivante, où chaque nombre représente un numéro de piste à atteindre : 11, 1, 36, 16, 34, 9, 12 • Le bras est initialement sur la piste 11 • Le disque comporte 40 pistes par plateau • Lorsque la requête en cours (pour la piste 11) est terminée, le pilote du disque choisit la prochaine requête à gérer Algorithme FCFS (FIFO) • La gestion la plus simple du mouvement du bras du disque consiste à satisfaire les requêtes d'accès dans l'ordre où elles surviennent Ex d’application Inconvénient • Cet algorithme est simple à mettre en œuvre, mais ne minimise pas les mouvements du bras – il donne généralement de mauvais temps de réponse Algorithme SSTF • Avec cet algorithme, la prochaine requête disque servie est celle dont la position est la plus proche de sa position courante, donc celle induisant le moins de déplacement du bras Ex d’application • Les pistes seront traitées dans l'ordre : 12, 9, 16, 1, 34, 36 – On se sera déplacé de 61 pistes seulement Inconvénient • Les requêtes portant sur des pistes éloignées peuvent être durablement différées (risque de famine), si d'autres requêtes surviennent pendant le traitement de la liste : – l'équitabilité peut souffrir de la réduction du temps de réponse Algorithme SCAN • On déplace la tête dans une direction donnée en traitant toutes les requêtes rencontrées, puis le sens du balayage s'inverse et on traite les requêtes rencontrées, etc... Ex d’application • Dans l'exemple traité, on obtiendrait l'ordre: 12, 16, 34, 36, 9, 1 et un parcours total de 60 pistes Nota • Une variante a été proposée par T.J. Teorey en 1972: la dernière piste est considérée comme adjacente à la première – La tête, lorsqu'elle est arrivée à une extrémité, retourne immédiatement à l'autre sans traiter de requête • On obtiendrait ici l'ordre : 12, 16, 34, 36, 1, 9, soit 68 pistes parcourues Sommaire • Principe de gestion • Unité d’échange • Pilote et modes d’entrées-sorties • Algorithmes d’ordonnancement du bras du disque • Entrées-sorties sous Unix • Entrées-sorties sous Windows Principes • Chaque programme sous Unix dispose au moins de deux flux de données : – l’entrée standard, utilisée en lecture, qui est normalement associée au clavier du terminal, et – la sortie standard, utilisée en écriture, normalement associée à l’écran du terminal (ou à la fenêtre de lancement le cas échéant) Redirections vers/depuis des fichiers • Il est très simple de rediriger l’entrée ou la sortie standard d’un programme lors de son lancement depuis un shell Unix
• Pour la sortie, on utilisera la construction
suivante : ls > resultat Redirections • Si l’on désire ne pas effacer l’ancien contenu du fichier, mais écrire à sa fin, on peut utiliser >>: ls >> resultat • Pour rediriger l’entrée standard, on utilise <: cat < UnFichier • Il est possible de rediriger l’entrée et la sortie en même temps : Redirections vers des tubes • Il est possible de rediriger la sortie standard d’une commande vers l’entrée standard d’une autre commande grâce au tube (pipe) noté | – Les différentes commandes s’exécutent alors en parallèle # affiche le contenu du répertoire trie à l’envers ls | sort -r Sommaire • Principe de gestion • Unité d’échange • Pilote et modes d’entrées-sorties • Algorithmes d’ordonnancement du bras du disque • Entrées-sorties sous Unix • Entrées-sorties sous Windows Entrées / sorties • Le but du système Windows est de présenter un cadre permettant de gérer efficacement une très large palette de périphériques d’E/S Gestionnaire d’E/S • Il est étroitement lié au gestionnaire de: – plug and play – alimentation électrique