3.14. Étude simplifiée de NTFS
On étudie brièvement une version
simplifiée du système de gestion de fichiers NTFS. Ce
système gère des partitions dont la taille peut atteindre
264 octets. L’allocation se fait par blocs de taille fixe,
encore appelés clusters, les numéros de clusters
étant représentés sur 64 bits. L’espace libre est
représenté par un fichier bitmap qui, à raison de 1
bit par cluster, définit son état d’allocation.
Une table, appelée MFT (Master File Table), contient un
enregistrement par fichier existant sur le disque. Cet enregistrement, de la
taille d’un cluster, contient les informations suivantes, chacune
d’elles étant de taille variable :
- Nom du fichier, informations standards,
informations de protection, représentant en moyenne 100
octets,
- Date et taille du fichier, occupant 16
octets
- Données. Il s’agit soit du
contenu du fichier, s’il y a suffisamment de place dans
l’enregistrement, ou sinon des informations de localisation du contenu
sous la forme de la liste des numéros de clusters alloués au
fichier.
Cette table est mémorisée dans un
fichier (tout est fichier dans NTFS). Une référence à un
fichier est constitué d’un couple :
- Numéro de l’enregistrement du
fichier dans la MFT (48 bits),
- Numéro
de séquence, incrémenté lors de chaque création
d’un nouveau fichier qui réutilise ce numéro
d’enregistrement (16 bits).
Dans le cas d’un
répertoire, les données sont constituées de la table qui
associe à un nom symbolique la référence au fichier, ainsi
que sa date et sa taille. Ces deux informations sont copiées depuis
l’enregistrement du fichier dans la MFT.
A- On gère une partition de 2 Go par ce
système, en utilisant une taille de cluster de 4 Ko. Déterminer le
nombre de clusters, l’occupation du fichier bitmap, le nombre maximum de
fichiers et l’espace perdu en moyenne par fichier. Comparer avec le
système de gestion de fichiers utilisant la FAT.
B- Evaluer la taille de fichier qui permet au contenu
d’être dans l’enregistrement du fichier dans la MFT. Donner
les avantages et inconvénients de cette méthode.
C- Quelle peut être l’utilité du
numéro de séquence dans la référence d’un
fichier ?
D- La date et la taille d’un fichier sont
dupliquées, d’une part dans le répertoire
d’accès au fichier, d’autre part dans la MFT. Donner les
avantages et les inconvénients de cette redondance.
Solution de l’exercice
3.14
3.14.1. Question A
Le nombre de clusters est obtenu en divisant la taille de la
partition par la taille d’un cluster. On obtient 524288 clusters. Comme il
faut 1 bit par cluster, cela conduit à une taille du fichier bitmap de
64 Ko. Le descripteur de fichier est mémorisé dans un
cluster, ce qui limite à 524288 le nombre de fichiers, si leur contenu
peut être tout entier dans ce descripteur. Notons que le descripteur de
fichier est identifié par un numéro sur 48 bits, permettant un
nombre de fichiers largement supérieur. Si certains fichiers
débordent, l’espace qu’ils occupent limitera ce nombre. En
d’autre termes, il n’y a pas de limite dans le nombre de fichiers,
si ce n’est l’espace qu’ils occupent. L’espace perdu est
en moyenne 1/2 quantum par fichier soit ici 2 Ko.
Comparaison avec le système FAT. Le nombre de clusters
est limité à 65536, c’est-à-dire 8 fois moins que
pour NTFS. Pour gérer un disque de 2 Go, FAT demande alors une
taille de cluster de 32 Ko. La table d’allocation elle-même est
cette fois de 128 Ko, donc deux fois plus grande. Le nombre de fichiers
avec le système FAT est limité par le nombre de clusters, un
fichier non vide devant contenir au moins 1 cluster. Il y a donc 8 fois moins de
fichiers dans ce cas. Enfin, l’espace perdu par fichier étant de
1/2 quantum, elle est cette fois de 16 Ko. On peut donc dire que le
système FAT n’est pas adapté à la gestion de
partition de 2 Go, et que NTFS est beaucoup plus satisfaisant dans ce
cas.
3.14.2. Question B
Le descripteur de fichier contient en moyenne 116 octets, en
dehors des données propres du fichier. Comme la taille est limité
à 4 Ko, il y a de la place pour 3980 octets de données en
moyenne. Cela veut dire que les données des petits fichiers seront
contenues dans leur descripteur. On peut y voir deux avantages :
d’une part, un accès immédiat au contenu du fichier à
partir du descripteur au lieu d’une indirection et d’autre part un
espace alloué minimum tout en ayant des tailles variables pour les
différents champs du descripteur.
3.14.3. Question C
Les fichiers sont identifiés par un couple <ns,
nf> où nf est le numéro de l’enregistrement du
descripteur du fichier dans la MFT et ns un numéro de séquence
incrémenté lors de chaque création d’un nouveau
fichier qui réutilise ce numéro d’enregistrement. Il est
possible que la référence au fichier soit utilisée à
différents endroits sur le disque, comme par exemple dans des
répertoires. En cas de destruction du fichier, il ne devrait plus exister
de référence vers ce fichier. Cependant, en cas d’anomalie,
une telle référence peut encore être présente. Si
elle est exploitée avant la réutilisation de
l’enregistrement de la table MFT, cela conduira à une erreur,
pourvu que l’on ait pris soin de marquer l’enregistrement comme
invalide. Si l’enregistrement est réutilisé pour un nouveau
fichier, il faut alors pouvoir détecter que l’a
référence est ancienne et ne correspond pas au nouveau fichier.
Pour cela il suffit que le numéro de séquence soit
mémorisé dans l’enregistrement, ce qui permet de
vérifier qu’une référence pour cet enregistrement
n’est pas périmée.
3.14.4. Question D
La date et la taille d’un fichier sont
dupliquées, d’une part dans le répertoire
d’accès au fichier, d’autre part dans la MFT. Ces
informations font partie du descripteur d’un objet externe et doivent donc
se trouver dans la MFT. Par contre, elles ne sont pas nécessaires dans le
répertoire d’accès au fichier qui doit contenir surtout la
référence au fichier, et permet ainsi de localiser le descripteur.
L’avantage de l’avoir en double est de permettre d’en disposer
immédiatement lors de l’accès au répertoire sans
avoir à consulter le descripteur, par exemple lorsque l’on veut
lister le contenu d’un répertoire. L’inconvénient est
lié au maintien de la cohérence des données en plusieurs
exemplaires. Lors de chaque modification de l’une de ces informations,
elle doit être recopiée en différents endroits sur disque.
L’utilisation de la mémoire cache et de l’écriture
paresseuse (lors de la suppression du cache par exemple) évite une trop
grande dégradation des performances. L’utilisation du fichier
journal (§11.3.4) permet de garantir que toutes les copies sont bien
identiques, même en cas de panne.