[Notes] Système d'exploitation (11) - Implémentation du système de fichiers

Préface

Le système de fichiers fournit un mécanisme de stockage en ligne et d'accès au contenu des fichiers, y compris les données et les programmes. Le système de fichiers réside en permanence sur le stockage externe, qui peut stocker en permanence de grandes quantités de données.

Ce chapitre explique principalement comment stocker et accéder aux fichiers sur le stockage externe le plus couramment utilisé, à savoir le disque. Discutez de l'utilisation de diverses méthodes pour organiser les fichiers, allouer de l'espace disque, restaurer l'espace libre, suivre l'emplacement des données et d'autres composants du système d'exploitation pour fournir des interfaces de mémoire externe et des problèmes de performances.

1. Structure du système de fichiers

Pourquoi choisir le disque comme espace de stockage externe pour maintenir le système:

  • Peut être réécrit sur place
  • Toute information sur le disque est directement accessible.
  • Économique.
  • Nous discuterons de la structure du disque en détail dans le chapitre suivant.

Mémoire et disque: afin d'améliorer l'efficacité des E / S, la mémoire directe et les E / S disque sont transférées en unités de blocs plutôt qu'en octets effectués. Chaque bloc est un ou plusieurs secteurs. Selon le lecteur de disque, le secteur varie de 32 à 4096B, généralement 512B.

Le système de fichiers a généralement une conception hiérarchique:

Insérez la description de l'image ici

  • Équipement: équipement d' E / S, y compris imprimantes, claviers, etc.
  • Contrôle E / S: Il est composé d'un pilote de périphérique et d'un gestionnaire d'interruption pour réaliser la transmission d'informations entre la mémoire et le disque.
  • Système de fichiers de base: il vous suffit d'envoyer des commandes générales au pilote de périphérique approprié pour lire et écrire des blocs physiques sur le disque. Chaque bloc est identifié par son adresse numérique de disque.
  • Module d'organisation des fichiers: Connaissez le fichier et ses blocs physiques et logiques. Connaissant le type d'allocation de fichier utilisé et l'emplacement du fichier, le module d'organisation de fichiers peut convertir l'adresse de bloc logique en adresse de bloc physique utilisée par le système de fichiers de base.
  • Système de fichiers logique: le système de fichiers logique gère les métadonnées. Les métadonnées incluent toutes les structures de données du système de fichiers, mais n'incluent pas les données réelles. Le système de fichiers logique gère la structure de répertoires en fonction du nom de fichier de symboles donné et fournit les informations nécessaires au module d'organisation de fichiers. Le système de fichiers logique maintient la structure de fichiers via le bloc de contrôle de fichiers .
  • Bloc de contrôle de fichier (FCB): contient des informations sur le fichier, notamment le propriétaire, les autorisations et l'emplacement du contenu du fichier.
  • Programme utilisateur

2. Implémentation du système de fichiers

1. Vue d'ensemble

Différents systèmes d'exploitation ont des systèmes de fichiers différents, mais ils ont toujours des règles générales

Règle générale partie 1:

  • Bloc de contrôle de démarrage (pour chaque volume): ** Contient la confiance dont le système a besoin pour démarrer le système d'exploitation à partir de ce volume. Si le disque n'a pas de système d'exploitation, le contenu de ce bloc est vide. Il s'agit généralement du premier morceau du volume. Le système de fichiers UFS est appelé bloc de démarrage **, le système de fichiers NTFS est appelé secteur de démarrage de partition .
  • Bloc de contrôle du volume (pour chaque volume): ** Contient des informations détaillées sur le volume, telles que le nombre de partitions, la taille du bloc, le nombre et les pointeurs de blocs libres, le nombre et les pointeurs de FCB libres, etc. Le système de fichiers UFS est appelé un superbloc et le système de fichiers NTFS est appelé la table de fichiers maître **.
  • Structure des répertoires: La structure des répertoires de chaque système de fichiers est utilisée pour organiser les fichiers. Dans UFS, il contient le nom du fichier et le numéro de nœud d'index associé . Il est stocké dans la table des fichiers maîtres en NTFS .

Les informations en mémoire sont utilisées pour la gestion du système de fichiers et mises en cache pour améliorer les performances. Ces données sont chargées lors de l'installation du système de fichiers et supprimées lors du déchargement.

Règles générales partie 2:

  • Un tableau d'installation en mémoire, comprenant des informations sur tous les volumes installés.
  • Un cache de structure de répertoire en mémoire, utilisé pour stocker les informations de répertoire récemment visitées.
  • La table des fichiers ouverts à l'échelle du système comprend des copies FCB et d'autres informations pour chaque fichier ouvert.
  • La table de fichiers ouverts d'un processus unique comprend un pointeur vers l'entrée appropriée dans la table de fichiers ouverts à l'échelle du système et d'autres informations.

