GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)
Revue Quest-ce que le mode rafale? Sur quelle pile est-ce que lon sauvegarde létat du système quand une interruption se produit?
Synopsis Principes et buts du logiciel dE/S Méthodes dE/S Structure du logiciel dE/S (partie I)
Principes/Buts du logiciel dE/S Indépendant des périphériques Il devrait être possible décrire des programmes qui peuvent accéder nimporte quel périphériques dE/S sans avoir à spécifier un périphérique en avance Par exemple: votre programme ne devrait pas être substantiellement différent (et même non différent) si vous ouvrez un fichier sur un disque mou, un disque dure ou un disque compact
Principes/Buts du logiciel dE/S Nommage uniforme Le nom dun fichier ou dun périphérique devrait être une chaîne de caractères ou un entier et ne doit pas dépendre du périphérique daucune façon Est-ce que Windows rencontre ce but? Traitement des erreurs Les erreurs devraient être traitées aussi près du matériel que possible ie: Contrôleur pilote de périphérique et vers le haut Plusieurs erreurs dE/S sont transitoires, si on essaie encore on peut enlever la majorité des erreurs
Principes/Buts du logiciel dE/S Transferts synchrones vs asynchrones Au niveau physique, la plus part des E/S sont asynchrones Le périphérique signale une interruption quand il est prêt Pour les utilisateurs, le programme est habituellement plus facile à créer si les E/S sont synchrones (ie: qui bloquent) Cest le job du SE de rendre les transferts asynchrones en transferts qui semblent bloquer du point de vue de lutilisateur
Principes/Buts du logiciel dE/S Tamponnage Les données qui proviennent dun périphérique doivent souvent être collectées avant dêtre fournies à la destination finale Par exemple, un paquet de réseau doit être examiné pour déterminer quel processus a demandé le paquet Les données qui vont vers un périphérique peuvent aussi être tamponnées. Par exemple: les baladeurs mp3 doivent avoir des données prêtes à lire en tout temps Ceci découple le taux de remplissage du taux de vidage
Principes/Buts du logiciel dE/S Périphériques partagés vs. dédiés Certains périphériques, comme les disques, peuvent être partagés entre plusieurs processus simultanément. On peut ouvrir plusieurs fichiers en même temps sans problème Certains autres périphériques, tel que les lecteurs de rubans magnétiques ou les brûleurs CD peuvent navoir quun seul utilisateur à la fois jusquà ce que le job soit complété Les périphériques dédiés introduisent aussi le problème des interblocages
Comment est-ce que les E/S sont exécutées? Trois méthodes: E/S programmées E/S par interruptions DMA Ceci est du point de vue du logiciel, malgré que cela peut impliquer des questions de matériel...
Comment est-ce que les E/S sont exécutées? E/S programmées E/S avec attente active Le SE a un processus qui attend dans une boucle, qui vérifie si un périphérique est prêt à communiquer et/ou envoyer/recevoir de linformation tel que requis
Comment est-ce que les E/S sont exécutées? E/S programmées Cette méthode est simple à implémenter, mais cela accapare le CPU à plein temps (si on nutilise pas un processus pour imprimer) ou utilise beaucoup de cycles Si le temps dattente est court (ie: limpression va dans un tampon dans limprimante) ceci pourrait être acceptable
Comment est-ce que les E/S sont exécutées? E/S par interruption Cette méthode permet au CPU de faire dautre travail pendant que les E/S sont en cours Comme avant, linformation à être imprimée est transférée dans lespace noyau Limprimante se fait passer un caractère et lordonnanceur est appelé pour choisir un processus à être exécuté (fait partie de lappel de système) Quand limprimante est prête pour un nouveau caractère, une interruption est générée et la routine de service dinterruption de limprimante est exécutée
Comment est-ce que les E/S sont exécutées? E/S par interruption Si la routine dinterruption note quil ny a plus de caractère à imprimer le processus de lutilisateur est débloqué Peut être par message, sémaphore, etc.
Comment est-ce que les E/S sont exécutées? E/S utilisant le DMA Gros gain: ceci permet une seule interruption quand le transfert est complété! Ceci est essentiellement des E/S programmées, mais le contrôleur DMA fait le travail au lieu du CPU Si le CPU est habituellement inactif, alors cette méthode est moins efficace que les interruptions. Pourquoi?
Le logiciel dE/S ont des couches (comme les Ogres)
Comment est-ce que le logiciel dE/S est organisé? Quatre couches, chaque couche est de plus en plus abstraite du matériel en montant dans le système Chaque couche a une interface bien définie pour la couche adjacente ( couche inférieur est un serveur pour la supérieure )
Le logiciel dE/S ont des couches (comme les Ogres) Gestionnaires dinterruptions Les interruptions doivent être utilisées pour faire au moins une partie des E/S et elles doivent être cachées le plus loin possible de lutilisateur; dans les entrailles du SE La meilleur façon de travailler avec les interruptions est que le pilote se bloque sur un sémaphore, une attente sur une variable de condition (moniteur), sur une réception de message, ou une autre méthode similaire Quand linterruption arrive, le pilote est débloqué/envoyé un message/etc.
Le logiciel dE/S ont des couches (comme les Ogres) Gestionnaires dinterruptions Comme de raison, cela nest pas si simple. On doit accomplir bien plus que cela quand on répond à une interruption Sauvegarder tout les registres qui ne sont pas sauvés par le matériel Charger le RPA, le MMU, la table de pages et la pile pour la routine de service dinterruption (RSI) Confirmer avec le contrôleur dinterruptions (ou le périphérique si il ny a pas de CI (cont.)
Le logiciel dE/S ont des couches (comme les Ogres) Gestionnaires dinterruptions Copier les registre de là où ils ont étés sauvegardés à la table de processus Exécuter la RSI (aller chercher linfo du périphérique, débloquer le pilote, etc.) Choisir le prochain processus à exécuter et charger le RPA, MMU, registres, PC, PSW, table de pages, etc. pour ce processus Commencer lexécution pour le nouveau processus
Le logiciel dE/S ont des couches (comme les Ogres) Pilotes de périphériques Chaque périphérique dE/S attaché à lordinateur requiert du code spécifique pour faire linterface entre le matériel et le SE. Ce code sappel pilote de périphérique Ceci est parce que au niveau du matériel, les périphériques sont radicalement différents les uns des autres Parfois un pilote va prendre soins dune classe de périphériques qui sont proche ex.: un nombre de souris Les pilotes de périphériques sont normalement produit par le manufacturier du périphérique pour les SEs populaires
Le logiciel dE/S ont des couches (comme les Ogres) Pilotes de périphériques Typiquement les pilotes sont dans le noyau pour quils puissent avoir accès au registres de contrôle du périphérique Ce nest pas un requis. Vous pourriez avoir un pilote dans lespace utilisateur et faire des appels de systèmes pour communiquer avec les registres. Par contre la pratique courante est davoir les pilotes dans le noyau. Étant donné que cest la méthode habituel dimplémenter les pilotes, larchitecture normale est de mettre les pilotes en bas du SE
Le logiciel dE/S ont des couches (comme les Ogres) Non montré sur la diapo: Le SE requiert normalement que les périphériques par blocs supporte un ensemble standard dinterfaces et que les périphériques par caractères en supporte un autre
Le logiciel dE/S ont des couches (comme les Ogres) Que font les pilotes de périphériques? Ils acceptent les commandes abstraites de lecture/écriture de la couche supérieure Fonctions assorties: Initialise le périphérique Gère la puissance – Arrête un disque de tourner, ferme un écran, ferme une caméra, etc.
Le logiciel dE/S ont des couches (comme les Ogres) Quest-ce que un pilote fait sur une lecture/écriture? Vérifie les paramètres dentrée & retourne les erreurs Converti les commandes abstraites (lit du secteur) en commandes physiques (tête, traque, secteur, et cylindre) Met les demandes dans une queue si le périphérique est occupé Amène le périphérique en état de fonctionnement si requis Monter la vitesse du moteur, température, etc. Contrôle le périphérique en envoyant des commandes par les registres de contrôle
Le logiciel dE/S ont des couches (comme les Ogres) Quest-ce que un pilote fait sur une lecture/écriture ? Quand une demande est envoyée, une des deux solutions possibles peut arriver: Le pilote doit attendre pour la demande de compléter, donc le pilote bloque. Il va se réveiller plus tard, tel que décrit dans la section sur les interruptions Le résultat est instantané (ex.: écriture dans lespace de mémoire de lécran) donc le travail est continué jusquà ce que lE/S soit terminé
Le logiciel dE/S ont des couches (comme les Ogres) Complications de la vie réel pour les pilotes de périphériques: Interruption reçu durant lexécution des E/S Peut se produire quand on assemble un paquet pour un réseau et quun nouveau paquet est reçu Dans ce cas les pilotes doivent être réentrants Les périphériques peuvent être ajoutés ou enlevés pendant que lordinateur fonctionne Clés de mémoire Carte de réseau PCMCIA Etc.
Quiz Time! Questions?