Mis à jour le 30 janvier 2006
DM: Modéliser le système de fichiers
DM: Modéliser le système de fichiers |
À rendre pour le vendredi 18 février 2005,
18h00. |
Voir les Réponses aux questions ci-dessous.
Sujet
Le DM consiste à terminer le
TD sur la modélisation du système de fichiers
au moins jusqu'à la question 3, opérations sur les
fichiers, incluse. Vous pouvez librement reprendre la partie corrigée du
TD.
Si vous n'arrivez pas à réaliser la question 3 dans sa totalité, vous
pouvez quand même y répondre partiellement, par exemple en n'implémentant
que la lecture de fichiers.
Il est important que chaque fonctionalité implémentée soit correcte: par
exemple, si manifestement votre fonction write
ne fonctionne pas, alors
retirez-là. C'est mieux que de soumettre une version incorrecte! (Mais,
bien sûr c'est encore mieux de la déboguer afin de pouvoir la soumettre.)
La question 4, opérations sur les répertoires,
est facultative. Non
pas qu'elle ne soit pas intéressante —bien au contraire, elle est très
pédagogique!— mais réaliser le TD dans sa totalité peut-être long, en
particulier pour ceux ne qui ne sont pas encore très à l'aise. Bien sûr,
vous êtes encouragés à avancer progressivement dans la question 4, et à
aller aussi loin que vous le pourrez.
Bon DM!
Dépôt des DMs
Pour déposer vous fichiers, récupérez le fichier
Makefile.
Il vous faudra également le fichier de tests
Simplefs.tgz.
Vérifiez d'abord que tout va bien en faisant simplement:
Cela compile et exécute les tests dans un fichier testSimplefs.out
. Cela
crée le fichier testSimplesfs,out
même si les test échouent. Si vous
n'arrivez pas à passer effectuer les tests, alors expliquer brièvement
pourquoi fichier testSimplefs.FAILED
que vous éditez à la main.
Si vous avez commencé la partie 4, alors vous devez avoir des fichiers
dirfs.mli
et dirfs.ml
qui compilent et ils seront déposés.
Si vous abandonnez la partie 4 et ne voulez pas la rendre, alors effacez
vos fichiers dirfs.mli
et dirfs.ml
, ou placez les dans un
sous-répertoire.
Pour déposez, faite simplement:
pour déposer le DM. Vous faire plusieurs dépots de suite, le dernier
écrasant le précédent. Vous pouvez également voir ce que vous avez déposé
avec:
Et si vous voulez un peu de nettoyage, une fois que tout est fini,
Réponses aux questions
- Pourrait-on avoir une procédure de tests?
L'énoncé contient maintenant un programme de tests
testSimplefs.ml (qui a besoin du fichier
Simplefs.tgz) pour la question 3,
qu'il suffit de compiler et d'exécuter. (Voir les détails dans le sujet)
Il y a également un fichier mestests.ml
d'exemples de petits tests que vous modifier à volonté (voir les
détails ajoutés dans le sujet) pour faire la mise
au point.
Il y a aussi un fichier
showdisk.ml qui permet de
visualiser un fichier comme un disk.
Enfin pour ceux qui auront abordé la partie 4, vous pouvez tester
en récupérant le programme
testDirfs.ml (qui a besoin du fichier
Dirfs.tgz).
- Implémentation de la liste des blocs libres
On utilise des blocs libres pour former une liste de blocs contenant les
numéros des blocs libres, comme décrit dans le cours. Le bloc de tête de
cette liste est partiellement rempli de numéros de blocs libres.
On peut trouver le dernier numéro de bloc libre soit par calcul à partir du
nombre total de blocs libres, soit en parcourrant le bloc de tête (après
avoir sauté sa première case qui sert au chainage) et jusqu'à trouver la
dernière case de numéro non nul.
La version actuelle de Simplefs.dbg permet les
deux stratégies, mais une version précédente ne permettait que la première
stratégie, il faut donc raffraîchir ce fichier si besoin (Mon Feb 7 15:40).
- Peut-on avoir un
Makefile
pour compiler le projet?
Le fichier Makefile pour faire le dépôt permet également de
compiler vos fichiers et les tests, voir les détails
ajoutés dans le sujet.
- Dans
mkfs
, comment peut-on initialiser les inodes?
Voir dans les indications ajoutées dans le sujet.
Ce document a été traduit de LATEX par HEVEA