Composition FCB typique:
Insérez la description de l'image ici
Utilisation FCB: Afin de créer un nouveau fichier, l'application appelle le système de fichiers logique. Le système de fichiers logique connaît la forme de la structure de répertoires. Afin de créer un nouveau fichier, il allouera un nouveau FCB (si l'implémentation du système de fichiers a créé tous les FCB lorsque le système de fichiers est créé, un seul est alloué à partir de l'ensemble FCB libre). Ensuite, le système lit les informations du catalogue dans la mémoire, met à jour le catalogue et le PCB avec le nouveau nom de fichier et réécrit le résultat sur le disque.

Structure du système de fichiers en mémoire: ouvrir le fichier à gauche, lire le fichier à droite
Insérez la description de l'image ici

2. Partitionnement et installation

** Les disques sont classés comme crus (cuits): **

  • Le disque brut fait référence à un disque sans système de fichiers, car il n’existe pas de système de fichiers approprié pour stocker des données spécifiques et certaines bases de données utilisent des disques bruts.
  • Un disque cuit est un disque contenant un système de fichiers.

Informations de démarrage: les informations de démarrage peuvent être stockées dans chaque partition. Il a son propre format, car le système ne possède pas de pilote de périphérique de système de fichiers au moment du démarrage.

Partition racine: comprend le noyau du système d'exploitation et d'autres fichiers système, qui sont chargés en mémoire au démarrage.

3. Système de fichiers virtuel (système de fichiers virtuel, VFS)

Le système de fichiers virtuel est une couche d'interface (interface VFS) entre le système de fichiers physique et le service de système de fichiers, qui résume les détails souhaités de chaque système de fichiers physique et fournit un appel système unifié pour ces différents systèmes de fichiers interface.

  • La couche VFS définit une interface VFS claire pour séparer le fonctionnement général du système de fichiers de l'implémentation spécifique.
  • VFS fournit un mécanisme pour identifier de manière unique un fichier sur le réseau.
  • VFS peut faire la distinction entre les fichiers locaux et les fichiers distants, et peut en outre distinguer différents fichiers locaux en fonction des types de fichiers.

Insérez la description de l'image ici

Troisièmement, réalisation d'annuaire

1. Liste linéaire

Le moyen le plus simple d'implémenter un répertoire consiste à utiliser une liste linéaire de noms de fichiers de stockage et de pointeurs de blocs de données. Cette méthode est simple à programmer mais prend du temps à exécuter.

2. Table de hachage

Les fonctions de hachage sont faciles à trouver, mais des conflits se produisent, ce qui réduit l'efficacité. Mais c'est toujours mieux que les listes linéaires.

Quatre, méthode de distribution

On discute ici de la façon dont le fichier est stocké sur le disque.

1. Distribution continue

La méthode d' allocation continue nécessite que chaque fichier occupe un ensemble de blocs indépendants sur le disque. La stratégie d'allocation peut être combinée avec la stratégie d'allocation de mémoire du chapitre 8 (première, optimale, maximum).

Avantages: simple à mettre en œuvre, prise en charge de l'accès séquentiel et de l'accès direct, vitesse d'accès rapide, rendement élevé, adapté à la situation où le contenu du fichier n'est pas modifié.

Inconvénients: étant donné que les fichiers sont alloués à un espace contigu, la taille du fichier est difficile à augmenter; une fragmentation externe se produira.

  • Résolvez le problème de la fragmentation externe: transférez sur un autre disque, fusionnez l'espace libre, puis transférez-le à nouveau. Mais il y aura des temps d'arrêt .
  • Résolvez le problème de l'incapacité à s'étendre: grâce au pointeur, lorsque l'espace n'est pas suffisant, un autre espace est étendu. L'espace d'origine est recherché pour l'espace d'expansion via le pointeur.

Allocation continue de l'espace disque:
Insérez la description de l'image ici

2. Attribution de lien

L'allocation de lien résout tous les problèmes d'allocation continue. À l'aide de l'allocation de liens, chaque fichier est une liste liée de blocs de disque et les blocs de disque sont distribués n'importe où sur le disque.

Avantages: mise en œuvre simple, seule la première adresse est requise; il n'y a pas de problème de fragmentation externe, le fichier peut être agrandi et il n'est pas nécessaire de déclarer la taille du fichier à l'avance.

Désavantages:

  • Chaque bloc de fichier a un pointeur et occupe de l'espace;
  • Impossible de lire directement;
  • Mauvaise fiabilité, la perte d'un bloc de données intermédiaire entraînera la rupture de la chaîne;

