Previous Up Next

3  Troisième couche logicielle, 1re partie : structure d’un volume

Chaque volume manipulé par notre système de fichiers dispose d’un descripteur de volume, son superbloc, inspiré par celui décrit dans le cours. Il dispose à la base

De plus le système de fichiers utilise un mécanisme de gestion des blocs libres gérés sous forme d’une liste chaînée de blocs.


Exercice 9
 (Descripteurs de volume)   Définissez les structures de données du superbloc de chaque volume, du chaînage des blocs libres.

Exercice 10
 (Initialiser un volume)   Proposez une fonction
void init_volume(unsigned int vol);
qui permet d’initialiser le superbloc d’un volume, en particulier d’y associer le chaînage des blocs libres.

Exercice 11
 (Sélection et mise à jour d’un volume)   Il s’agit de réaliser les deux fonctions suivantes :
int load_super(unsigned int vol);
void save_super();
qui permettent respectivement de sélectionner le volume courant en chargeant le superbloc dans une variable globale et de mettre à jour le superbloc chargé en mémoire, après qu’il ait été modifié.

Exercice 12
 (Allouer et libérer des blocs)   Proposer des fonctions de gestion des blocs pour allouer et libérer des blocs dans un volume :
unsigned int new_bloc();
void free_bloc(unsigned int bloc);

Partition courante — Commandes mknfs et dfs

Dans l’ensemble des programmes qui seront maintenant développés, nous travaillerons sur un unique volume désigné par la valeur de la variable d’environnement $CURRENT_VOLUME.

Dans le même esprit, le fichier de configuration de la bibliothèque hardware utilisé sera désigné par la variable d’environnement $HW_CONFIG. Une valeur par défaut pourra être choisie.

On développera en particulier un programme mknfs (make new filesystem), pendant de la commande Unix mkfs, qui initialisera ce volume courant et un programme dfs (display filesystem), pendant de la commande Unix df, qui affichera l’état des partitions, et pour la partition courante son taux d’occupation.

Validation de la bibliothèque d’allocation/libération de blocs

Pour valider votre travail, concevez un programme qui


Previous Up Next