Les entrées sont les données envoyées par un périphérique (disque, réseau, clavier…) à destination de l'unité centrale ;
• Les sorties sont les données émises par l'unité centrale à destination d'un périphérique (disque, réseau, écran...).
Le système d'exploitation: Les entrées / sorties
Comment un périphérique transfert-il ses données en mémoire ?
La communication entre les processus et les périphériques se fait à travers deux couches :
• Le pilote de périphérique (ou device driver en Anglais),
• Le contrôleur d’entrées-sorties, formé de l’électronique qui gère le périphérique (contrôleur IDE ou SCSI par exemple).
Le pilote (driver)
Le système d'exploitation: Les entrées / sorties
Le pilote offre aux programmes des fonctions standards acceptant des paramètres normalisés (API: Application Programming Interface ), parmi lesquelles :
• open : ouverture du périphérique
• read, write : lire et écrire sur le périphérique ;
• schedule : permet d’ordonnancer une suite de plusieurs lectures/écritures
• interrupt() : fonction exécutée lors de la levée d’une interruption par le périphérique ;
• close : ferme le périphérique.
Le contrôleur d’entrées-sorties
Le contrôleur traduit les ordres du CPU en signaux électroniques utiles au périphérique. Inversement, le périphérique peut demander d’engager un dialogue sur le bus par les interruptions matérielles.
La communication se fait à travers des « registres adressables ».
Exemple
• le registre d’état, qui permet de connaître l’état du périphérique
Le système d'exploitation: Les entrées / sorties
• le registre d’état, qui permet de connaître l’état du périphérique (en attente, en cours de lecture, en cours d’écriture, etc.) ;
• le registre de commande : permet au CPU d’envoyer des ordres (opérations d’entrées-sorties) ;
• un registre de données : c’est à travers ce registre que se font les échanges mémoire/unité d’échange.
Modes de dialogue avec le périphérique
• La scrutation: (polling ou attente active) : interrogation régulière du registre d’état du périphérique
• Les interruptions: Une fonction interrupt() est associée au périphérique et est exécuté lorsqu’un événement concernant le périphérique survient,
Le système d'exploitation: Les entrées / sorties
périphérique survient,
• L’accès direct à la mémoire: Le DMA ( Direct Memory Access).
utilise un composant matériel permettant d’effectuer des échanges entre le contrôleur d’entrées-sorties et la mémoire, sans l’aide du CPU.
La scrutation: (polling ou attente active)
données prêtes ?
non
oui
Le périphérique positionne un indicateur (drapeau – flag) lorsqu’il veut communiquer
Le microprocesseur (µP) vérifie
constamment l’état de l’indicateur, dans une
Le système d'exploitation: Les entrées / sorties
lecture et sauvegarde
constamment l’état de l’indicateur, dans une oui
boucle
Le µP lit et sauvegarde les données quand elles sont disponibles
1
La scrutation :
Microprocesseur Avantage :c'est simple : le programme gère tout (technique synchrone)
Inconvénient :
- La scrutation consomme tout le temps du µP - Peu réactif lorsque plusieurs périphériques sont
Le système d'exploitation: Les entrées / sorties
Cas d’un CAN
2 3
Carte d'acquisition
CAN Capteur
Mémoire centrale
- Peu réactif lorsque plusieurs périphériques sont gérés par scrutation
Interruptions
Le périphérique demande au µP d'arrêter sa tâche en cours grâce à une ligne spécialisée : IRQ = Interrupt Rrequest
Le µP sauvegarde le contexte
Le système d'exploitation: Les entrées / sorties
Le µP sauvegarde le contexte Le µP traite l'interruption en exécutant des lignes de
programme : lecture et stockage des données
Le µP récupère le contexte et continue sa tâche initiale
Les interruptions :
Microprocesseur
Avantage :
le programme utilisateur n'est arrêté que pendant le temps de transfert des informations
Inconvénient :
- Utilisation d'une ligne (matérielle) de demande d'interruption pour chaque périphérique
- Nécessité de gérer la priorité des interruptions
Le système d'exploitation: Les entrées / sorties
Cas d’un CAN
1
2 3
Carte d'acquisition
CAN Capteur
Mémoire centrale
- Nécessité de gérer la priorité des interruptions
- Temps de stockage / déstockage des adresses et valeurs en cours d'utilisation
IRQ
Accès direct à la mémoire: DMA Microprocesseur
Le système d'exploitation: Les entrées / sorties
Cas d’un CAN
Le périphérique envoie une demande de DMA lorsqu’un paquet de données est prêt.
Le µP envoie au circuit contrôleur de DMA l’adresse mémoire de début des données, la longueur des données, le sens du transfert.
Le contrôleur de DMA (inclus dans le chipset) gère alors l’échange de données, directement du périphérique à la mémoire sans intervention du µP, avec
1
Carte d'acquisition
CAN Capteur
Mémoire centrale
Avantage
Permet le transfert de grandes quantités de données (blocs) sans passer par le µP
Inconvénient
Utilisation d'un canal DMA, programmation délicate
périphérique à la mémoire sans intervention du µP, avec priorité sur le bus
DRQ / OK
Dma ReQuest 2
Ordonnancement des requêtes des pilotes Le pilote comporte une fonction schedule dont le rôle est d’ordonnancer les requêtes à destination du périphérique qu’il contrôle.
Exemple : Accès aux secteurs du disques durs :
• Le temps de positionnement du bras portant la tête sur la piste contenant le secteur ;
Rappel Le système d'exploitation: Les E/S
secteur ;
• Le temps de latence correspond au temps nécessaire pour que le secteur passe sous la tête de lecture.
• Le temps de lecture/transfert des données.
Algorithmes:
- FCFS » ou « First Come, First Served » FIFO - SSTF (Shortest Seek Time First) ;
- SCAN (ascenseur ou balayage) ; - C-SCAN (variante de SCAN).
Disque Un ou plusieurs plateaux superposés Plateau Élément double face du disque
Face Recto ou verso d'un plateau
Piste Zones concentriques écrites sur le disque Cylindre Ensemble de pistes verticales de même position
sur tous les plateaux
Secteur Unité élémentaire stockage de 512 octets Bloc Nombre de secteurs variable selon les disques
Ordonnancement des requêtes des pilotes
Exemple : supposons que la tête soit positionnée sur la piste n°11, et que le pilote reçoive des ordres de lecture de secteurs situés sur les pistes 1, 36, 16, 34, 9, et 12.
Le schéma suivant présente le résultat des déplacements avec les algorithmes FCFS, SSTF, SCAN et C-SCAN
Le système d'exploitation: Les entrées / sorties
Déplacement des têtes sur le disque selon les algorithmes FCFS, SSTF, SCAN et C-SCAN
First Come, First Served
Shortest Seek Time First
(ascenseur ou balayage
variante de SCAN