nuage.gif (26536 octets)
carre_transparent.gif (42 octets) carre_transparent.gif (42 octets) carre_transparent.gif (42 octets) carre_transparent.gif (42 octets) carre_transparent.gif (42 octets)
  sommaire.gif (5085 octets)alian_jeans2_gauche.gif (9388 octets)
info.GIF (200 octets) Théorie des systèmes d'exploitation
 

PROJET DE FIN D'ANNEE : THEORIE DES SYSTEMES D'EXPLOITATION
Modéliser et programmer en objets un système de gestion de fichiers

 

 

Sommaire :

bleu.gif (162 octets) Présentation
bleu.gif (162 octets) Dépendances inter-classes
bleu.gif (162 octets) Différentes valeurs dans Disk.java
bleu.gif (162 octets) Installation

 

I - Présentation


Il s'agit de simuler un système de gestion de fichiers à l'aide d'un langage orienté objet .

L’application programmée a été effectuée en Java, compilée avec JDK 1.1.1

Certaines possibilités d’utilisation ont été prévues lors de la modélisation mais n’ont pas été implémentées faute de temps, ce qui peut expliquer que certains attributs soient inutiles...

     

II - Dépendances inter-classes

   
Les commentaires ont été extraits des sources Java et générés dans le dossier Package System_file joint avec ce dossier.

Ils expliquent pourquoi chaque classe a été définie. On y trouve également la liste des attributs et méthodes de chaque classe.
 

  bouton2.gif (1689 octets)

 

    Cliquer sur une classe vous renvoie vers sa documentation
     

III - Différentes valeurs dans Disk.java

  bouton2.gif (1689 octets)
On observe que en faisant varier la taille des blocs on occupe plus ou moins vite l’espace disque . Plus la taille est grande, plus il y a de places perdues, mais par contre plus on lit de données est lues en une fois . C’est intéressant également si les temps d’accès d’entrée/sortie sont lents .

Le test a été effectué avec 4 valeurs différentes pour la taille d’un bloc :

  • 512 octets - 1Ko - 2 Ko - 4 Ko
  • avec 50 fichiers crées de 12,5 Ko soit 625 Ko de données
   
Taille d’un bloc Nombre de blocs alloués Place occupée
512 octets 50+ 50 * 12,5 / 0,5 = 1300 650 Ko
1 Ko 50 + 50 * 12,5 / 1 = 700 700 Ko
2 Ko 50 +50 * 12,5 / 2 = 400 800 Ko
4 Ko 50 +50 * 12,5 / 4 = 250 1 Mo
        

On s’aperçoit qu’il s’agit d’une courbe exponentielle, donc il est déconseillé d’utiliser des blocs de plus de 2 Ko, à moins d’un serveur de fichiers qui aurait des volumes énormes ! La moyenne des fichiers sous Unix est de 1Ko.

  bouton2.gif (1689 octets)  

IV - Installation :

     
  1. Créez un répertoire pour recevoir la totalité du programme
  2. Téléchargez l'application complète
  3. Décompressez l’archive dans ce répertoire. Vous obtenez 2 répertoires et un fichier :
    1. System_file : (*.java) répertoire qui contient les sources des programmes java du package System_file
    2. doc : contient les documentations HTML extraites des sources JAVA .
    3. Test.java : programme principal
  4. Configurez System_file/Disk.java afin de fixer les caractéristiques du disque
  5. Compilez les sources : depuis la racine de l’arborescence créé : javac Test.java
  6. Générez la documentation : depuis le même répertoire : javadoc -d doc -private System_file
  7. Exécutez le programme : java Test