Académique Documents
Professionnel Documents
Culture Documents
1.1 DÉFINITION
Le système de gestion de fichiers SGF est la partie la plus visible d’un système d’exploitation.
Le SGF est un composant du noyau du système d’exploitation (SE).
D’une part, le SGF offre une interface simple à l’utilisateur pour lui permettre de
gérer tout type de fichiers (.doc, .psd, .fla …). Il s’agit d’un ensemble de fonctions
agissant au niveau logique (de point de vue utilisateur) et assurant toute les
manipulations faites par l’utilisateur telles que : création, déplacement, suppression..
(Point de vue logique)
D’autre part, le SGF assure l’implantation physique des fichiers sur les supports
1
de mémoire secondaires (ou auxiliaires). Ceci consiste à assurer les fonctions
logiques de point de vue physique c'est-à-dire assurer l’organisation, l’administration
et l’accès aux fichiers sur les mémoires secondaires (disque, disquette, CD…). (Point
de vue physique)
La sécurité des fichiers en respectant les règles d’utilisation : les droits d’accès, les
conditions de partage ;
2. CONCEPT DE FICHIER
2.1 D ÉFINITIONS
a. Définition généraliste
Un fichier est une unité informationnelle physiquement stockée sur un support de mémoire de
masse pour les besoins de l’utilisateur.
Le fichier constitue le seul et unique moyen pour sauvegarder des informations contenues
dans la mémoire centrale de l’ordinateur et qui, autrement, seraient perdues lors de l’arrêt de
cet ordinateur. Les informations conservées, pour des besoins ultérieurs, peuvent être des
programmes et/ou des données.
b. Vision logique
Un fichier est un ensemble de données de même nature, enregistré sur le disque dur sous la
forme "nom_du_fichier.ext". "ext" représente l'extension. Il s'agit d’un moyen pour
reconnaître le type de programme avec lequel ce fichier peut être ouvert (mais cela ne garantit
pas le type de fichier, car lorsque on change l'extension on ne change pas le type de fichier!).
Exemple : on peut modifier l’extension d’un fichier de « .exe » vers « .txt » sans modifier en
réalité le type du fichier : c’est un moyen de déroutement utilisé dans l’envoi des fichiers
exécutables par mail.
2
c. Vision physique
Un fichier est un ensemble d’unités d’allocation occupées sur une mémoire secondaire. Une
unité d’allocation est le plus petit espace de la mémoire secondaire adressable par le SE.
Afin de différencier les fichiers entre eux, chaque fichier est caractérisé par un ensemble
d’attributs qui le décrivent. Certains attributs sont fournis par l’utilisateur, d’autres sont
complétés par le SE.
Le Nom c’est une suite de lettres de l’alphabet, chiffre ou/et caractères spéciaux. Certains
systèmes d’exploitation font la distinction entre caractère majuscule et minuscule d’autres
ne le font pas. (Linux fait la distinction, Windows ne le fait pas)
Les fichiers ordinaires contiennent les données des utilisateurs. Ils peuvent être de
différents types (doc, html, exe, …) ;
Les fichiers tubes (pipe) sont utilisés généralement pour la communication entre
processus ;
Les fichiers systèmes : constituent le noyau du système. Ces fichiers sont placés dans
le « répertoire système » ;
Remarque : Un fichier et aussi caractérisé par le type d’accès qu’il autorise (accès séquentiel,
directe, ou indexé).
3
2.3. STRUCTURATION DES FICHIERS
Un Système de gestion fichiers gère des centaines de fichiers. C’est pourquoi il faut les
organiser selon une certaine structuration facilitant leur gestion.
Les systèmes d’exploitation modernes adoptent une structure hiérarchique. Ainsi, chaque
fichier appartient à un groupe et chaque groupe appartient lui-même à un groupe d’ordre
supérieur. Ces groupes sont appelés « répertoire » ou « dossier » ou « catalogue ». Grâce à
cette description un système de fichier peut être assimilé à un arbre dont le point de départ est
un répertoire spécifique appelé « racine » qui représente l’unité de stockage (physique ou
logique : partitionnement, une racine par partition). Figure 1.
L’arborescence ainsi défini commence à partir du répertoire racine qui contient plusieurs
répertoires et fichiers. Dans chaque répertoire, on pourrait trouver d’autres répertoires ainsi
que des fichiers de donnés ordinaires.
Une deuxième méthode d’accès à un fichier est celle décrivant un fichier par un chemin
d’accès relatif par rapport à un répertoire courant (le répertoire de travail) : c’est le chemin
relatif.
Exemple
4
3. ORGANISATION PHYSIQUE D’UN FICHIER
Les mémoires secondaires sont les supports de stockage servant à conserver les données de
manière permanente, contrairement à la mémoire vive, qui perd son contenu lors de
l’extinction de l’alimentation électrique. Les mémoires secondaires sont des mémoires non
volatiles. Exemples : disque dur (Figure 2), CD, DVD, disquette, bande magnétique …
Le disque dur est constitué de plusieurs plateaux. Chaque plateau contient 2 faces. Chaque
face est composée de plusieurs pistes concentriques. Chaque piste est divisée en un ensemble
de secteurs. Un secteur est généralement de taille 512 octets et représente la plus petite unité
adressable. Figure 3.
Plateaux
Lecteurs
Les pistes situées à un même rayon forment un cylindre (=ensemble de pistes superposées).
5
Figure 4 Plateaux et pistes d’un disque dur Figure 5. Secteurs d’un disque dur
Pour enregistrer un fichier sur une mémoire secondaire, il faut lui allouer (réserver) l’espace
nécessaire pour son implantation. Il existe différentes manières avec lesquelles le système
6
d’exploitation peut allouer l’espace mémoire nécessaire parmi l’espace libre pour implanter
physiquement un fichier sur le support physique.
L’allocation d’espace sur un support physique se fait par unité de données appelée bloc. Ainsi
un fichier va occuper un certain nombre de blocs. L’algorithme d’allocation consiste à définir
la manière avec laquelle les blocs seront alloués.
Exemple
Supposons qu’une unité de sauvegarde est divisée en blocs de taille 512 ø et on veut
sauvegarder un fichier de taille 1 kø = 1024 ø
Il s’agit d’allouer (réserver) une suite consécutive de blocs pour stocker un fichier. Ainsi,
chaque fichier occupe un nombre de blocs contigus sur le disque. Figure 6.
Espace mémoire
A A A A B B B B B
Fichier A Fichier B
Dernier Bloc contient la marque EOF Dernier Bloc contient la marque EOF
Pour localiser un fichier, il suffit de connaître l’adresse du 1er bloc du fichier et le nombre de
blocs occupés par le fichier. Cette information est stockée au niveau du descripteur de
fichiers. À la fin du dernier bloc une marque spéciale EOF (end of file) indique la fin du
fichier.
7
l’unité (exemple : unité à 100 blocs table à 100 entrées). Chaque entrée contiendra un 0 ou
1 selon que le bloc est libre ou occupé.
0
0 : bloc libre
1 1 : bloc occupé
2 1
3 1
Nb entrées = Nb blocs
4 1
5 1
6 0
7 1
8 1
9 1
10 1
11 1
12 0
Remarque : Chaque fichier commence au début d’un nouveau bloc même si le bloc qui le
précède est partiellement occupé.
Exemple
Taille (fichier_A) = 1280 ø 2,5 blocs Le fichier A va occuper 3 blocs sur l’unité.
A A A
A A A B B C C C C
8
Lecture rapide du fichier : Accès direct au bloc en un temps déterministe (bonne
vitesse de lecture).
A A A C C C C
Pour éviter la fragmentation, les algorithmes utilisés sont complexes et coûteux en
temps : il reste toujours de la fragmentation.
Compacter le disque en regroupant les espaces libres
mais ceci nécessite le déplacement de tous les blocs des fichiers !!!
Méthode impraticable si les fichiers sont appelés à croître en taille. (imaginez si le
fichier A augmente de volume et nécessite plus que 2 blocs). Il est difficile de
connaître à l’avance la taille d’un fichier. Ainsi, si la taille du fichier augmente, il faut
le déplacer dans un autre emplacement capable d’acquérir tous les blocs du fichier. Il
se peut qu’il n’y ait pas assez de blocs contigus pour acquérir tous les fichiers.
Ainsi cette méthode est Adaptée aux périphériques en lecture seule, ou non appelé à évoluer
(CD-ROM, DVD-ROM, bande magnétique).
Supposons qu’on veut sauvegarder le fichier E qui nécessite 3 blocs. En utilisant la méthode
d’allocation contigüe, il est impossible de le sauvegarder. Il n’y a pas assez de blocs libres
contigus pour que le fichier E puisse les occuper. Pourtant, il y a 4 blocs libres (mais non
consécutifs) dans l’unité
L’idée est de pouvoir utiliser cet espace libre qui est éparpillé
solution : utiliser les listes chaînées.
A A A E E C C C C E
De cette façon, chaque bloc de l’unité peut être utilisé aucun espace n’est perdu. Pour
implémenter le chaînage, on réserve quelques octets dans chaque bloc pour écrire l’@ du
9
bloc suivant
Pour cette méthode d’allocation, un fichier est constitué d’une liste chaînée de blocs du
disque. Chaque bloc contient une partie de données et un pointeur (adresse) sur le bloc
suivant. Le dernier bloc contient un pointeur NULL. Figure 7.
Chaque bloc permet de retrouver le bloc suivant. Ainsi, il suffit d’enregistrer l’@ du 1er bloc
d’un fichier (informations du descripteur) et le fichier pourra être lu en totalité
L’allocation chaînée résout les problèmes de l’allocation contigüe. Ainsi, les avantages de
cette méthode sont :
Il n’y a plus de fragmentation du disque puisque tout bloc libre peut être utilisé pour
satisfaire une autre requête d’allocation ;
Augmentation ou diminution de la taille du fichier plus adéquate puisque l’allocation
ou la libération de blocs se fait au fur et à mesure des demandes d’ajout ou de
suppression. En effet, par exemple, lors de l’extension d’un fichier, il suffit de mettre à
jour le dernier pointeur et l’adresse du dernier bloc au niveau du descripteur du ficher.
10
nécessairement sur la même piste ou le même plateau, (ils sont éparpillés)
Pour aller au nième bloc du fichier directement, il faut parcourir les (n-1) blocs pour s’y
rendre Accès séquentiel
Gaspillage d’espace : partie réservée dans chaque bloc du disque pour la conservation
des pointeurs ;
De plus, si un pointeur est endommagé, toutes les données des blocs suivants sont
perdues.
Perte de chaînage entraine la perte de tout le reste du fichier
Tous les inconvénients de l’allocation chaînée peuvent être résolus d’une manière simple : il
suffit de retirer les pointeurs des blocs et de les stocker dans une structure de données
gardées en MC.
Le principe est de séparer les pointeurs et les données. Il s’agit donc d’utiliser une table
d’allocation de fichier FAT (File Allocation Table).
0
Fichier Adresse du 1er bloc
1
2 4 A 2
3
4 9
5
6
7 EOF
8
9 7
10
11
.
….
@ du 1er bloc de A est 2. Ensuite, depuis la Fat, les blocs de A sont : 2, 4, 9,7
11
La FAT est constituée de n entrées. Chaque entrée i correspond au bloc i de l’unité de
stockage et contient l’adresse du bloc qui suit le bloc i. Ainsi, pour chaque fichier, on aura à
mémoriser l’adresse du 1er bloc (au niveau du descripteur des fichiers) et en accédant à
l’entrée correspondante dans la FAT, on retrouvera au fur et à mesure la trace de tous les
blocs constituant le fichier.
Dans la table FAT, chaque entrée est codée sur 12, 16 ou 32 bits. Ainsi, on parle du FAT12,
FAT16 ou FAT32. Par exemple : avec 16 bits, on peut représenter 2 16 entrées ou 65536 blocs.
La taille d’un bloc (cluster) dépend de la taille de la partition à créer au moment du formatage.
FAT 16
128 Mo 2 Ko
256 Mo 4 Ko
512 Mo 8 Ko
1 Go 16 Ko
2 Go 32 Ko
FAT 32
256 Mo 2 Ko
1 To 4 Ko
2 To 8 Ko
4 To 16 Ko
8 To 32 Ko
Tableau 1
Le bloc est disponible dans sa totalité pour les données. Les blocs de données ne
12
contiennent pas les pointeurs.
L’accès aux différents blocs est direct (aléatoire). En effet, dans les méthodes avec
chaînage, il fallait parcourir (passer par) tous les blocs avant de lire le bloc qui
contient les données voulues.
Remarque : C’est vrai qu’il faut parcourir la table FAT pour trouver l’adresse d’un
bloc donné, mais cela peut être réalisé sans faire de nouveaux accès disque
Taille (bloc) = 1 k ø nb blocs = 20. 2^30 ø /2^10 = 20. 2^20 = 20 971 520 = 20 millions
20 millions entrées (une pour chaque bloc) Si chaque entrée occupe 4 ø (le cas de FAT32)
Taille (FAT) = 4 * 20 . 220 = 80 Mø
80 M ø qui doit être placée tout le temps en MC. En plus la FAT est dupliquée ! Donc, les
inconvénients de cette méthode sont :
La FAT est une ressource critique, elle est donc, généralement, dupliquée par sécurité,
Chaque fichier est associé à une table qu’on appelle nœud d’information (i-node). C’est
comme si on a éclaté la FAT en plusieurs petites tables. Chaque table contient les adresses sur
disque des blocs du fichier. Cette méthode est utilisée dans UNIX.
Chaque nœud contient 13 champs fixes. Les 10 premiers champs contiennent les adresses des
10 premiers blocs composant le fichier. Si le fichier dépasse les 10 blocs, on a recours à une
simple indirection. En effet, le 11ème champ contient l’adresse d’un bloc qui contiendra une
table de 256 entrées (cas d’un bloc de 1024 octets et une adresse de bloc de 4 octets ;
1024/4=256). Ainsi, la taille maximale du fichier est 10 + 256 = 266 blocs.
Si le fichier dépasse 266 blocs, on utilise une double indirection. Dans ce cas, le 12ème champ
13
de l’i-node contiendra l’adresse d’un bloc qui contiendra une table de 256 entrées. Chaque
entrée contiendra l’adresse d’un bloc qui lui-même contiendra une table de 256 entrées où
chacune contiendra l’adresse d’un bloc du fichier. Ainsi, la taille maximale du fichier est
10+256 + 256² = 65802 blocs.
Si le fichier dépasse 65802 blocs, on utilise une triple indirection, le 13 ème champ de l’i-node
contiendra l’adresse d’un bloc qui contiendra une table de 256 entrées. Chaque entrée
contiendra l’adresse d’un bloc qui contiendra une table de 256 entrée chacune contenant
l’adresse d’un bloc lui-même contenant une table de 256 entrées où chacune contiendra
l’adresse d’un bloc du fichier. Ainsi, la taille totale et maximale du fichier est 10+256 + 256²
+ 2563 = 16843018 blocs.
Indirection simple correspond à une taille maximale de fichier de 266 blocs (chemin 1,
figure 9) ;
14
Figure 9. Allocation par nœud d’information
15