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 :
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 :
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.