Système de gestion de fichiers
Génie Informatique, ENSAH
Y. EL MORABIT
Plan
Introduction
Organisation logique du SGF
Organisation physique du SGF
Système de gestion de fichier sous Unix
2
Introduction
Le volume des données traitées par les applications
informatiques atteignant plusieurs Giga octets, ces données ne
peuvent pas être stockées dans la mémoire centrale.
Stockage à long terme qui ne disparaisse pas lorsqu'on éteint la machine.
Trois point essentiels pour le stockage des données à long
terme:
Les informations doivent être conservées après la fin du programme qui
les utilise
Il faut pouvoir stocker une grande quantité d’informations
Plusieurs programmes doivent pouvoir accéder simultanément à une
information
Le principe : stocker et conserver ces données sur des
supports de stockage persistant
3
Introduction
L'unité de conservation des données sur le support de
stockage est le fichier.
Le fichier représente une unité de stockage logique
Le fichier est un collection de données, d’informations
enregistrées de façon à être lues et traitées par
ordinateur, et qui représente une entité pour l’utilisateur
(ex : programme, des données, des images, …)
4
Introduction
L'objectif du système de fichier est de permettre l'accès
au contenu du fichier (l'ouverture, la modification, la
suppression, la recopie, …)
Le système de fichiers constitue la partie la plus visible du
système d’exploitation pour l’utilisateur :
On exige d’un bon système de fichiers qu’il soit aussi simple,
sûr et fiable que possible
5
Introduction
Le système d’exploitation gère les fichiers via le système
de gestion de fichiers (SGF)
Deux vues :
Une vue logique (utilisateur)
Organisation logique du SGF: nommage des fichiers, protection et
droit d’accès, opérations autorisées, etc.
Une vue physique (système)
Organisation physique du SGF: organisation physique d’un fichier sur
un disque, gestion des blocs et manipulation des blocs physiques
attribués à un fichier, gestion de l’espace libre du disque.
6
Coté utilisateur
Ce que l’utilisateur attend du système de fichiers peut se
résumer à :
Permettre la création et la destruction d’un fichier
Permettre de donner un nom symbolique à un fichier et de l’appeler
ensuite par ce nom
Assurer ou empêcher l’accès au fichier selon les directives de ceux qui
les ont créés
Permettre le partage des fichiers
Distinguer entre protection en lecture, écriture, …
Protéger les fichiers contre toute défaillance du matériel ou du logiciel
Faciliter la manipulation d’un fichier en supportant une variété
d’opérations telles que la fusion, la concaténation, …
Offrir des méthodes d’accès efficaces et adaptées aux différentes
applications (accès séquentiel, direct, …)
7
Organisation logique du SGF
Noms des fichiers
Le nommage des fichiers est le moyen d’identification des infos
organisées sous forme d’unités (fichiers)
Possibilité de lire et d’écrire les informations sur un disque
sans se soucier du stockage physique et du fonctionnement des
disques
8
Organisation logique du SGF
Les règles de nommage dépendent du système
d’exploitation
Nombre maximum de caractères autorisés varie de 8 à 255
Tous les caractères alphanumériques sont autorisés
Certains systèmes acceptent les caractères spéciaux
Certains systèmes font la différence entre minuscule et
majuscule (UNIX)
9
Organisation logique du SGF
Nom et extension
L’extension (partie du nom après le point) définit le type de fichier
Sous UNIX
Aucune limitation de la taille d’extension
Possibilité d’avoir plusieurs extensions
[Link]
Sous Windows
L’extension des fichiers est reconnue et implique une action particulière
Possibilité de choisir le programme associé à une extension donnée
Les fichiers d’extension « .mp3 » sont associés au lecteur Media Player
L’extension peut être
Facultative:
L’extension d’un fichier texte qui ne sera pas exploitée par un logiciel approprié
Aide le propriétaire
Obligatoire
Exigée par un logiciel
Le compilateur C exige qu’au moins l’extension d’un fichier source soit « . c»
10
Organisation logique du SGF
Structures des fichiers
3 types:
Blocs d’enregistrements
Arbre d’enregistrements
Suite d’octets
11
Organisation logique du SGF
Blocs d’enregistrements
Enregistrement
Le fichier est une séquence
d’enregistrements de longueur fixe
La lecture et l’écriture dans le fichier se
fait par bloc (taille des enregistrements)
Existence liée à l’ancienne technologie d’E/S
Imprimantes (132 caractères)
Mode abandonné par les systèmes actuels
Fichier de 4 enregistrements
12
Organisation logique du SGF
Arbre d’enregistrements
Un fichier est un arbre d’enregistrements qui ne sont pas
nécessairement de même longueur
Chaque enregistrement contient une clé
L’arbre est trié suivant les clés, ce qui permet une recherche
rapide
Encore utilisé dans les gros systèmes
Applications de traitement de données commerciales
(banques)
13
Organisation logique du SGF
Suite d’octets
Un fichier est vu comme une séquence d’octets non
octet
structurés
Fichier vu comme une suite d’octet
Ce mode donne une flexibilité maximale à l’utilisateur
Le système ne se préoccupe pas du contenu et de son
organisation
Le mode le plus utilisé actuellement
Unix, Linux, Windows, …
14
Organisation logique du SGF
Types de fichiers
Fichiers ordinaires
Contiennent les données
Répertoires
Fichiers systèmes qui conservent la structure du système de fichier
Fichiers spéciaux caractères
Représentent les périphériques d’E/S en mode caractère
Carte réseau, écran, clavier, imprimante …
Fichiers spéciaux bloc
Représentent les périphériques d’E/S en mode bloc
Disque dur, CD-ROM …
15
Organisation logique du SGF
Fichiers ordinaires
Fichiers texte
Fichiers binaires
Fichiers binaires exécutables
16
Organisation logique du SGF
Fichiers ordinaires
Fichiers texte (ASCII)
Peuvent être affichés par n’importe quel éditeur de texte (bloc note,
Notepad++, … )
Les lignes ne sont pas toutes de même taille
Rajouter explicitement un marqueur de fin ligne
CR (carriage return/retour du chariot)
Caractère dédié (\n sous Unix)
17
Organisation logique du SGF
Fichiers ordinaires
Fichiers binaires
Le contenu de ces fichiers ne peut pas être édité ou affiché par un
simple éditeur de texte
Une tentative donnera en général des symboles illisibles
La structure interne d’un fichier binaire est connu par le programme
qui l’exploite
Fichier multimédia (image, son, vidéo)
Fichier de données créé par un programme C
Fichier exécutable
…
18
Organisation logique du SGF
Fichiers binaires exécutables
Un fichier binaire est reconnu comme
exécutable s’il est conforme à un format
particulier composé de cinq éléments :
En-tête
Nombre magique
valeur particulière qui indique que le fichier est exécutable
BSS : segment des variables globales et statiques
Code
Données
Bits de translation
Table de symboles
Facilite l’accès aux identificateurs d’un programme Format d’un fichier
exécutable
19
Organisation logique du SGF
Accès aux fichiers
Accès séquentiel
Le fichier est lu dans l’ordre à partir du début
Mode d’accès des premiers systèmes d’exploitations
Pratique pour certains supports de stockage (bande magnétique)
Accès aléatoire
Possibilité d’accès direct à n’importe quel octet ou enregistrement
Les disques sont appropriés à ce mode d’accès
Mode d’accès rapide et efficace
Mode d’accès de tous les systèmes d’exploitation modernes
20
Organisation logique du SGF
Attributs des fichiers
En plus du nom et du contenu, le système associe aux fichiers
un certain nombre d’informations appelées attributs :
Taille, date création, dernière date de modification, …
Ces attributs sont utiles pour l’exploitation des fichiers
Le nombre de ces attributs peut varier d’un système à l’autre
21
Organisation logique du SGF
Appels systèmes
Un appel système est une instance d’exécution d’un service demandé
par un utilisateur via un SE
Définissent l’interface entre le SE et les programmes utilisateurs
Sorte de bibliothèque de fonctions
Environ 100 appels systèmes dans la norme POSIX (norme Unix)
Analogie avec l’appel de fonctions en langage C
Les tâches correspondant aux appels systèmes sont exécutées en
mode noyau
Services offerts à travers les appels systèmes
Gestions des fichiers
Gestion des processus
Gestion de la mémoire
Gestion des E/S
22
Organisation logique du SGF
Appels système de la gestion des fichiers
Create
Le fichier est créé sans données. Le but de cet appel est d'indiquer la
création du fichier et de fixer un certain nombre de paramètres.
Delete
Quand un fichier n'est plus utilisé, il doit être supprimé pour libérer de
l'espace disque.
Open
Avant de se servir d'un fichier, un processus doit l'ouvrir. Le but de cet
appel est de permettre au système de charger les attributs et la liste des
adresses du fichier sur le disque afin d'accélérer les accès ultérieurs.
Close
Quand tous les accès au fichier sont terminés, les attributs et les adresses
du fichier ne sont plus nécessaires, par conséquent le fichier peut être
fermé pour libérer de l'espace dans les tables internes.
23
Organisation logique du SGF
Appels système de la gestion des fichiers
Read
Les données sont lues à partir du fichier. Généralement, les octets
proviennent de la position courante. L'appelant doit préciser le
nombre d'octets demandés et prévoir une mémoire tampon de
lecture.
Write
Les données sont écrites dans un fichier, généralement à partir de la
position courante. Si la position courante est la fin du fichier, la taille
du fichier augmente. Si la position courante est le milieu du fichier, les
données existantes sont remplacées et définitivement perdues.
Append
Cet appel correspond à l'appel d'un write restreint. On ne peut
ajouter des données qu'à la fin du fichier.
24
Organisation logique du SGF
Appels système de la gestion des fichiers
Seek
Repositionne le pointeur de fichier à un endroit précis dans le fichier
Get attributes
Retourne les attributs du fichier
Set attributes
Spécifie et modifie les attributs des fichiers selon les préférences de
l’utilisateur.
Rename
Change le nom d'un fichier existant.
25
Organisation logique du SGF
Remarque
Les appels système présentés précédemment ne sont pas
forcément implémentés dans tous les systèmes d’exploitation,
mais les fonctionnalités associées sont toujours assurées.
Exemples
L’appel « rename » peut être remplacé par la copie et la suppression
L’appel « append » peut être remplacé par l’appel de « write»
26
Organisation logique du SGF
Les répertoires
Appelés aussi dossier, les répertoires servent à conserver la
trace d’organisation des fichiers
Implémentés comme des fichiers dans la plupart des systèmes
d’exploitation
Trois utilisations des répertoires dans les systèmes :
Un seul répertoire
Deux niveaux de répertoires
Hiérarchie de répertoires
27
Organisation logique du SGF
Un seul répertoire
Le système dispose d’un seul répertoire qui contient tous les
fichiers.
Utilisé dans les anciens systèmes mono-utilisateur
N’est pas pratique dans le cas des systèmes multi-utilisateurs
Un utilisateur écraserait accidentellement un fichier d’un autre
utilisateur s’il enregistre le sien avec le même nom.
Peut être utilisé dans des petits systèmes embarqués
Système pour mémoriser les réglages propres d’une voiture pour un
nombre limité d’utilisateurs
répertoire
fichier
28
Organisation logique du SGF
Deux niveaux de répertoires
Un répertoire racine qui contient les répertoires des
utilisateurs (un pour chaque utilisateur).
Le conflit de nom de fichiers entre utilisateur est résolu
Ce système peut être utilisé dans le serveur de fichiers d’un
réseau local
Répertoire racine
U1 U2 U3 Répertoire utilisateur
A B C B D A fichier
29
Organisation logique du SGF
Hiérarchie de répertoires
Le système à deux niveaux de répertoires ne résout pas le conflit de
nom de fichiers chez le même utilisateur.
Un utilisateur ne peut pas avoir deux fichiers différents qui portent le même nom.
Organisation qui permet aux utilisateurs d’avoir un arbre de répertoires
Les fichiers peuvent figurer dans tous les niveaux
Le système conserve toujours la notion de répertoire racine qui représente la
tête de l’arbre global
Organisation utilisée dans tous les systèmes modernes
Répertoire racine
B C
fichier
A A A
A B C
30
Organisation logique du SGF
Appels systèmes de la gestion des répertoires
Create.
Un répertoire est créé. Il est vide, mais comprend deux répertoires
spéciaux : . et .. (répertoire courant et répertoire parent)
Delete.
Supprime un répertoire vide.
Opendir
Ouvre un répertoire existant, ce qui implique le chargement de ses
attributs dans les tables internes.
Closedir
Quand un répertoire a été lu, il doit être fermé pour libérer de
l'espace dans les tables internes.
31
Organisation logique du SGF
Appels systèmes de la gestion des répertoires
Readdir
Cet appel renvoie la prochaine entrée d'un répertoire ouvert.
Rename
Renomme un répertoire existant
Link
Crée un lien physique sur un fichier existant
Unlink
Supprime un fichier ou un lien physique
32
Organisation logique du SGF
Fichiers partagés
Un fichier peut « appartenir » à plusieurs répertoires
Une seule copie du fichier original dans le disque
Les autres entrées dans les autres répertoires font référence à ce
fichier ou directement à ses adresses disques
Lien symbolique
Lien physique
33
Organisation logique du SGF
Lien physique
Associe deux ou plusieurs fichiers à un même espace sur le
disque, les deux fichiers restant indépendants.
Chaque modification sera répercutée sur tous les liens
Mais la suppression de l'un, casse le lien, mais ne supprime pas
physiquement l'autre
Si la copie originale est supprimée, le lien fonctionnera
Les liens physiques ne concernent que les fichiers
On ne peut pas créer de lien vers un fichier sur une partition
différente
34
Organisation logique du SGF
Lien symbolique
Dans la copie du fichier on ne garde pas les adresses disque du
fichier original, mais tout simplement son chemin d’accès
La suppression du lien symbolique n’a aucun effet sur le fichier
d’origine
Si la copie originale est supprimée, le lien ne fonctionnera
pas (pointe sur un chemin inexistant).
On peut créer des liens vers des fichiers et des répertoires, et
on peut créer des liens (raccourcis) sur différentes partitions
35
Coté système
Gestion efficace de l’espace disque
Choix et implantation d’un système de fichiers
Manipulation des fichiers physiques de manière
transparente pour l’utilisateur qui travaille sur des fichiers
logiques
Mise en œuvre d ’un système de sauvegarde acceptable
pour assurer l’intégrité des données
Efficacité et rapidité du système
Protection des fichiers :
Contre les erreurs des utilisateurs et du système
Envers les accès non autorisés
36
Organisation physique du SGF
Implantation du système de fichiers
Un disque peut contenir plusieurs partitions
Chaque partition a son propre système de fichier
L’information sur le partitionnement d’un disque est stockée
dans son premier secteur (secteur zéro ou MBR)
37
Organisation physique du SGF
Exemple d’une partition Unix
Bloc de boot
Petit programme qui charge le noyau et lui donne le contrôle
Existe uniquement dans les partitions « bootables »
Super bloc
Contient les paramètres clés du système de fichiers
Identifiant du système de fichiers (C:, D : ..)
la date et l’heure de la dernière modification
Taille des blocs, le nombre des blocs libres, taille de la table i-nœud, …
Gestion de l’espace libre
i-nœuds
Répertoire racine
Répertoires et fichiers
38
Organisation physique du SGF
Gestion de l’espace disque
L’organisation physique des fichiers dans le disque ne reflète
pas forcément l’organisation logique.
Les systèmes choisissent entre deux possibilités pour stocker
un fichier
Allocation contigüe
Le fichier occupera une zone contigüe dans le disque
Allocation par blocs
Le fichier est organisé sous forme d’un ensemble de blocs de même taille
qui peuvent être dispersés dans le disque
39
Organisation physique du SGF
Allocation contigüe: Avantages
Facile et rapide pour la lecture et l’écriture des fichiers
Les blocs étant contigus, on limite les déplacements de la tête
lecture/écriture, qui sont coûteux en temps
Pour repérer un fichier sur le disque, il suffit de mémoriser l’adresse
du premier bloc et le nombre de blocs
Le fichier E commence à partir du bloc 17 et contient 9 blocs
FichierA Fichier C Fichier E Fichier G
(3 blocs) (6 blocs) ( 9 blocs) (6 blocs)
Fichier B Fichier D Fichier F
Bloc 0 (4 blocs) (4 blocs) Bloc 17 (8 blocs)
40
Organisation physique du SGF
Allocation contigüe: Inconvénients
La suppression d’un fichier entraîne la libération de ses blocs
Génération des trous
Complexe pour la modification du fichier
Si la taille d’un fichier augmente, alors
Le fichier utilise les blocs voisins s’ils sont libres
Chercher un autre espace contigu plus grand pour y conserver le fichier et
libérer la première zone
Si la taille diminue, cela crée un trou inutilisé
41
Organisation physique du SGF
Allocation contigüe
Exemple
Les blocs libérés suite à la suppression des fichiers D et F
FichierA Fichier C Fichier E Fichier G
(3 blocs) (6 blocs) ( 9 blocs) (6 blocs)
Fichier B Fichier D Fichier F
(4 blocs) (4 blocs) (8 blocs)
Suppression des fichiers D et F
FichierA Fichier C Fichier E Fichier G
(3 blocs) (6 blocs) ( 9 blocs) (6 blocs)
Fichier B (4 blocs libres) (8 blocs libres)
(4 blocs)
42
Organisation physique du SGF
Allocation contigüe
Exemple
La modification du fichier B a augmenté sa taille de 2 blocs
-Transférer le fichier vers une zone libre d’au moins 6 blocs et libérer
ses 4 blocs
FichierA Fichier C Fichier E Fichier G
(3 blocs) (6 blocs) ( 9 blocs) (6 blocs)
Fichier B (4 blocs libres) (8 blocs libres)
(4 blocs)
Modification du fichier B
Augmentation de sa taille de 2 blocs
FichierA Fichier C Fichier E Fichier B Fichier G
(3 blocs) (6 blocs) ( 9 blocs) (6 blocs) (6 blocs)
(4 blocs libres) (4 blocs libres) (2 blocs libres)
43
Organisation physique du SGF
Allocation par blocs
Efficace pour la gestion de l’espace disque
Pas de perte
Temps d’accès augmente par rapport à la première solution,
notamment si le fichier contient plusieurs blocs
Trois variantes de l’allocation par blocs
Liste chaînée de blocs
Liste chaînée utilisant une table en mémoire
i-nœuds
44
Organisation physique du SGF
Liste chaînée de blocs
Un disque est divisé en un ensemble de blocs adressables de même
taille
Un fichier est conservé comme une liste chaînée de blocs qui
peuvent être dispersés dans le disque.
Il suffit de garder l’adresse du premier bloc du fichier dans le
répertoire pour accéder à tous les autres blocs.
La nature de la liste chaînée rend l’accès aléatoire très lent
La taille des données dans les blocs ne sera pas une puissance de 2
Taille du pointeur
Bloc
Bloc 0 Bloc 1 Bloc 2 Bloc 3 Bloc 4 physique
Fichier de 5 blocs
45
Organisation physique du SGF
Liste chaînée de blocs utilisant une table en mémoire
Le disque est considéré comme une séquence linéaire de blocs
Les blocs sont numérotés dans l’ordre en commençant par 0
Le chaînage des blocs d’un fichier se fait dans une structure
indépendante appelée table ou FAT (File Allocation Table)
Cette table est chargée en mémoire
La table correspond à un vecteur de taille correspondant au nombre
total des blocs dans le disque
Pour localiser les blocs d’un fichier, il suffit de conserver l’adresse du
premier bloc
Le bloc suivant est celui correspondant à l’élément indexé dans la table
par le numéro du premier bloc
De même pour les blocs suivants
L’entrée indexée par le numéro du dernier bloc est « vide »
Un numéro spécial « -1 » ou un caractère spécial
46
Organisation physique du SGF
Exemple
Le fichier A occupe sur le 0
1
disque les cinq blocs : 4 ,7 ,2 , 2 10
10 et 12 3
4 7
5
6
7 2
8
9
10 12
11
12 -1
13
14
15
Table d’allocation des blocs
47
Organisation physique du SGF
i-nœuds
Les différents blocs d’un fichier sont localisés par une
structure appelée i-nœud
Seuls les i-nœuds des fichiers ouverts sont chargés en
mémoire
Les premiers blocs sont adressés directement
Introduire des niveaux d’adressage indirect pour les fichiers de
grande taille
Les dernières adresses correspondent à des blocs d’adressages (et
non de données)
48
Organisation physique du SGF
Implantation des répertoires
Le répertoire permet d’associer le nom utilisateur du fichier
aux :
Informations de localisation sur le disque
L’adresse disque du fichier (allocation contigüe)
L’adresse du premier bloc (liste chaînée)
Le numéro de l’i-nœud du fichier (i-nœuds)
Autres attributs
Le propriétaire, date de création, les droits, …
49
Organisation physique du SGF
Taille des blocs
La taille des blocs dépend de :
Taille des pages (pagination)
Taille moyenne des fichiers
Disque (cylindre, piste, secteur)
Choisir une taille très grande pour un bloc
Sous utilisation de l’espace disque
Un fichier d’ 1 Ko occupera un bloc de 32 Ko - gaspillage de 31 Ko
(97%)
Choisir une taille très petite
Un fichier sera constitué de plusieurs blocs - lenteur lors de
l’utilisation de ce fichier
50
Organisation physique du SGF
Mémorisation des blocs libres
Le système maintient en permanence les références des blocs
libres en vue de les attribuer aux programmes qui ont besoin
de stocker des informations
Deux techniques sont utilisées :
Liste chaînée de blocs
Table de bits
51
Organisation physique du SGF
Mémorisation des blocs libres
Liste chaînée de blocs
Un nœud de la liste est un bloc qui contient les adresses des blocs
libres et à la fin un pointeur vers un autre nœud.
Le nœud de la liste a la même taille d’un bloc de données
Exemple
Si la taille de bloc est 1Ko et l’adresse des blocs est représentée par 32
bits - un nœud peut référencer 255 blocs libres et une dernière
référence pour le nœud suivant
52
Organisation physique du SGF
Mémorisation des blocs libres
Liste chaînée de blocs
23 86 42
12 234 136
612 897 210
302 422 97
214 223 41
180 45 310
462 765 516
53
Organisation physique du SGF
Mémorisation des blocs libres
Table de bits
Le système maintient une table de bits de taille équivalente aux
nombres de blocs du disque.
Chaque bit est associé dans l’ordre à un bloc
Si la valeur du bit vaut 1 - le bloc équivalent est libre
Si la valeur du bit vaut 0 - le bloc équivalent est occupé
54
Organisation physique du SGF
Mémorisation des blocs libres
Table de bits
1001101111100110
0001101100100111
Le premier bloc est libre
1111101011100100
1000001110100111
Le deuxième bloc estoccupé
1011101011000110
1101100011100110
1110101101101110
55