GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum 5.3.3...

16
GEF 435 Principes des systèmes d’exploitation Structure du logiciel d’E/S Partie II (Tanenbaum 5.3.3 & 5.3.4)

Transcript of GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum 5.3.3...

Page 1: GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum 5.3.3 & 5.3.4)

GEF 435Principes des systèmes d’exploitation

Structure du logiciel d’E/S Partie II(Tanenbaum 5.3.3 & 5.3.4)

Page 2: GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum 5.3.3 & 5.3.4)

Revue

• Que veulent dire les principes suivants pour les Entrées/Sorties dans un Système d’exploitation: Indépendant des périphériquesNommage uniformeTraitement des erreursTransferts synchrones vs. asynchronesTamponnage Périphériques partagés vs. dédiés

Page 3: GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum 5.3.3 & 5.3.4)

Synopsis

• Logiciels d’E/S indépendants des périphériques• Logiciel d’E/S au niveau de l’utilisateur• Sommaire des couches de logiciel d’E/S

Page 4: GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum 5.3.3 & 5.3.4)

Logiciels d’E/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ériquesCependant, les opérations utilisées pour interagir avec les

E/S devraient largement êtres les mêmes pour les périphériques à l’intérieure d’une 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 n’aient pas à comprendre les particularités de chaque périphériques mais de comprendre chaque classe en générale

Page 5: GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum 5.3.3 & 5.3.4)

Logiciels d’E/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 d’une grandeur de blocs indépendant des périphériques

Page 6: GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum 5.3.3 & 5.3.4)

Logiciels d’E/S indépendants des périphériques

• 1) Interfaçage uniforme pour les pilotes de périphériquesC’est là que les périphériques similaires à l’intérieure

d’un groupe sont rendus semblables pour la couche supérieure

• Si cela n’était pas fait, chaque fois qu’une 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 d’un CD-ROM serait structuré différemment qu’une lecture pour une disquette!

Le gros gain dans ce système: les pilotes peuvent être ‘facilement’ ajoutés au système tant et aussi longtemps qu’ils supportent les interfaces vers le haut et vers le bas

Page 7: GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum 5.3.3 & 5.3.4)

Logiciels d’E/S indépendants des périphériques

• 1) Interfaçage uniforme pour les pilotes de périphériquesLe 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

Page 8: GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum 5.3.3 & 5.3.4)

Logiciels d’E/S indépendants des périphériques

• 2) TamponnagePourquoi 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 l’utilisateur aurait à se faire réveiller pour chaque réception

• Le programme de l’espace 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 à l’autre

Page 9: GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum 5.3.3 & 5.3.4)

Logiciels d’E/S indépendants des périphériques

• 2) TamponnagePourquoi est-ce que le tamponnage est une question?

• Une méthode tel que celle de droite s’appelle double tamponnage

• Il y a des questions pour la sortie: Le tampon de l’utilisateur doit être copié dans l’espace noyau pour attendre la transmission pour que le programme de l’utilisateur puisse continuer à exécuter

Page 10: GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum 5.3.3 & 5.3.4)

Logiciels d’E/S indépendants des périphériques

• 2) TamponnageLe tamponnage est fait au niveau des logiciels

indépendants des périphériques parce qu’il 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

Page 11: GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum 5.3.3 & 5.3.4)

Logiciels d’E/S indépendants des périphériques

• 3) Traitement des erreursIl y a deux classes d’erreurs dans cette couche:

• Erreurs de programmation – le processus de l’utilisateur demande l’impossible tel que d’écrire à une souris, lire d’une imprimante, ou accéder à un fichier qui n’a pas été ouvert

• Erreurs d’E/S – une tentative a été faite pour écrire au disque mais l’opé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 à l’utilisateur d’une façon consistante quand cela est requis

Page 12: GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum 5.3.3 & 5.3.4)

Logiciels d’E/S indépendants des périphériques

• 4) Allocation et relâchement des périphériquesL’allocation 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 n’est pas disponible, un message d’erreur doit être reporté ou le processus doit être bloqué jusqu’à ce que le périphérique soit disponible

Page 13: GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum 5.3.3 & 5.3.4)

Logiciels d’E/S indépendants des périphériques

• 5) Fournit une grandeur de blocs indépendante des périphériquesRelié au fournissement d’une interface similaire à

un groupe de périphériques. Si une carte de réseau reçoit de l’information en blocs de 32 bits, mais que le modem requiert des octets, ceci devrait être invisible aux couches supérieures

Page 14: GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum 5.3.3 & 5.3.4)

Logiciels d’E/S au niveau des utilisateurs

• Notez que même si tout le logiciel d’E/S réside dans le noyau, une petite quantité va aussi exister dans l’espace 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 l’espace utilisateur parce que le spooler est simplement un programme d’utilisateur avec la permission d’accéder le ‘fichier’ imprimante

Page 15: GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum 5.3.3 & 5.3.4)

Sommaire des couches de logiciel d’E/S

• Notez comment la couche des gestionnaires d’interruptions est sautée pour les demandes, mais évidemment elle ne les pas pour les réponses

Page 16: GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum 5.3.3 & 5.3.4)

Quiz Time!

Questions?