Sie sind auf Seite 1von 50

Les supports de stockage Syst`

eme de fichiers Organisation interne des fichiers

Chapitre V : La gestion des disques et


lorganisation des fichiers

Eric.Leclercq@u-bourgogne.fr

Departement IEM
http://ufrsciencestech.u-bourgogne.fr
http://ludique.u-bourgogne.fr/~leclercq

January 22, 2017


Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Plan

1 Les supports de stockage


Terminologie

2 Syst`eme de fichiers
Syst`eme de fichiers
Table dallocation

3 Organisation interne des fichiers


Fichiers sequentiel indexes
Index de type B-arbre
Acc`es aleatoire ou disperse
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Introduction

La gestion des disques :


concerne les methodes dacc`es au blocs de donnees par le
noyau du SE
la definition dune structure pour accueillir les fichiers
La gestion des fichiers recouvre plusieurs activites :
Une gestion effectuee par le noyau du SE : allocation, gestion
des meta-donnees (taille, date de creation, proprietaire),
localisation
Une gestion en mode utilisateur : gestion interne du contenu
du fichier (ouverture, lecture, ecriture)
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Acc`es sequentiel ou direct


Les anciens supports de stockage etaient essentiellement `a acc`es
sequentiel
Exemple :
analogie avec les K7 de magnetoscope, bandes magnetiques,
rubans perfores etc.

Aujourdhui, il existe toujours des bandes mais leur utilisation est


reservee pour les sauvegardes. Les disques magnetiques presentent
des caracteristiques essentielles :
Rapidite des acc`es (acc`es direct `a une zone)
Fiabilite
Grande capacite
Exemple :
capacite actuelle dun disque sur un PC 500Go, acc`es 5-10ms,
transfert 50M/s.
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Structure dun disque

1 Plateaux
2 Moteur (axe)
3 Mecanisme de deplacement des bras
4 bras supportant les tetes de lecture ecriture (5)
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Structure dun disque


Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Structure dun disque : resume


Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Structure dun disque : terminologie


Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Structure dun disque : terminologie


Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Notion de syst`eme de fichiers

Formatage : le disque est decoupe en zones logiques appelees


secteurs regroupes sur des pistes
Lensemble des pistes de meme numero sur different plateaux
forme un cylindre
Les blocs sont des regroupement de secteurs (en general 512
octets / secteur)
La creation dun syst`eme de fichiers (formatge dans le monde
Windows) cree une structure de donnees pour affecter des
blocs `a des fichiers (commande mkfs dans le monde Unix)
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Notion de syst`eme de fichiers

Les syst`emes de fichier sont geres `a partir dune seule et


meme racine (/)
Les utilisateurs sont tous possesseurs dune branche dans
laquelle ils sont matres (home directory )
les utilisateur peuvent developper leur branche : creer de
nouveaux fichiers et de nouveaux repertoires
Contrairement `a Windows, lutilisation de disquettes nest pas
vue comme lajout dun nouveau volume (disque), mais
comme le raccordement dun syst`eme de fichiers `a
larborescence existante
Les disquettes ou tout autre support de stockage sont greff
es
sur larbre principal par une commande mount :
mount /dev/fd0 /mnt/floppy
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Fichier speciaux, liens symboliques

Il existe plusieurs categories de fichiers speciaux sous Unix :


les repertoires
les tubes nommes
les peripheriques : syst`eme de fichier /dev
le descriptif de letat de lOS via le syst`eme de fichiers /proc
Quelques fois il est utile de nommer les fichiers de plusieurs facons
(alias) ou bien de pouvoir acceder `a un fichier depuis plusieurs
emplacements dans larborescence. On a alors recours aux :
Liens symboliques sous UNIX :
ln /home/eric/toto18.java /home/eric/toto.java
Aux raccourcis sous Windows (traitement non prevu par le FS)
Aux alias sur MACOS
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Notion de fichier

