Les couches du système d'E/S
Le traitement des interruptions: Son rôle est
de traiter les interruptions de fin d'E/S venant des périphériques.
Le traitement consiste à débloquer le processus en attente
de cette fin d'E/S.
Les pilotes de périphériques:
Chaque pilote contient le code spécifiques à un périphérique.
Les pilotes déposent des commandes dans les registres de commande
du contrôleur de périphérique et traitent les requètes
qui viennent du niveau supérieur (ex: lecture du bloc x). Ils gèrent
des files d'attentes de requètes. Ils traitent aussi les erreurs
d'E/S signalées par les contrôleurs (ex: échec de lecture
d'un bloc sur un disque)
Le logiciel indépendant des périphériques:
Sur appel système de la couche supérieure, exécuter
les fonctions d'E/S communes à tous les périphériques
et fournir une interface uniforme aux logiciels des utilisateurs (ex: rendre
une taille de bloc unique au niveau supérieur même si la taille
des secteurs varie d'un disque à l'autre). Fournir des tampons (attendre
l'écriture d'un bloc entier avant de lancer l'écriture, gestion
du tampon pour le clavier, ...). Cette couche inclut aussi des algorithmes
spécifiques comme la recherche de blocs libres sur un disque.
Le logiciel des E/S de l'espace utilisateur (hors
noyau): L'ensemble des primitives d'E/S et des procédures
des bibliothèques d'E/S (cf. par exemple les primitives du SGF d'UNIX).
suivant plan