Cours SE - Partie 4 PDF
Document Details
Uploaded by Deleted User
Tags
Summary
This document provides an overview of computer systems, focusing on input/output operations, file systems, and mass storage structures. It explains concepts like device drivers, memory management, and file organization.
Full Transcript
CHAPITRE 4 1. Systèmes d’entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques) 1. Systèmes d’entrée/sortie Concepts importants : ⚫ Matériel E/S ⚫ Communication entre UCT et contrôleurs périphériques ⚫ DMA ⚫ Pilotes et contrôleurs de périphériques ⚫ Sous-système du no...
CHAPITRE 4 1. Systèmes d’entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques) 1. Systèmes d’entrée/sortie Concepts importants : ⚫ Matériel E/S ⚫ Communication entre UCT et contrôleurs périphériques ⚫ DMA ⚫ Pilotes et contrôleurs de périphériques ⚫ Sous-système du noyau pour E/S ⚫ Tamponnage, cache, spoule Catégories de périphériques d’E/S ⚫ Les périphériques d’E/S viennent en deux types généraux: ⚫ Périphériques par blocs ⚫ Périphériques par caractères ⚫ Les périphériques par blocs stockent les données en blocs de taille fixe, chacun possédant sa propre adresse ⚫ Les disques sont la représentation la plus courante des périphériques de blocs ⚫ Parce que chaque bloc est adressable, chaque bloc peut être indépendamment lu/écrit des autres blocs Catégories de périphériques d’E/S ⚫ Les périphériques par caractères acceptent et fournissent des flots de caractères sans aucune structure ⚫ Non adressable ⚫ Aucune opération de recherche (seek) ⚫ Exemples: souris, imprimante, interfaces de réseau, modems,… ⚫ Certains périphériques chevauchent les frontières: ⚫ les bandes magnétiques pour sauvegarder entreposentdes blocs de données de disques, mais l’accès est séquentiel ⚫ Certains périphériques ne font pas dans les modèles: ⚫ Écran: n’ont pas de blocs ou de flots, mais ont de la mémoire mappée Contrôleurs de périphériques ⚫ On se rappel: Les périphériques d’E/S ont typiquement une composante mécanique et une composante électronique ⚫ La partie électronique est le contrôleur Monitor Contrôleurs de périphériques ⚫ Sur un PC, le contrôleur de périphérique est habituellement sur un circuit imprimé ⚫ Il peut être intégré sur la carte mère ⚫ Le job du contrôleur est de convertir un flot de série de bits en octets ou en blocs d’octets et de faire les conversions et corrections ⚫ En fin de compte tous les périphériques traitent des bits. C’est le contrôleur qui groupe ou dégroupe ces bits Le logiciel d’E/S ont des couches ⚫Pilotes de périphériques ⚫ Chaque 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 radicalementdiffé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 Le logiciel d’E/S ont des couches ⚫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 d’E/S ont des couches ⚫ Qu’est-ce qu’un pilote fait sur une lecture/écriture? ⚫ Vérifie les paramètres d’entré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 ⚫ Contrôle le périphérique en envoyant des commandes par les registres de contrôle Le logiciel d’E/S ont des couches ⚫ 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 se termine, donc le pilote bloque. Il va se réveiller plus tard, ⚫ Le résultat est instantané (ex.: écriture dans l’espace de mémoire de l’écran) donc le travail continue jusqu’à ce que l’E/S soit terminé Structure de mémoire de masse (disques magnétiques) ⚫ Plats rigides couverts de matériaux d ’enregistrement magnétique ⚫ surface du disque divisée en pistes (tracks) qui sont divisées en secteurs ⚫ le contrôleur disque détermine l`interaction logique entre l ’unité et l ’ordinateur Nomenclature cylindre: l’ensemble de pistes qui se trouvent dans la même position du bras de lecture/écriture Vue schématique d’un disque dur Vue de dessus rotation Piste Secteu r Blo c Plateau Tête de lecture/écriture Surface s Vue en coupe Cylindre Cylindres – Secteurs - Clusters Cylindre: un tour de disque Secteur: Un subdivision d’un cylindre (512 Kilooctect) Cluster: Un groupement de secteurs Low Level Format = Division d’un disque en secteurs Adresse Les Données CRC Cylindre tête Structure, programme ou Correction Secteur données d’erreur Low level Application ou système A l’écriture format Support physique de codage de l’information ⚫ Disque dur (A) Piste (B)Secteur géométrique (C) secteur d'une piste (D) cluster Revue des disques magnétiques ⚫ Les disques sont organisés en cylindres, pistes et secteurs Revue des disques magnétiques ⚫ Toutes les pistes pour une position donnée du bras forment un cylindre. ⚫ Donc le nombre de cylindre est égale au nombre de piste par côté de plateau ⚫ La location sur un disque est spécifié par (cylindre, tête, secteur) mais en erreur par: (cylindre, piste, secteur) Sous-système E/S du noyau ⚫ Fonctionnalités: ⚫ Mise en tampon ⚫ Mise en cache ⚫ Mise en attente et réservation de périphérique ⚫ Gestion des erreurs Structure typique de bus PC PCI: Peripheral Component Interconnect Communication entre UCT et contrôleurs périphériques ⚫ Deux techniques de base: ⚫ UCT et contrôleurs communiquent directement par des registres ⚫ UCT et contrôleurs communiquent par des zones de mémoire centrale ⚫ Combinaisons de ces deux techniques Contr. UCT Périfer. RAM Accès direct en mémoire (DMA) ⚫ Dans les systèmes sans DMA, l’UCT est impliquée dans le transfert de chaque octet ⚫ DMA est utile pour exclure l’implication de l’UCT surtout pour des E/S volumineuses ⚫ Demande un contrôleur spécial a accès direct à la mémoire centrale Accès directe à la mémoire (DMA) ⚫DMA est utilisé pour libérer le CPU d’avoir à déplacer des octets du périphérique vers la mémoire ⚫Cela demande une autre pièce de matériel appelé un contrôleur DMA ⚫Le SE/CPU charge les registres du contrôleur DMA avec l’information nécessaire pour l’instruire de quel périphérique prendre/passer les données, où les mettre en mémoire et combien d’octets doivent être écrit/lu DMA: six étapes DMA: six étapes ⚫ 1- CPU demande au pilote du périphérique (disque) (software) de transférer les données du disque au buffer à l’adresse x ⚫ 2 - Le pilote du disque demande au contrôleur du disque (hardware) de transférer c octets du disque vers le buffer à l’adresse x ⚫ 3 - Le contrôleur du disque initie le transfert DMA ⚫ 4 - Le contrôleur du disque envoie chaque octet au contrôleur du DMA ⚫ 5 - Le contrôleur DMA transfert les octets au buffer x en augmentant l’adresse x et décrémentant le compteur c ⚫ 6 - Lorsque c=0 DMA envoie une interruption pour signaler la fin du transfert Tampons de disques Un tampon est une zone de mémoire utilisée pour stocker temporairement des données en cours de lecture ou d'écriture, afin d'optimiser l'accès au périphérique de stockage et d'améliorer les performances globales du système. ⚫Les disques ont besoin de tampons pour deux raisons principales: ⚫Tamponner les données qui arrive plus vite que l’on peut les transférer au système d’exploitation et vice-versa ⚫Lecture avancé de données qui n’ont pas encore étés demandées, mais qu’il le peuvent sous peu (données qui suivent la demande précédente) Mise en tampon ⚫ Principes. Processus Process Processus Process Processus Process ⚫ Simultanéité des opérations Contrôleur Contrôleur Contrôleur d’entrées et de sorties avec les Données A B A B opérations de calcul. ⚫ Le contrôleur de périphérique Périphérique Périphérique Périphérique inclue plusieurs registres de Sans tampon données. Lecture du ta-m 1 ipon A Lecture du tampon B ⚫ Pendant que l’UCT accède à un taille = nb octets Contrôleur Disque disque Registres DMA registre, le contôleur peut accéder Tampon à un autre registre. U.C. Adresse mémoire Mémoire Nombre d’octets BUS Mise en tampon ⚫ Double tamponnage: ⚫ P.ex. en sortie: un processus écrit le prochain enregistrement sur un tampon en mémoire tant que l’enregistrement précédent est en train d’être écrit ⚫ Permet superposition traitement E/S Mise en cache ⚫ Quelques éléments couramment utilisés d’une mémoire secondaire sont gardés en mémoire centrale ⚫ Donc quand un processus exécute une E/S, celle-ci pourrait ne pas être une E/S réelle: ⚫ Elle pourrait être un transfert en mémoire, une simple mise à jour d’un pointeur, etc. Logiciels d’E/S indépendants des périphériques Traitement des erreurs ⚫ Il 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 Gestion des erreurs ⚫ Exemples d’erreurs à être traités par le SE: ⚫ Erreurs de lecture/écriture, protection, périph non- disponible ⚫ Les erreurs retournent un code ‘raison’ ⚫ Traitement différent dans les différents cas… Les codes d'erreur "raison" permettent de fournir des informations détaillées sur la cause d'une erreur, Gestion de requêtes E/S ⚫ P. ex. lecture d’un fichier de disque ⚫ Déterminer où se trouve le fichier ⚫ Traduire le nom du fichier en nom de périphérique et location dans périphérique ⚫ Lire physiquement le fichier dans le tampon ⚫ Rendre les données disponibles au processus ⚫ Retourner au processus 2- Systèmes de fichiers ⚫ Systèmes fichiers ⚫ Méthodes d’accès ⚫ Méthodes d’allocation ⚫ Gestion de l’espace libre Que c’est qu’un fichier ⚫ Collection nommée d’informations apparentées, enregistrée sur un stockage secondaire ⚫ Nature permanente ⚫ Les données qui se trouvent sur un stockage secondaires doivent être dans un fichier ⚫ Différents types: ⚫ Données (binaire, numérique, caractères….) ⚫ Programmes Attributs d’un fichier Constituent les propriétés du fichiers et sont stockés dans un fichier spécial appelé répertoire (directory). Exemples d’attributs: Nom: pour permet aux personnes d’accéder au fichier Identificateur: Un nombre permettant au SE d’identifier le fichier Type: Ex: binaire, ou texte; lorsque le SE supporte cela Position: Indique le disque et l’adresse du fichier sur disque Taille: En bytes ou en blocs Protection: Détermine qui peut écrire, lire, exécuter… Date: pour la dernière modification, ou dernière utilisation Un “File Control Block” typique Opérations sur les fichiers: de base ⚫ Création ⚫ Écriture ⚫ Pointeurd’écriture qui donne la position d’écriture ⚫ Lecture ⚫ Pointeurde lecture ⚫ Positionnement dans un fichier (temps de recherche) ⚫ Suppression d’un fichier ⚫ Libération d’espace ⚫ Troncature: remise de la taille à zéro tout en conservant les attributs Autres opérations ⚫ Ajout d’infos ⚫ Rénommage ⚫ Copie ⚫ peut être faite par rénommage: deux noms pour un seul fichier ⚫ Ouverture d’un fichier: le fichier devient associé à un processus qui en garde les attributs, position, etc. ⚫ Fermeture ⚫ Ouverture et fermeture peuvent être explicites (ops open, close) ⚫ ou implicites Méthodes d’allocation Structure physique des fichiers La mémoire secondaire est subdivisée en blocs et chaque opération d’E /S s’effectue en unités de blocs Les blocs ruban sont de longueur variable, mais les blocs disque sont de longueur fixe Sur disque, un bloc est constitué d’un multiple de secteurs contiguës (ex: 1, 2, ou 4) la taille d’un secteur est habituellement 512 bytes Il faut donc insérer les enregistrements dans les blocs et les extraire par la suite Simple lorsque chaque octet est un enregistrement par lui- même Plus complexe lorsque les enregistrements possèdent une structure (ex: « main-frame IBM » ) Les fichiers sont alloués en unité de blocs. Le dernier bloc est donc rarement rempli de données Fragmentation interne Trois méthodes d’allocation de fichiers ⚫Allocation contiguë ⚫Allocation enchaînée ⚫Allocation indexée Allocation contiguë sur disque répertoire Allocation contiguë ⚫ Chaque fichier occupe un ensemble de blocs contigu sur disque ⚫ Simple: nous n’avons besoin que d’adresses de début et longueur ⚫ Supporte tant l’accès séquentiel, que l’accès direct ⚫ Moins pratique pour les autres méthodes Allocation contiguë ⚫ Application des problèmes et méthodes vus dans le chapitre de l’alloc de mémoire contiguë ⚫ Les fichiers ne peuvent pas grandir ⚫ Impossible d’ajouter au milieu ⚫ Exécution périodique d’une compression (compaction) pour récupérer l’espace libre Allocation enchaînée ⚫ Le répertoire contient l ’adresse du premier et dernier bloc, possibl. le nombre de blocs ⚫ Utilisé par MS-DOS et OS2. ⚫ Chaque bloc contient un pointeur à l’adresse du prochain bloc: bloc = pointeur Allocation enchaînée répertoire Tableau d’allocation de fichiers (FAT) Avantages - désavantages ⚫ Pas de fragmentation externe - allocation de mémoire simple, pas besoin de compression ⚫ L ’accès à l ’intérieur d ’un fichier ne peut être que séquentiel ⚫ Pas façon de trouver directement le 4ème enregistrement... ⚫ L ’intégrité des pointeurs est essentielle ⚫ Les pointeurs gaspillent un peu d ’espace Allocation indexée: semblable à la pagination ⚫ Tous les pointeurs sont regroupés dans un tableau (index block) index table Allocation indexée -1: pointeur nul Allocation indexée ⚫ À la création d ’un fichier, tous les pointeurs dans le tableau sont nil (-1) ⚫ Chaque fois qu’un nouveau bloc doit être alloué, on trouve de l ’espace disponible et on ajoute un pointeur avec son adresse Allocation indexée ⚫ Pas de fragmentation externe, mais les index prennent de l’espace ⚫ Permet accès direct (aléatoire) ⚫ Taille de fichiers limitée par la taille de l’index block ⚫ Mais nous pouvons avoir plusieurs niveaux d’index: Unix ⚫ Index block peut utiliser beaucoup de mém. UNIX BSD: indexé à niveaux Cette structure est en mémoire,tous les autres sont sur disque 12 blocs disque de 4K chaque 1024 blocs de 4K chaque 1024x 1024 blocs de 4K Bloc de 4K contient 1024 pointeurs 53 UNIX BSD ⚫ Les premiers blocs d’un fichier sont accessibles directement ⚫ Si le fichier contient des blocs additionnels, les premiers sont accessiblesà travers un niveau d’indices ⚫ Les suivants sont accessibles à travers 2 niveaux d’indices, etc. ⚫ Donc le plus loin du début un enregistrement se trouve, le plus indirect est son accès ⚫ Permet accès rapide à petits fichiers, et au début de tous les fich. ⚫ Permet l’accès à des grands fichier avec un petit répertoireen mémoire