GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum & 5.3.4)
Revue Que veulent dire les principes suivants pour les Entrées/Sorties dans un Système dexploitation: Indépendant des périphériques Nommage uniforme Traitement des erreurs Transferts synchrones vs. asynchrones Tamponnage Périphériques partagés vs. dédiés
Synopsis Logiciels dE/S indépendants des périphériques Logiciel dE/S au niveau de lutilisateur Sommaire des couches de logiciel dE/S
Logiciels dE/S indépendants des périphériques Les pilotes de périphériques doivent avoir des implémentations vraiment particulières pour interagir avec les périphériques Cependant, les opérations utilisées pour interagir avec les E/S devraient largement êtres les mêmes pour les périphériques à lintérieure dune classe. Tout les fichiers devraient avoir les opérations ouvrir, fermer, lire, etc. Les périphériques de réseaux vont avoir besoin de connecter, déconnecter, état, etc. Pardessus les pilotes il y a une couche de logiciels indépendants des périphériques pour que les programmeurs naient pas à comprendre les particularités de chaque périphériques mais de comprendre chaque classe en générale
Logiciels dE/S indépendants des périphériques Fonctions typiques de la couche de logiciel indépendant des périphériques: 1) Interfaçage uniforme pour les pilotes de périphériques 2) Tamponnage 3) Traitement des erreurs 4) Allocation et relâchement des périphériques dédiés 5) Fournissement dune grandeur de blocs indépendant des périphériques
Logiciels dE/S indépendants des périphériques 1) Interfaçage uniforme pour les pilotes de périphériques Cest là que les périphériques similaires à lintérieure dun groupe sont rendus semblables pour la couche supérieure Si cela nétait pas fait, chaque fois quune nouvelle imprimante (ie: Lexmark 2050) était ajoutée au système, le SE devraient être changé ie: Un appel de système pour lire un fichier dun CD-ROM serait structuré différemment quune lecture pour une disquette! Le gros gain dans ce système: les pilotes peuvent êtrefacilement ajoutés au système tant et aussi longtemps quils supportent les interfaces vers le haut et vers le bas
Logiciels dE/S indépendants des périphériques 1) Interfaçage uniforme pour les pilotes de périphériques Le manufacturier du pilote doit se faire dire quelles fonctions le pilote doit supporter et quelles fonctions du noyau il peut appeler par le producteur du SE Cette couche est aussi responsable pour mapper les noms symboliques de périphériques à chacun des périphériques Par exemple, dans *NIX si une disquette est montée à /dev/disk0, le SE doit localiser le pilote qui doit être utilisé en déterminant le périphérique spécifique qui est monté à cette location
Logiciels dE/S indépendants des périphériques 2) Tamponnage Pourquoi est-ce que le tamponnage est une question? Considérez un modem. Recevoir un caractère à la fois serait non efficace parce que le programme de lutilisateur aurait à se faire réveiller pour chaque réception Le programme de lespace utilisateur pourrait par conséquent fournir un tampon pour écrire tout les caractères. Que se passerait-t-il si le tampon est paginé? Le noyau peut tenir le tampon. Mais que ce passe-t-il si le tampon est en train dêtre copié quand un nouveau caractère arrive? On a besoin de deux tampons pour que pendant que un se fait copier, on peut écrire à lautre
Logiciels dE/S indépendants des périphériques 2) Tamponnage Pourquoi est-ce que le tamponnage est une question? Une méthode tel que celle de droite sappelle double tamponnage Il y a des questions pour la sortie: Le tampon de lutilisateur doit être copié dans lespace noyau pour attendre la transmission pour que le programme de lutilisateur puisse continuer à exécuter
Logiciels dE/S indépendants des périphériques 2) Tamponnage Le tamponnage est fait au niveau des logiciels indépendants des périphériques parce quil ne serait pas efficace si on laissait les pilotes faire ce travail et les résultats seraient inconsistants Chaque classe de périphériques va avoir des requis de tamponnage différents. Par exemple: le tampon qui est requis pour un modem va être différent que celui pour un scanneur
Logiciels dE/S indépendants des périphériques 3) Traitement des erreurs Il y a deux classes derreurs dans cette couche: Erreurs de programmation – le processus de lutilisateur demande limpossible tel que décrire à une souris, lire dune imprimante, ou accéder à un fichier qui na pas été ouvert Erreurs dE/S – une tentative a été faite pour écrire au disque mais lopération a échoué au niveau physique. Si le pilote ne peut pas traiter le problème (par exemple en essayant décrire encore), il est passé à la couche supérieure Cette couche est responsable pour collationner les erreurs qui peuvent se produire et de les rapporter à lutilisateur dune façon consistante quand cela est requis
Logiciels dE/S indépendants des périphériques 4) Allocation et relâchement des périphériques Lallocation et le relâchement des périphériques qui peuvent être seulement utilisés par un seul utilisateur à la fois est faite dans la couche de logiciels indépendants des périphérique Si le périphérique nest pas disponible, un message derreur doit être reporté ou le processus doit être bloqué jusquà ce que le périphérique soit disponible
Logiciels dE/S indépendants des périphériques 5) Fournit une grandeur de blocs indépendante des périphériques Relié au fournissement dune interface similaire à un groupe de périphériques. Si une carte de réseau reçoit de linformation en blocs de 32 bits, mais que le modem requiert des octets, ceci devrait être invisible aux couches supérieures
Logiciels dE/S au niveau des utilisateurs Notez que même si tout le logiciel dE/S réside dans le noyau, une petite quantité va aussi exister dans lespace utilisateur À partir de où? Les bibliothèques que vous devez inclure dans votre programme pour utiliser les fonctions tel que open/close/read/write Ces procédures de bibliothèque font évidemment partie du sous- système d E/S Le spooling est aussi considéré comme faisant partie de lespace utilisateur parce que le spooler est simplement un programme dutilisateur avec la permission daccéder le fichier imprimante
Sommaire des couches de logiciel dE/S Notez comment la couche des gestionnaires dinterruptions est sautée pour les demandes, mais évidemment elle ne les pas pour les réponses
Quiz Time! Questions?