Chapitre V : La gestion des disques et l’organisation des fichiers
Eric.Leclercq@u-bourgogne.fr
D´epartement IEM
http://ufrsciencestech.u-bourgogne.fr http://ludique.u-bourgogne.fr/~leclercq
March 10, 2011
Plan
1 Les supports de stockage Terminologie
2 Syst`eme de fichiers Syst`eme de fichiers Table d’allocation
3 Organisation interne des fichiers Fichiers s´equentiel ind´ex´es Index de type B-arbre Acc`es al´eatoire ou dispers´e
Introduction
La gestion des disques :
concerne les m´ethodes d’acc`es au blocs de donn´ees par le noyau du SE
la d´efinition d’une structure pour accueillir les fichiers La gestion des fichiers recouvre plusieurs activit´es :
Une gestion effectu´ee par le noyau du SE : allocation, gestion des m´eta-donn´ees (taille, date de cr´eation, propri´etaire), localisation
Une gestion en mode utilisateur : gestion interne du contenu du fichier (ouverture, lecture, ´ecriture
Acc` es s´ equentiel ou direct
Les anciens supports de stockage ´etaient essentiellement `a acc`es s´equentiel
Exemple :
analogie avec les K7 de magn´etoscope, bandes magn´etiques, rubans perfor´es etc.
Aujourd’hui, il existe toujours des bandes mais leur utilisation est r´eserv´ee pour les sauvegardes. Les disques magn´etiques pr´esentent des caract´eristiques essentielles :
Rapidit´e des acc`es (acc`es direct `a une zone) Fiabilit´e
Grande capacit´e
Exemple :
capacit´e actuelle d’un disque sur un PC 500Go, acc`es 5-10ms, transfert 50M/s.
Structure d’un disque
1 Plateaux
2 Moteur (axe)
3 M´ecanisme de d´eplacement des bras
4 bras supportant les tˆetes de lecture ´ecriture (5)
Structure d’un disque
Structure d’un disque : r´ esum´ e
Structure d’un disque : terminologie
Structure d’un disque : terminologie
Notion de syst` eme de fichiers
Formatage : le disque est d´ecoup´e en zones logiques appel´ees secteurs regroup´es sur des pistes
L’ensemble des pistes de mˆeme num´ero sur diff´erent plateaux forme un cylindre
Les blocs sont des regroupement de secteurs (en g´en´eral 512 octets / secteur)
La cr´eation d’un syst`eme de fichiers (formatge dans le monde Windows) cr´ee une structure de donn´ees pour affecter des blocs `a des fichiers (commandemkfs dans le monde Unix)
Notion de syst` eme de fichiers
Les syst`emes de fichier sont g´er´es `a partir d’uneseule et mˆeme racine (’/’)
Les utilisateurs sont tous possesseurs d’une branche dans laquelle ils sont maˆıtres (home directory)
les utilisateur peuvent d´evelopper leur branche : cr´eer de nouveaux fichiers et de nouveaux r´epertoires
Contrairement `a Windows, l’utilisation de disquettes n’est pas vue comme l’ajout d’un nouveau volume (disque), mais comme le raccordement d’un syst`eme de fichiers `a l’arborescence existante
Les disquettes ou tout autre support de stockage sont greff´es sur l’arbre principal par une commande mount :
mount /dev/fd0 /mnt/floppy
Fichier sp´ eciaux, liens symboliques
Il existe plusieurs cat´egories de fichiers sp´eciaux sous Unix : les r´epertoires
les tubes nomm´es
les p´eriph´eriques : syst`eme de fichier /dev
le descriptif de l’´etat de l’OS via le syst`eme de fichiers/proc Quelques fois il est utile de nommer les fichiers de plusieurs fa¸cons (alias) ou bien de pouvoir acc´eder `a un fichier depuis plusieurs emplacements dans l’arborescence. On a alors recours aux :
Liens symboliques sous UNIX :
ln /home/eric/toto18.java /home/eric/toto.java Aux raccourcis sous Windows (traitement non pr´evu par le FS) Aux alias sur MACOS
Notion de fichier
Les disques permettent un acc`es direct aux donn´ees au moyen d’une adresse de bloc, un fichier est un ensemble logique de bloc appartenant `a une mˆeme entit´e (le fichier).
on peut sp´ecifier un premier bloc et ensuite chaˆıner les blocs (ajouter l’adresse du suivant)
on peut ´etablir une liste de blocs dans une table
Probl`eme : utilisateur ne connaˆıt pas l’emplacement du fichier sur le disque, il ne connaˆıt que son nom
Vers la notion de table d’allocation
Solution 1 :
On int`egre au d´ebut de chaque fichier son nom
On place le fichier sur le disque au premier endroit o`u on trouve de la place
Le recherche d’un fichier est alors s´equentielle : ´etant donn´e le nom, on lit les blocs du disque `a partir du d´ebut et on
recherche la premi`ere occurrence du nom du fichier Inconv´enient : on n’utilise alors pas du tout l’acc`es direct permit par la structure physique du disque dur
Solution 2 :
le premier secteur contient un tableau T qui s’´etend sur la globalit´e de la premi`ere piste et qui associe `a chaque nom de fichier le num´ero du secteur qui le contient
Inconv´enient : fragilit´e de la table d’allocation (File Allocation Table)
File Allocation Table
File Allocation Table
´Etant donn´e un nom M, le positionnement de la tˆete de lecture sur le premier secteur (secteur 0) permet :
de charger l’index
de le parcourir `a la recherche de la chaˆıne de caract`eres M de d´eterminer le secteur qui contient le d´ebut du fichier la tˆete de lecture du disque se positionne alors sur la piste en question et recherche plus pr´ecis´ement le fichier (le secteur)
Structure de fichiers : m´ eta-donn´ ees et contenu
Un fichier regroupe un ensemble de donn´ees appel´e contenu Un fichier est associ´e `a des m´eta-donn´ees stock´ees ou non dans la table d’allocation : un nom, une date, un
emplacement, un propri´etaire, des attributs de lecture etc.
Le contenu d’un fichier est un ensemble structur´e enregistrements (appel´es aussi articles ourecords) Chaque article repr´esente une information unitaire (unit´e d’information)
Exemple :
le fichier du personnel d’une entreprise
Enregistrements et champs
Les articles se d´ecomposent en champs
Chaque champ repr´esente une propri´et´e de l’article
Les champs sont l’association entre un attribut et une valeur d’un type donn´e.
Exemple :
Dans le fichier du personnel le champ nom repr´esente le nom d’une personne (Nom, Adresse, etc.) et une valeur (’toto’, ’rue
Quimonte’, etc.)
Enregistrements et champs
Le plus souvent la structure des articles est identique dans un mˆeme fichier :
nombre d’attributs fixe et champs de taille fixe
Ainsi, tous les articles ont la mˆeme taille et on peut calculer la position d’un ´el´ement en fonction de son num´ero d’ordre On parle alors d’article de longueur fixe par opposition aux fichiers comportant des articles de longueur variable Quand peut-on rencontrer des articles de taille variable ? Avantages/Inconv´enients de ces deux formats
Organisation des fichiers en enregistrements
G´en´eralement l’organisation doit optimiser : la restitution du contenu des fichiers
mˆeme lorsque les donn´ees sont complexes (beaucoup de champs, reli´ees) il est n´ecessaire 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 ins´erer 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)
Organisation en fonction d’un acc` es par adresse
Tout acc`es r´eel `a un enregistrement se fait en sp´ecifiant son adresse avec les hypoth`eses suivantes :
implantation contigu¨e des enregistrements
utilisation d’une table d’allocation associ´ee `a un fichier si les enregistrements sont de taille variable
utilisation d’une table des zones libres pour g´erer la fragmentation
On peut souhaiter demander au syst`eme l’acc`es `a un
enregistrement qui a certaines propri´et´es mais dont on ne connaˆıt pas l’adresse (fichier tr`es grand)
Exemple :
recherche du num´ero de t´el´ephone d’une personne en fonction de son nom, ou de sa ville, ou de plusieurs crit`eres
Notion de cl´ e ou d’identifiant
Certains champs (attributs) permettent de discriminer totalement une information :
ces attributs sont appel´es des cl´es
deux valeurs diff´erentes de la cl´e font r´ef´erence `a des
enregistrements diff´erents, ainsi, dans un fichier il ne peut pas y avoir deux enregistrements diff´erents ayant la mˆeme valeur de cl´e
Conclusion : chaque valeur de cl´e correspond `a une seul adresse d’enregistrement dans le fichier
Comment utiliser cette propri´et´e pour acc´eder au contenu d’un article en se basant sur la valeur de la cl´e ?
Acc` es au contenu via une cl´ e
Diff´erents types d’organisations ont ´et´e ´etudi´es depuis plus de 40 ans :
S´equentielle (fichiers tri´es selon la cl´e) S´equentielle index´ee
B-Arbre Al´eatoire
Principe de l’index
Le principe de l’indexation consiste `a bˆatir une table de correspondances (table d’index) entre :
les valeurs de la cl´e
es adresses des enregistrements sur le disque Pour faciliter les acc`es (rapidit´e) cette table doit ˆetre :
tri´ee
stock´ee dans un fichier (pas reconstruite `a chaque op´eration) charg´ee ou chargeable en m´emoire centrale
On parle alors de fichiers´equentiel index´eet plusieurs index peuvent ˆetre associ´e `a un mˆeme fichier et stock´es eux mˆeme dans des fichiers tri´ees.
Exemple d’index
Am´ elioration de l’index
Le principe de l’indexation peut ˆetre compl´et´e de plusieurs mani`eres :
Au lieu de la cl´e on peut utiliser un attribut discriminent (qui n’est pas une cl´e stricte), il y aura des doublons dans l’index On peut constituer une cl´e de l’index `a partir de plusieurs attributs (par exemple nom + pr´enom s’il y a des
homonymes) Exemple : mots d’un dictionnaire (1 mot = plusieurs sens donc plusieurs d´efinitions)
On peut cr´eer et combiner plusieurs index suivant les recherches effectu´ees (par nom, par adresse etc.)
On peut fragmenter l’index lorsque la la table est trop grande pour tenir en m´emoire principale
Exemple d’index
Organisation en arbre : B-arbre
Invent´e chez Boeing : B pour Boeing ou Balanced (´equilibr´e) L’id´ee principale est d’utiliser une cl´e pour naviguer
rapidement un article
Au lieu d’une table d’index, on utilise une structure plus adapt´ee aux recherches : un arbre donc chaque nœud a au plus n fils
Principe du B-Arbre :
Les articles dont la valeur de la cl´e est inf´erieure
(respectivement sup´erieure) `a l’enregistrement du nœud courant sont plac´es `a sa gauche (respct. `a sa droite)
cette structure comme l’index ne contient pas les articles mais seulement la valeur de la cl´e et la position (adresse) de l’enregistrement dans le fichier
Cette strat´egie est efficace si l’arbre est bien organis´e : ’il a autant de fils gauche que droits
Exemple d’index B-arbre
Organisation en arbre : B-arbre
Cette technique est int´eressante car la parcours de l’arbre revient `a une recherche dichotomique dont le nombre de comparaison est fix´e par la profondeur maximum de l’arbre Ce n’est v´erifi´e que si l’arbre est ´equilibr´e (balanced)
Chaque nœud doit avoir autant de descendants gauches que droit
Le principe est de construire d`es le d´epart un arbre ´equilibr´e puis de maintenir l’´equilibre au fur et `a mesure de sa croissance
On doit donc couper des branches et les regreffer ailleurs ? Que faire des suppressions dans l’arbre ?
B-arbre stock´ e comme un tableau
Organisation al´ eatoire : hash-coding
Les techniques pr´ec´edentes consistaient `a voir diff´eremment le fichier sans le modifier :
en lui associant une structure compl´ementaire l’index La technique de hash-coding consiste `a r´eorganiser le fichier :
on r´eserve une zone contigu¨e pour ranger des enregistrements cette zone est divis´ee enp paquets num´erot´es de 0 `ap−1 de taille fixe t
on utilise une fonction dite de hachage qui fait correspondre `a chaque valeur de cl´e un num´ero de paquet entre 0 et p−1 l’adresse r´eelle d’un enregistrement est l’adresse du paquet et un d´eplacement relatif au d´ebut du paquet
les cl´es peuvent ˆetre de type vari´es et le r´esultat est imp´erativement un nombre entier
Organisation al´ eatoire : hash-coding
L’acc`es `a un enregistrement s’effectue en appliquant la fonction de hachage `a la valeur de la cl´e pr´esent´ee pour obtenir un num´ero de paquet candidat :
Au sein d’un paquet, la recherche est s´equentielle Les articles dont rang´es par ordre d’arriv´ee
Pour d´efinir une fonction de hachage, il faut d’abord transformer les valeurs de la cl´e, souvent une chaˆıne en une valeur num´erique (un nombre entier) :
on se sert t du codage interne de la valeur des caract`eres qui est num´erique 8 bits ASCII 16 bits Unicode
on utilise abondamment la fonction modulo D. Knuth, Volume 3, Sorting and Searching (1973).
Organisation al´ eatoire : exemple
Organisation al´ eatoire : les limites
Lorsque le syst`eme fonctionne bien, pour une recherche : il y a seulement un acc`es direct
ensuite un petit d´eplacement (s´equentiel) Le probl`eme du hash-coding provient de ce que :
en fonction des donn´ees pr´esentes, certains paquets peuvent rester vides (m´emoire sous utilis´ee)
des paquets peuvent ˆetre en ´etat de d´ebordement (paquet satur´e)
il n’est pas possible de garantir `a l’avance ce qui se produira Pour pallier ces difficult´es en amont on doit faire en sorte que la fonction de hachage :
reste le plus possible repr´esentative de la valeur de la cl´e. Il y a alors peu de valeurs de cl´e diff´erentes pour un mˆeme num´ero de paquet
donne une r´epartition statistique uniforme des valeurs de cl´es sur les num´eros de paquets (?)
Organisation al´ eatoire : les limites
En aval en essaie de g´erer la saturation des paquets en utilisant des techniques de redirection des articles surnum´eraires :
Adressage ouvert
http://fr.wikipedia.org/wiki/Table_de_hachage Chaˆınage
Rehachage
Dans tous les cas le d´ebordement d´et´eriore les performances du syst`eme
Lecture 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