Skip to topic | Skip to bottom
Home
Minfo06
Minfo06.ProjetASYr1.2 - 24 Nov 2006 - 16:47 - GuillaumeChazaraintopic end

Start of topic | Skip to actions

Organisation

Le projet est à effectuer en binôme, il doit être rendu par mail à Guillaume.Chazarain@inria.fr avant le 8 décembre. Les TP du 17, 24 novembre et du 1er décembre sont consacrés au projet, contrairement à celui du 8 décembre.

CALCFS

Le projet consiste à implémenter un système de fichiers virtuel faisant office de calculette.

Les chiffres et les opérateurs sont des dossiers, ils sont combinés pour former des chemins qui contiennent le résultat de l'opération. Seules les opérations de base sont supportées : addition, soustraction, multiplication, division. Un chemin n'indique qu'une seule opération, il n'est donc pas possible de composer les opérations entre-elles.

Voici un exemple d'utilisation :

[root@localhost calcfs]# insmod calcfs.o
[root@localhost calcfs]# mount -t calcfs none fs
[root@localhost calcfs]# ls fs
0/  1/  2/  3/  4/  5/  6/  7/  8/  9/
[root@localhost calcfs]# cd fs
[root@localhost fs]# ls 1
0/  2/  4/  6/  8/  divise_par/  fois/   plus/
1/  3/  5/  7/  9/  egale        moins/
[root@localhost fs]# cat 1/egale
1
[root@localhost fs]# ls 1/2
0/  2/  4/  6/  8/  divise_par/  fois/   plus/
1/  3/  5/  7/  9/  egale        moins/
[root@localhost fs]# ls 1/2/fois
0/  1/  2/  3/  4/  5/  6/  7/  8/  9/
[root@localhost fs]# ls 1/2/fois/8
0/  1/  2/  3/  4/  5/  6/  7/  8/  9/  egale
[root@localhost fs]# ls 1/2/fois/8/3
0/  1/  2/  3/  4/  5/  6/  7/  8/  9/  egale
[root@localhost fs]# cat 1/2/fois/8/3/egale
996

Le résultat final s'explique donc par 12 * 83 = 996. Comme on peut le voir sur l'exemple, le contenu des dossiers est toujours l'ensemble des éléments qu'il est possible d'ajouter à l'opération (on accepte les overflows). Le fichier egale contient le résultat de l'opération, seule la fonction read est à implémenter pour ce fichier.

Quelques remarques

  • Veillez à bien libérer la mémoire allouée, plus particulièrement, quand le cache décide de désallouer une inode il faut aussi supprimer les données attachées à cet inode.
  • La lisibilité du code source sera prise en compte dans la notation. http://lxr.linux.no/source/Documentation/CodingStyle est donc une bonne lecture. Pour l'indentation, confiez la gestion de vos espaces blancs à http://lxr.linux.no/source/scripts/Lindent.
  • Il est très fortement conseillé d'avancer dans le projet en dehors des heures de TP.
  • Faute avouée à moitié pardonnée : pour le rendu du projet, précisez les limitations connues de votre implémentation.

-- GuillaumeChazarain - 14 Nov 2006
to top


You are here: Minfo06 > ProjetASY

to top

Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding WIKIDeptinfo? Send feedback