Solution:

  • Réduisez l'occupation de l'espace du pointeur: regroupez plusieurs blocs en clusters et allouez-les par cluster au lieu de bloc (mais cela augmentera la fragmentation interne).
  • Augmentez la fiabilité: utilisez la table d'allocation de fichiers (FAT) . Le début de chaque volume est utilisé pour stocker le FAT. Chaque bloc a une entrée dans la table FAT, qui peut être indexée par le numéro de bloc. L'utilisation de FAT est similaire à une liste chaînée. L'entrée de répertoire contient le numéro de bloc du premier bloc du fichier. L'entrée FAT indexée par le numéro de bloc contient le numéro de bloc du bloc suivant du fichier. Cette chaîne se poursuivra jusqu'au dernier bloc, et la valeur de l'entrée FAT correspondant à ce bloc est la valeur de fin de fichier.

Allocation de connexion d'espace disque:
Insérez la description de l'image ici
FAT:
Insérez la description de l'image ici
Avantages de FAT: En lisant la table FAT dans la mémoire en une seule fois via les E / S, un accès aléatoire à n'importe quelle position du fichier peut être réalisé; stabilité élevée.

Inconvénients de FAT: Si la table FAT est lue dans la mémoire sans utiliser le cache, cela entraînera un accès au FAT en premier pour chaque accès, ce qui entraînera un long temps d'accès.

3. Allocation d'index

L'allocation liée résout le problème de la fragmentation externe et de la déclaration de taille de l'allocation continue. Cependant, si FAT n'est pas utilisé, l'allocation de liaison ne peut pas prendre en charge efficacement l'accès direct, car les pointeurs et les blocs sont répartis sur l'ensemble du disque et doivent être lus dans l'ordre.

Allocation d'index: ce problème est résolu en rassemblant tous les pointeurs, c'est-à-dire via des blocs d'index .

Avantages: prise en charge de l'accès séquentiel, accès aléatoire; le fichier peut être étendu, la taille du fichier n'a pas besoin d'être déclarée à l'avance; haute stabilité; pas de fragmentation externe.

Inconvénient: perte d'espace. Par exemple, chaque fichier ne fait qu'un ou deux blocs. Avec l'allocation de lien, un seul pointeur est gaspillé par bloc. Avec l'allocation d'index, bien que seulement un ou deux pointeurs ne soient pas vides, un bloc d'index complet doit être alloué.

problème résolu:

  • Afin de traiter des fichiers volumineux, plusieurs blocs d'index peuvent être liés ou des index à plusieurs niveaux peuvent être utilisés.
  • Afin d'éviter que les petits fichiers ne gaspillent de l'espace, un schéma de combinaison peut être utilisé. Par exemple , l'inode dans le système de fichiers UNX .
    Insérez la description de l'image ici
    Inode dans UNX:
    Insérez la description de l'image ici

Cinq, gestion de l'espace libre

1. vecteur de bits

Vecteur de bits: L'espace libre est représenté sous forme de bitmap, chaque espace libre est représenté par 1 bit, s'il est libre, il vaut 1 et il a été attribué à 0. Par exemple, 10101101010100110110101010110.

Avantages: relativement simple à mettre en œuvre; facile à générer des fichiers avec une allocation d'espace continue.

Inconvénients: s'il y a trop de blocs de disque, le bitmap correspondant sera très volumineux.

2. Liste liée

Liste liée: connectez tous les blocs de disque libres avec une liste liée et stockez le pointeur vers le premier bloc libre dans un emplacement spécial sur le disque, et mettez-le également en cache dans le cache.

Avantages: petit espace mémoire occupé lors de l'interrogation (la lecture de la plupart d'un bloc suffit)

Inconvénients: mauvaise fiabilité, difficile de trouver beaucoup de blocs gratuits. Et la recherche prend du temps.

3. Groupe

Pour la liste chaînée libre, les adresses de n blocs libres peuvent être stockées dans le premier bloc libre, les n-1 blocs suivants sont en effet vides, et le dernier bloc contient les adresses des n autres blocs libres.
Avantages: L'adresse d'un grand nombre de blocs gratuits peut être trouvée rapidement.

4. Compter

En général, plusieurs blocs contigus doivent être alloués ou libérés en même temps, en particulier lorsque l'allocation et les clusters contigus sont utilisés. Par conséquent, l'adresse du premier bloc et le nombre n de blocs libres consécutifs suivant le premier bloc peuvent être enregistrés.

De cette manière, chaque entrée de la table d'espace libre comprend l'adresse du disque et le numéro. Bien que chaque entrée nécessite plus d'espace que l'original, la longueur totale du tableau sera plus courte, car le nombre de blocs consécutifs est souvent supérieur à 1.

Je suppose que tu aimes

Origine blog.csdn.net/qq_41882686/article/details/112915794
conseillé
Classement