Système de fichiers§

Systèmes d’exploitation

auteur:Pierre-Antoine Champin
adresse:Département Informatique - IUT - Lyon1
licence:Ce travail est sous license Creative Commons Attribution-ShareAlike 3.0 France
1

Problématique§

2

Exemple§

fd = open("mon_fichier.txt", O_WRONLY);
write(fd, "hello world\n", 12);
close(fd);
3

Niveaux d’abstraction§

Chaque fichier possède :

  • sa propre structure interne (tableau d’octets)
  • un nom (adressage indirect)
  • des permissions (drois d’accès différents)
4

Fonctionalités§

5

Généralités§

6

Terminologie§

_images/stockage_metadonnees_donnees.svg
7

Méta-données d’un fichier§

8

Types de fichiers§

9

Hiérarchie§

10

Hiérarchie sous MS DOS / Windows§

Chaque périphérique possède sa propre racine, identifiée par une lettre.

_images/hierarchie_dos.png
11

Hierarchie sous UNIX§

On a une hiérarchie unique ; chaque périphérique ancre sa racine dans un répertoire (montage).

_images/hierarchie_unix.png
12

Hierarchie sous Plan9§

13

Stockage des méta-données§

14

Différentes méthodes§

15

Répertoires§

Les méta-données (y compris le nom) de chaque fichier sont stockées directement dans le contenu du répertoire le contenant.

_images/metadonnees_repertoire.png
16

I-nodes§

17

Illustration§

_images/metadonnees_inodes.png
18
Remarques§
19

Compteur de références§

_images/metadonnees_hard_link.png
20

Hiérarchie cyclique§

_images/hierarchie_cyclique.png

Exemple de hiérarchie cyclique

21
Restrictions nécessaires§
22

Autres types de fichiers§

23

Généralités§

24

Lien symbolique§

25

Comparaison avec les liens physiques§

26

Exemple de hiérarchie pseudo-cyclique§

_images/hierarchie_soft_link.png
27

Exemple de lien symbolique (répertoire)§

_images/metadonnees_soft_link_dir.png
28

Exemple de lien symbolique (i-node)§

_images/metadonnees_soft_link_inode.png
29

Structration du contenu§

30

Problème§

Les méta-données décrivent comment sont logiquement structurées les données dans le système de fichier

La structuration physique de ces données doit rendre compte de la structure logique en optimisant :

  • le temps d’accès séquentiel
  • le temps d’accès direct
  • le surcoût en espace (stockage)
  • l’évolution de la taille des fichiers (fragmentation)
31

Remarques§

Ces critères dépendent des caractéristiques du périphérique de stockage sous-jacent.

32
Remarques (2)§

De même qu’il existe plusieurs manière de gérer les méta-données, il existe plusieurs manière de gérer les données.

Ces deux problématiques sont orthogonales, toutes les combinaisons sont en théorie possibles.

33

Allocation contiguë§

Principe : les fichiers sont stockés de manière contigüe, les uns à la suite des autres.

_images/sf_continue.png
34

Évaluation§

Avantages:
  • accès séquentiel et direct optimal (selon périphérique)
  • pas de surcoût en espace (autre que les méta-données)
Inconvénients:
  • impraticable si les fichiers sont appelés à croître en taille
35
Évaluation (2)§

→ Adapté sur les périphériques en lecture seule, ou non appelés à évoluer.

36

Listes chaînées§

Principe : les fichiers sont séparés en bloc ; chaque bloc pointe vers le bloc suivant.

_images/sf_listes_chainees.png
37

Évaluation§

Avantages:
  • évolution de la taille des fichiers
Inconvénients:
  • fragmentation interne (gaspillage)
  • performance
    • le parcours séquentiel du fichier requiert des accès direct au périphérique (changement de bloc)
    • l’accès direct au fichier requier un parcours séquentiel de la liste → nombreux accès au périphérique
38
Évaluation (2)§

À propos des inconvénients :

→ En pratique, on n’utilisera jamais cette structuration telle quelle.

39

File Allocation Table (FAT)§

(a donné son nom au format FAT32)

Principe : on « externalise » la structure de la liste chaînée dans une table qui, pour chaque bloc, donne le numéro du bloc suivant.

_images/sf_fat.png
40

Évaluation§

Avantages :
  • avantages de la liste chaînée…
  • … sans pénaliser l’accès direct car la FAT est maintenue en mémoire (le parcours séquentiel de la liste de blocs est donc négligeable devant le temps d’accès au périphérique)
Inconvénients :
  • ceux liées au découpage en blocs (fragmentation interne, accès séquentiel)
41
Évaluation (2)§
Inconvénients (suite) :
  • La FAT est une ressource critique (elle est généralement dupliquée par sécurité).
  • La FAT peut devenir volumineuse lorsque la capacité des disques augmente (occupation sur le disque et en mémoire).
Solutions partielles:
  • ne charger qu’une partie de la FAT en mémoire (réduit les performances)
  • augmenter la taille des blocs (gaspillage)
42

Tables d’index§

Principe : une table contient la liste ordonnée des blocs contenant les données du fichier.

_images/sf_tables_index.png
43

Évaluation§

Avantages:
  • les mêmes que la FAT…
  • mais plus modulaire : on ne charge que les tables des fichiers ouverts
Inconvénients:
  • ceux liées au découpage en blocs (fragmentation interne, accès séquentiel)
  • la taille du fichier est limité par la taille de la table d’index
44

Variante 1§

Afin d’autoriser des tables plus grandes, il est préférable de les stocker dans un bloc plutôt que dans la description du fichier

_images/sf_tables_index_2.png
45

Variante 2§

46

Exemple§

_images/inode_bsd.png
47

Pour aller plus loin§

48

Extents, allocation différée§

On a vu que le découpage en blocs permet l’évolution des noms de fichiers, mais pénalise en revanche l’accès séquentiel. Les systèmes de fichiers modernes offrent les fonctionalités suivantes :

49

Journalisation§

50

Mémoires flash§

51

Impacts sur les systèmes de fichiers§

52