Les disques permettent un acc`es direct aux donnees au moyen


dune adresse de bloc, un fichier est un ensemble logique de bloc
appartenant `a une meme entite (le fichier).
on peut specifier un premier bloc et ensuite chaner les blocs
(ajouter ladresse du suivant)
on peut etablir une liste de blocs dans une table
Probl` eme : utilisateur ne connat pas lemplacement du fichier sur
le disque, il ne connat que son nom
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Vers la notion de table dallocation


Solution 1 :
On int`egre au debut de chaque fichier son nom
On place le fichier sur le disque au premier endroit o` u on
trouve de la place
Le recherche dun fichier est alors sequentielle : etant donne le
nom, on lit les blocs du disque `a partir du debut et on
recherche la premi`ere occurrence du nom du fichier
Inconvenient : on nutilise alors pas du tout lacc`es direct
permit par la structure physique du disque dur
Solution 2 :
le premier secteur contient un tableau T qui setend sur la
globalite de la premi`ere piste et qui associe `a chaque nom de
fichier le numero du secteur qui le contient
Inconvenient : fragilite de la table dallocation (File Allocation
Table)
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

File Allocation Table


Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

File Allocation Table


Etant donne un nom M, le positionnement de la tete de lecture sur
le premier secteur (secteur 0) permet :
de charger lindex
de le parcourir `a la recherche de la chane de caract`eres M
de determiner le secteur qui contient le debut du fichier
la tete de lecture du disque se positionne alors sur la piste en
question et recherche plus precisement le fichier (le secteur)
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

i-node sous Unix

Definition :
Les inodes (index node) ou i-nuds sont des structures de donnees
contenant les informations qui decrivement comment les fichiers
stockes dans un file system

Les inodes contiennent les metadonnees des fichiers


(proprietaires, droits, etc.).
Les inodes sont crees lors de linitialisation du syst`eme de
fichiers.
Le nombre dinodes crees est determinee lors de lintitiaisation
du file system et dependent de la taille de la partition.
Le nombre de i-node determine le nombre maximum de
fichiers du syst`eme de fichier.
La structure dun i-node determine la taille maximum dun
fichier.
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Exemple avec ext2 de Linux

Un inode contient environ 64 champs, dont 13 contiennent des


blocs (dedies donnees) pouvant etre de deux types :
blocs dadresses : contiennent des pointeurs vers dautres
blocs ;
blocs de donn
ees : contiennent les donnees du fichier.
De plus :
Les 10 premiers champs (sur les 13) contiennent les adresses
des 10 premiers blocs de donnees du fichier (dune adresse par
bloc).
Si les 10 premiers (blocs) champs sont suffisants pour contenir
le fichier, les champs 11, 12 et 13 ne sont pas utilises.
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Exemple avec ext2 de Linux

Dans le cas contraire, en plus des 10 premiers blocs, les blocs 11,
12 et 13 sont utilises pour 3 niveaux dindirections.
la simple indirection, utilisee par le champ 11 ;
la double indirection, utilisee par le champ 12 ;
la triple indirection, utilisee par le champ 13.
Chacun de ces trois champs pointe vers un bloc dadresses, qui
pourra pointer vers un ou plusieurs blocs dadresses ou de donnees.
Plus le niveau dindirection est eleve, plus le nombre final de blocs
de donnees sur lequel pointe le champ (11, 12 ou 13) sera eleve.
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Exemple avec ext2 de Linux : exemple


