Vous êtes sur la page 1sur 5

I- Introduction aux structures de fichiers

1) Entres/Sorties (E/S) sur disque La mmoire secondaire (MS) est gnralement de grande taille mais le temps d'accs est trs grand relativement la mmoire centrale (MC). De plus, la MS est gnralement non volatile et le cot l'unit de stockage est moindre que celui de la MC. Le type de MS le plus utilis de nos jours reste le disque dur (DD). Un DD est un ensemble de plateaux superposs, chacun form de deux faces magntiques (surfaces) et tournant avec une vitesse de rotation constante (R). Bras surface piste

plateaux
Vitesse de rotation R

Tte de lect/cr
Vitesse de translation T

Chaque surface est compose d'un nombre fixe de pistes concentriques, pouvant stocker la mme capacit en octets. Chaque piste est dcoupe en un nombre (gnralement fixe) de secteurs, constituant l'unit de transfert entre la MS et la MC (le secteur est donc la plus petite quantit de donnes pouvant tre lue ou crite sur le disque l'aide d'une opration E/S).

secteurs

Notes de cours : Intro. Structures de Fichiers Structures de donnes (Algo2) ESI 2009

Le DD dispose d'une tte de lecture/criture par piste. Toutes les ttes de lecture/criture sont attaches un mme bras qui se dplace latralement pour se positionner sur une piste donne au niveau de chaque surface. L'ensemble des pistes sur lesquels les ttes de lecture/criture sont positionns un moment donn, reprsentent un cylindre. Temps d'accs Pour transfrer le contenu d'un secteur donn, le contrleur du disque dplace le bras pour le positionner sur le bon cylindre, attend que le secteur passe sous la tte de lecture/criture puis active la tte associe la surface sur laquelle le secteur se trouve pour rcuprer l'information stocke. Le temps ncessaire cette opration (avec la technologie actuelle) est au voisinage de quelques ms en moyenne. Si on le compare au temps d'accs la mmoire centrale (quelques ns), la diffrence est norme (le temps d'accs au disque est un million de fois plus lent que celui de la MC). Parmi les mthodes utilises pour diminuer l'effet de cette grande diffrence dans le temps d'accs, on retrouve le buffering . Il s'agit de rserver une zone en mmoire centrale pouvant contenir plusieurs blocs en mme temps et utiliser des stratgies de remplacement (comme LRU, FIFO, ...) afin de minimiser le nombre d'accs disque. D'autres techniques, comme la multi-programmation (durant l'opration d'E/S d'un programme, le processeur est allou un autre programme) ou la paralllisation des E/S (les donnes sont rparties sur plusieurs disques RAID) sont aussi utilises pour diminuer le goulot d'tranglement sur les E/S. De plus, comme le temps de dplacement du bras est plus grand que celui ncessaire pour une rotation du disque, l'accs des secteurs physiquement proches (situs sur la mme piste ou le mme cylindre) est beaucoup plus rapide que l'accs des secteurs ncessitant un dplacement du bras. Le clustering est une technique de stockage rassemblant les donnes susceptibles d'tre traites ensemble dans des secteurs physiquement proches. 2) Notion de fichier Au niveau applicatif (logique), un fichier est un ensemble de donnes (enregistrements) stockes en mmoire secondaire (ex en Pascal : File of Tenreg ). On peut aussi dfinir un fichier comme tant une suite d'octets, on parle alors de flux (ex en C : FILE * ). C'est des fichiers non typs . Au niveau physique, un fichier est un ensemble de blocs, organiss d'une certaine manire en MS. Les donnes (enregistrements) du fichier sont stocks l'intrieur des blocs.

Prog1 manip. E

E
E/S Physiques

E E

E F

E F

E F

MC

Prog2 manip. F Prog3 manip. F

F E
Buffer cache

F MS F F

Notes de cours : Intro. Structures de Fichiers Structures de donnes (Algo2) ESI 2009

Les programmes d'applications manipulent les fichiers travers des appels systmes (read, write, ...) pour accder aux donnes en mmoire cache. Le systme synchronise priodiquement (et quand c'est ncessaire) les buffers en cache avec le disque l'aide d'E/S physiques (lireBloc/crireBloc) Caractristiques Pour pouvoir manipuler correctement un fichier, on doit donc connatre sa structure et son organisation. Certaines des ces informations (caractristiques) sont sauvegardes en MS et charges en MC lors de la manipulation du fichier. Parmi les caractristiques courantes, on retrouve : - le nombre de blocs utiliss - le nombre d'enregistrements - la date de cration du fichier - la date du dernier accs au ficher - l'identit du propritaire du fichier (cas des systmes multi-utilisateurs) - les droits d'accs au fichier (cas des systmes multi-utilisateurs) - ... etc Mthode d'accs Une structure de fichier (mthode d'accs) consiste dfinir : - une manire d'organiser les blocs d'un fichier sur MS - le placement des enregistrements l'intrieur des blocs - l'implmentation des oprations d'accs (recherche, insertion, suppression, ...). 3) Modle de fichiers Afin d'tudier les mthodes d'accs aux fichiers dans un cadre gnral, on modlise la MS par une zone contige de blocs numrots squentiellement (adresses de blocs). Les blocs sont des zones contiges d'octets de mme taille, renfermant les donnes (enregistrements) des fichiers. Dans le schma suivant, la MS contient 3 fichiers E, F et G G1 E1 E2 E3 E4 G4 G5 G2 G3 Le fichier E est form de 4 blocs contigus, le fichier F est form de 7 blocs contigus et le fichier G est une liste de blocs. Pour crire des algorithmes sur les structures de fichiers on utilisera la machine abstraite dfinie par le modle suivant:
Notes de cours : Intro. Structures de Fichiers Structures de donnes (Algo2) ESI 2009

G6 F1 F2 F3 F4 F5 F6 F7

{ouvrir, fermer, lireDir, crireDir, lireSeq, crireSeq, aff_entete, entete, allocbloc } Dans ce modle, on manipule des numros de blocs relatifs au dbut de chaque ficher (adresses logiques). L'utilisation des adresses physiques n'est pas d'une utilit particulire ce niveau. un fichier est donc un ensemble de blocs numrots logiquement (1, 2, 3, ... n) Dclaration d'un fichier 'f' et de ses zones tampons 'buf1', 'buf2', ... : var f : FICHIER de TypeBloc BUFFER buf1, buf2, ... ENTETE (type1, type2, ...typem); dans cette ligne de dclaration, il y a la dfinition de : la variable f de type FICHIER les variables buf1, buf2, ...de type 'TypeBloc' qui servent comme zones tampons pour lire et crire les donnes du fichier. la structure de l'entte du fichier, forme par m caractristiques dont les types sont spcifis Ouvrir( f, nomfichier, mode ) pour ouvrir ou crer un fichier de nom 'nomfichier' selon la valeur de 'mode' a : ouvrir un ancien fichier en lecture/criture et charge ses caractristiques en MC n : crer un nouveau fichier en lecture/criture et alloue une zone en MC pour ses caractristiques Fermer( f ) ferme le fichier f, en sauvegardant ses caractristiques sur disque LireDir(F, i, buf ) lire dans 'buf' le contenu du bloc numro 'i' du fichier 'f' (num logique de blocs) EcrireDir( F, i, buf ) crit le contenu de la variable 'buf' dans le bloc numro 'i' du fichier (num logique) LireSeq(F, buf ) lire dans 'buf' le contenu du bloc courant du fichier 'f'. (lecture squentielle) EcrireSeq( F, buf ) crit le contenu de la variable 'buf' dans le bloc courant du fichier (criture squentielle) Entete( f, i ) retourne la valeur de la 'i'me caractristique du fichier 'f' (en MC) Aff_entete( f, i, val ) affecte 'val' dans la 'i'me caractristique du fichier 'f' (en MC) AllocBloc( f ) alloue un nouveau bloc au fichier et retourne son numro

Notes de cours : Intro. Structures de Fichiers Structures de donnes (Algo2) ESI 2009

4) Objectifs du cours Etudier les mthodes d'accs aux fichiers (structures et algorithmes) ainsi que leurs performances (temps d'excution et occupation mmoire) Pour la manipulation d'un fichier d'enregistrements donn, on tudie les diffrentes possibilits de stockage sur MS. Un enregistrement est un ensemble de champs dont un ou plus jouant le rle de cls de recherche (champs utiliss dans la recherche et l'identification des enregistrements). Ex: Tenreg = structure { matricule : entier, nom : chaine[20], adr : chaine[80] }; // matricule est (par exemple) la cl de l'enregistrement Les principaux paramtres prendre en considration, lors de l'laboration d'une mthode d'accs sont: Le temps d'accs des oprations de base (recherche, insertion, ...) Le facteur de chargement (pourcentage de remplissage de l'espace allou au fichier) La taille du fichier en MS La taille des structures auxiliaires de la mthode en MC et en MS Le type d'accs: fichier statique peu ou pas d'insertions/suppressions fichier dynamique en constante volution

Notes de cours : Intro. Structures de Fichiers Structures de donnes (Algo2) ESI 2009

Vous aimerez peut-être aussi