27
GEF 435 Principes des systèmes d’exploitation Principes et structure du logiciel d’E/S (Tanenbaum 5.2 & 5.3)

GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Embed Size (px)

Citation preview

Page 1: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

GEF 435Principes des systèmes d’exploitation

Principes et structure du logiciel d’E/S(Tanenbaum 5.2 & 5.3)

Page 2: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Revue

• Qu’est-ce que le mode rafale?• Sur quelle pile est-ce que l’on sauvegarde l’état du

système quand une interruption se produit?

Page 3: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Synopsis

• Principes et buts du logiciel d’E/S• Méthodes d’E/S• Structure du logiciel d’E/S (partie I)

Page 4: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Principes/Buts du logiciel d’E/S

• Indépendant des périphériquesIl devrait être possible d’écrire des programmes

qui peuvent accéder n’importe quel périphériques d’E/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

Page 5: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Principes/Buts du logiciel d’E/S

• Nommage uniformeLe nom d’un fichier ou d’un périphérique devrait être une

chaîne de caractères ou un entier et ne doit pas dépendre du périphérique d’aucune façon

Est-ce que Windows rencontre ce but?

• Traitement des erreursLes erreurs devraient être traitées aussi près du matériel

que possible ie: Contrôleur → pilote de périphérique → et vers le hautPlusieurs erreurs d’E/S sont transitoires, si on essaie

encore on peut enlever la majorité des erreurs

Page 6: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Principes/Buts du logiciel d’E/S

• Transferts synchrones vs asynchronesAu 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)

C’est le job du SE de rendre les transferts asynchrones en transferts qui semblent bloquer du point de vue de l’utilisateur

Page 7: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Principes/Buts du logiciel d’E/S

• Tamponnage Les données qui proviennent d’un 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

Page 8: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Principes/Buts du logiciel d’E/S

• Périphériques partagés vs. dédiésCertains 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 n’avoir qu’un 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

Page 9: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Comment est-ce que les E/S sont exécutées?

• Trois méthodes:E/S programméesE/S par interruptionsDMA

• Ceci est du point de vue du logiciel, malgré que cela peut impliquer des questions de matériel...

Page 10: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Comment est-ce que les E/S sont exécutées?

• E/S programméesE/S avec attente activeLe 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 l’information tel que requis

Page 11: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

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 n’utilise pas un processus pour imprimer) ou utilise beaucoup de cycles

Si le temps d’attente est court (ie: l’impression va dans un tampon dans l’imprimante) ceci pourrait être acceptable

Page 12: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Comment est-ce que les E/S sont exécutées?

• E/S par interruptionCette méthode permet au CPU de faire d’autre

travail pendant que les E/S sont en coursComme avant, l’information à être imprimée est

transférée dans l’espace noyau• L’imprimante se fait passer un caractère et

l’ordonnanceur est appelé pour choisir un processus à être exécuté (fait partie de l’appel de système)

• Quand l’imprimante est prête pour un nouveau caractère, une interruption est générée et la routine de service d’interruption de l’imprimante est exécutée

Page 13: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Comment est-ce que les E/S sont exécutées?

• E/S par interruptionSi la routine d’interruption note qu’il n’y a plus de

caractère à imprimer le processus de l’utilisateur est débloqué

• Peut être par message, sémaphore, etc.

Page 14: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Comment est-ce que les E/S sont exécutées?

• E/S utilisant le DMAGros 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 CPUSi le CPU est habituellement inactif, alors cette méthode est

moins efficace que les interruptions. Pourquoi?

Page 15: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Le logiciel d’E/S ont des couches (comme les Ogres)

Page 16: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Le logiciel d’E/S ont des couches (comme les Ogres)

• Comment est-ce que le logiciel d’E/S est organisé?Quatre couches, chaque couche est de plus en plus

abstraite du matériel en montant dans le systèmeChaque couche a une interface bien définie pour la couche

adjacente (couche inférieur est un serveur pour la supérieure)

Page 17: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Le logiciel d’E/S ont des couches (comme les Ogres)

• Gestionnaires d’interruptionsLes 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 l’utilisateur; 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 l’interruption arrive, le pilote est débloqué/envoyé un message/etc.

Page 18: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Le logiciel d’E/S ont des couches (comme les Ogres)

• Gestionnaires d’interruptionsComme de raison, cela n’est 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 d’interruption (RSI)• Confirmer avec le contrôleur d’interruptions (ou le

périphérique si il n’y a pas de CI

(cont.)

Page 19: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Le logiciel d’E/S ont des couches (comme les Ogres)

• Gestionnaires d’interruptions• Copier les registre de là où ils ont étés sauvegardés

à la table de processus• Exécuter la RSI (aller chercher l’info 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 l’exécution pour le nouveau processus

Page 20: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Le logiciel d’E/S ont des couches (comme les Ogres)

• Pilotes de périphériquesChaque périphérique d’E/S attaché à l’ordinateur

requiert du code spécifique pour faire l’interface entre le matériel et le SE. Ce code s’appel 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 d’une 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

Page 21: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Le logiciel d’E/S ont des couches (comme les Ogres)

• Pilotes de périphériquesTypiquement les pilotes sont dans le noyau pour

qu’ils puissent avoir accès au registres de contrôle du périphérique

• Ce n’est pas un requis. Vous pourriez avoir un pilote dans l’espace utilisateur et faire des appels de systèmes pour communiquer avec les registres. Par contre la pratique courante est d’avoir les pilotes dans le noyau.

Étant donné que c’est la méthode habituel d’implémenter les pilotes, l’architecture normale est de mettre les pilotes ‘en bas’ du SE

Page 22: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Le logiciel d’E/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 d’interfaces et que les périphériques par caractères en supporte un autre

Page 23: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Le logiciel d’E/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érieureFonctions assorties:

• Initialise le périphérique

• Gère la puissance – Arrête un disque de tourner, ferme un écran, ferme une caméra, etc.

Page 24: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Le logiciel d’E/S ont des couches (comme les Ogres)

• Qu’est-ce que un pilote fait sur une lecture/écriture?Vérifie les paramètres d’entrée & retourne les erreursConverti 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

Page 25: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Le logiciel d’E/S ont des couches (comme les Ogres)

• Qu’est-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 l’espace de mémoire de l’écran) donc le travail est continué jusqu’à ce que l’E/S soit terminé

Page 26: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Le logiciel d’E/S ont des couches (comme les Ogres)

• Complications de la vie réel pour les pilotes de périphériques:Interruption reçu durant l’exécution des E/S

• Peut se produire quand on assemble un paquet pour un réseau et qu’un 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 l’ordinateur fonctionne

• Clés de mémoire

• Carte de réseau PCMCIA

• Etc.

Page 27: GEF 435 Principes des systèmes dexploitation Principes et structure du logiciel dE/S (Tanenbaum 5.2 & 5.3)

Quiz Time!

Questions?