Hypoth`eses
les blocs ont une taille 1024 octets ;
chaque adresse (dans le cas dun bloc dadresses) est stockee
sur 32 bits (4 octets) ;
chaque bloc dadresses peut contenir 256 adresses.
Mise en oeuvre des indirection pour des fichiers volumineux :
1 Le champ 11 pointe vers un bloc dadresses qui contient des
pointeurs vers des blocs de donnees (256 pointeurs). Si cela
est suffisant pour contenir le fichier, les champs 12 et 13 ne
sont pas utilises.
2 Le champ 12 pointe vers un bloc dadresses qui pointe vers
256 autres blocs dadresses. Ce sont ces 256 blocs dadresses
qui pointeront vers 256 blocs de donnees.
3 Le champ 13 pointe ajoute un troisieme niveau.
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Exemple avec ext2 : taille maximale de fichier

Determiner le nombre de bloc de donnees utilisables :


Les 10 premiers champs pointent chacun sur 1 bloc de
donnees ;
Le champ 11 pointe vers 256 blocs de donnees ;
Le champ 12 pointe vers 2562 blocs de donnees ;
Le champ 13 pointe vers 2563 blocs de donnees.
La taille maximale dun fichier peut alors etre calculee avec
lhypoth`ese de blocs de 1024 octets :

1024 (10 + 256 + 2562 + 2563 ) = 17247250432


Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Structure de fichiers : meta-donnees et contenu

Un fichier regroupe un ensemble de donnees appele contenu


Un fichier est associe `a des meta-donnees stockees ou non
dans la table dallocation : un nom, une date, un
emplacement, un proprietaire, des attributs de lecture etc.
Le contenu dun fichier est un ensemble structure
enregistrements (appeles aussi articles ou records)
Chaque article represente une information unitaire (unite
dinformation)

Exemple :
le fichier du personnel dune entreprise
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Enregistrements et champs

Les articles se decomposent en champs


Chaque champ represente une propriete de larticle
Les champs sont lassociation entre un attribut et une valeur
dun type donne.

Exemple :
Dans le fichier du personnel le champ nom represente le nom dune
personne (Nom, Adresse, etc.) et une valeur (toto, rue
Quimonte, etc.)
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Enregistrements et champs

Le plus souvent la structure des articles est identique dans un


meme fichier :
nombre dattributs fixe et champs de taille fixe
Ainsi, tous les articles ont la meme taille et on peut calculer la
position dun element en fonction de son numero dordre
On parle alors darticle de longueur fixe par opposition aux
fichiers comportant des articles de longueur variable
Quand peut-on rencontrer des articles de taille variable ?
Avantages/Inconvenients de ces deux formats
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Organisation des fichiers en enregistrements


Generalement lorganisation doit optimiser :
la restitution du contenu des fichiers
meme lorsque les donnees sont complexes (beaucoup de
champs, reliees) il est necessaire que les acc`es en lecture
soient rapides

Exemple :
dictionnaire, plan de ville, images satellitales

Pour la modification du contenu des fichiers plusieurs probl`emes


sont `a prendre en compte :
Comment inserer au mieux un nouvel article dans un fichier
Comment replacer un information qui augmente de volume
Comment ne pas laisser de trous apr`es une suppression
(fragmentation)
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Organisation en fonction dun acc`es par adresse

Tout acc`es reel `a un enregistrement se fait en specifiant son


adresse avec les hypoth`eses suivantes :
implantation contigue des enregistrements
utilisation dune table dallocation associee `a un fichier si les
enregistrements sont de taille variable
utilisation dune table des zones libres pour gerer la
fragmentation
On peut souhaiter demander au syst`eme lacc`es `a un
enregistrement qui a certaines proprietes mais dont on ne connat
pas ladresse (fichier tr`es grand)
Exemple :
recherche du numero de telephone dune personne en fonction de
son nom, ou de sa ville, ou de plusieurs crit`eres
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Notion de cle ou didentifiant

Certains champs (attributs) permettent de discriminer totalement


une information :
ces attributs sont appeles des cles
deux valeurs differentes de la cle font reference `a des
enregistrements differents, ainsi, dans un fichier il ne peut pas
y avoir deux enregistrements differents ayant la meme valeur
de cle
Conclusion : chaque valeur de cle correspond `a une seul
adresse denregistrement dans le fichier
Comment utiliser cette propriete pour acceder au contenu dun
article en se basant sur la valeur de la cle ?
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Acc`es au contenu via une cle


Differents types dorganisations ont ete etudies depuis plus de 40
ans pour repondre `a deux types de probl`emes :
retrouver efficacement un enregistrement particulier dans un
grand jeu de donnees en RAM (selon un crit`ere fixe et, sans
utiliser une recherche sequentielle).
recherche sur le disque (dans un fichier qui ne peut pas tenir
en memoire) des donnees (selon un crit`ere fixe)
On distingue deux types dapproches (les resumes et leur
organisation dans un index (A), les approches organisation
aleatoire qui modifient lemplacement des donnees (semi)) :
Sequentielle (fichiers tries selon la cle)
Sequentielle indexee (A)
B-Arbre (A)
Aleatoire (B)
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Principe de lindex

Le principe de lindexation consiste `a batir une table de


correspondances (table dindex) entre :
les valeurs de la cle
es adresses des enregistrements sur le disque
Pour faciliter les acc`es (rapidite) cette table doit etre :
triee
stockee dans un fichier (pas reconstruite `a chaque operation)
chargee ou chargeable en memoire centrale
On parle alors de fichier sequentiel indexe et plusieurs index
peuvent etre associe `a un meme fichier et stockes eux meme dans
des fichiers triees.
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Exemple dindex
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Amelioration de lindex

Le principe de lindexation peut etre complete de plusieurs


mani`eres :
Au lieu de la cle on peut utiliser un attribut discriminent (qui
nest pas une cle stricte), il y aura des doublons dans lindex
On peut constituer une cle de lindex `a partir de plusieurs
attributs (par exemple nom + prenom sil y a des
homonymes) Exemple : mots dun dictionnaire (1 mot =
plusieurs sens donc plusieurs definitions)
On peut creer et combiner plusieurs index suivant les
recherches effectuees (par nom, par adresse etc.)
On peut fragmenter lindex lorsque la la table est trop grande
pour tenir en memoire principale
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Exemple dindex
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Organisation en arbre : B-arbre

Invente chez Boeing : B pour Boeing ou Balanced (equilibre)


Lidee principale est dutiliser une cle pour naviguer
rapidement un article
Au lieu dune table dindex, on utilise une structure plus
adaptee aux recherches : un arbre donc chaque nud a au
plus n fils
Principe du B-Arbre :
Les articles dont la valeur de la cle est inferieure
(respectivement superieure) `a lenregistrement du nud
courant sont places `a sa gauche (respct. `a sa droite)
cette structure comme lindex ne contient pas les articles mais
seulement la valeur de la cle et la position (adresse) de
lenregistrement dans le fichier
Cette strategie est efficace si larbre est bien organise : il a
autant de fils gauche que droits
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Exemple dindex B-arbre


Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Organisation en arbre : B-arbre

Cette technique est interessante car la parcours de larbre


revient `a une recherche dichotomique dont le nombre de
comparaison est fixe par la profondeur maximum de larbre
Ce nest verifie que si larbre est equilibre (balanced)
Chaque nud doit avoir autant de descendants gauches que
droit
Le principe est de construire d`es le depart un arbre equilibre
puis de maintenir lequilibre au fur et `a mesure de sa
croissance
On doit donc couper des branches et les regreffer ailleurs ?
Que faire des suppressions dans larbre ?
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

B-arbre stocke comme un tableau


Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Organisation aleatoire : hash-coding

Les techniques precedentes consistaient `a voir differemment le


fichier sans le modifier :
en lui associant une structure complementaire lindex
La technique de hash-coding consiste `a reorganiser le fichier :
on reserve une zone contigue pour ranger des enregistrements
cette zone est divisee en p paquets numerotes de 0 `a p 1 de
taille fixe t
on utilise une fonction dite de hachage qui fait correspondre `a
chaque valeur de cle un numero de paquet entre 0 et p 1
ladresse reelle dun enregistrement est ladresse du paquet et
un deplacement relatif au debut du paquet
les cles peuvent etre de type varies et le resultat est
imperativement un nombre entier
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Organisation aleatoire : hash-coding

Lacc`es `a un enregistrement seffectue en appliquant la fonction de


hachage `a la valeur de la cle presentee pour obtenir un numero de
paquet candidat :
Au sein dun paquet, la recherche est sequentielle
Les articles dont ranges par ordre darrivee
Pour definir une fonction de hachage, il faut dabord transformer
les valeurs de la cle, souvent une chane en une valeur numerique
(un nombre entier) :
on se sert t du codage interne de la valeur des caract`eres qui
est numerique 8 bits ASCII 16 bits Unicode
on utilise abondamment la fonction modulo
D. Knuth, Volume 3, Sorting and Searching (1973).
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Organisation aleatoire : exemple


Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Organisation aleatoire : les limites


Lorsque le syst`eme fonctionne bien, pour une recherche :
il y a seulement un acc`es direct
ensuite un petit deplacement (sequentiel)
Le probl`eme du hash-coding provient de ce que :
en fonction des donnees presentes, certains paquets peuvent
rester vides (memoire sous utilisee)
des paquets peuvent etre en etat de debordement (paquet
sature)
il nest pas possible de garantir `a lavance ce qui se produira
Pour pallier ces difficultes en amont on doit faire en sorte que la
fonction de hachage :
reste le plus possible representative de la valeur de la cle. Il y
a alors peu de valeurs de cle differentes pour un meme
numero de paquet
donne une repartition statistique uniforme des valeurs de cles
sur les numeros de paquets (?)
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Organisation aleatoire : les limites

En aval en essaie de gerer la saturation des paquets en utilisant des


techniques de redirection des articles surnumeraires :
Adressage ouvert
http://fr.wikipedia.org/wiki/Table_de_hachage
Chanage
Rehachage
Dans tous les cas le debordement deteriore les performances du
syst`eme
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Tables de hachage en Java

Une table de hachage Java qui permet une association


cle-elements et propose au moins les fonctionnalites suivantes :
put(key, value) : qui permet dassocier une valeur (objet)
`a une cle ;
get(key) : qui retourne lobjet qui a ete associee `a la cle, ou
null sil ny en a pas ;
remove(key) : qui supprime lentree associee `a la cle dans la
table (mais pas necessairement lobjet).
Contraintes :
il ne peut pas y avoir deux entrees de meme cle dans une
table de hachage (on a bien un Set sur les cles);
une meme valeur peut etre associee `a plusieurs cles
differentes, il sagit donc dune Collection.
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Comportement abstrait des HT

Linterface Map<K,V> :
put(K key, V value), get(K key) et remove(K key)
keySet() : retourne lensemble des cles de la table de
hachage sous la forme dun Set<K>
values() : retourne lensemble des valeurs stockees dans la
table de hachage sous la forme Collection<V>
entrySet() : retourne lensemble des entrees de cette table
de hachage cest-`a-dire un Set dont les elements sont des
Map.Entry.
clear(), size(), isEmpty(), containsKey(K key) et
containsValue(V value)
putAll(Map map) pour dajouter toutes les cles de la table
passee en param`etre `a la table courante.
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Entree de HT : linterface Map.Entry

Linterface Map.Entry represente la structure des couples


(cle/valeur) dune table de hachage et propose les methodes :
getKey()
getValue()
Pour obtenir un objet Map.Entry, faire un appel `a la methode
Map.entrySet(), iterer sur le Set obtenu en retour.
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Tables ordonnees : interface SortedMap

Linterface SortedMap permet de stocker des tables de hachage


triees selon lordre des cles.
lordre doit etre defini de mani`ere implicite (objets
Comparable) ou explicite au moyen dun Comparator (objet
qui implemente)
firstKey() et lastKey() : retournent la plus petite cle et
la plus grande
headMap(K toKey) et tailMap(K fromKey) : retournent
des vues sur la table
subMap(K fromKey, K, toKey) : retourne une vue sur la
table (entre les deux cles)
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Tables ordonnees : interface NavigableMap

NavigableMap est une specialisation de SortedMap avec des


methodes de selection :
ceilingKey(K key) et floorKey(K key) : retournent
respectivement la plus petite cle superieure ou egale, ou la
plus grande cle inferieure ou egale `a la cle passee en param`etre
ceilingEntry(K key) et floorEntry(K key)
higherKey(K key) et lowerKey(K key)
higherEntry(K key) et lowerEntry(K key)
firstEntry() et lastEntry()
headMap(K sup, boolean inclusive) et tailMap(K
inf, boolean inclusive)
subMap(K fromKey, K, toKey)
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Implementations
LAPI Java Collection fournit cinq implementations de linterface
Map :
Hashtable, presente depuis Java 1.2 synchronisee ;
HashMap autorise les valeurs nulles mais nest pas
synchronisee ;
LinkedHashMap etend HashMap et entretient une liste chanee
permettant diterer sur les entrees dans un ordre fixe.
IdentityHashMap utilise loperateur == pour savoir si deux
cles sont identiques (les autres utilisent le resultat de la
methode equals)
WeakHashMap si la cle nest plus referencee ailleurs dans le
programme, le couple est automatiquement supprime de la
collection
Linterface SortedMap a une implementation TreeMap. Cette
classe implemente egalement NavigableMap.
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Collections et concurrence

Depuis la version 1.2 lorientation de Java pour les collections est


lamelioration de la performance, par consequent les collections ne
sont pas thread-safe. Cependant la classe collection permet
dajouter un comportement specifique :
Collections.synchronizedCollection(Collection<T> c)
Collections.synchronizedList(List<T> list)
Collections.synchronizedMap(Map<K,V> m)
Collections.synchronizedSet(Set<T> s)
Collections.synchronizedSortedMap(SortedMap<K,V> m)
Collections.synchronizedSortedSet(SortedSet<T> s)
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Exemple
1 import java . util .*;
2
3 class Arbre {
4 String nomCommun ;
5 String genre ;
6 String famille ;
7 String rusticite ;
8 int dureeVie ;
9 public Arbre ( String nom , String famille ) {
10 nomCommun = nom ;
11 this . famille = famille ;
12 }
13 }
14
15 public class TreeHash {
16 public static void main ( String arg []) {
17 Arbre a1 = new Arbre ( " e rable " ," ace race es " ) ;
18 Arbre a2 = new Arbre ( " h^ e tre " ," fagace es " ) ;
19 // on cr e e une HashMap pour des recherche sur le nom commun
20 Map < String , Arbre > lesArbres = new HashMap < >() ;
21 lesArbres . put ( a1 . nomCommun , a1 ) ;
22 lesArbres . put ( a2 . nomCommun , a2 ) ;
23 System . out . println ( " El e ments : " + lesArbres . size () ) ;
24 System . out . println ( " -> " + lesArbres . get ( " e rable " ) ) ;
25 for ( Map . Entry < String , Arbre > entry : lesArbres . entrySet () )
26 System . out . println ( " [ " + entry . getKey () + " ] -> " + entry . getValue () . famille
) ;
27 }
28 }
Les supports de stockage Syst`
eme de fichiers Organisation interne des fichiers

Quelques lectures essentielles `a un informaticien :

Algorithmique - 3`eme edition - Dunod - Edition 2010 Thomas


Cormen, Charles Leiserson, Ronald Rivest , Clifford Stein
Donald Knuth - The Art of Computer Programming, Volumes
1-3, le volume 3 chapitre 4 traite des tables de hachage.