Gestion de Fichiers
Gestion de Fichiers
Gestion de Fichiers
CHAPITRE 6 :
LA GESTION DE FICHIERS
Objectifs spécifiques
Connaître la notion de fichier, ses caractéristiques
Connaître la notion de répertoires et partitions
Connaître les différentes stratégies d’allocation de blocs pour fichiers et de gestion d’espace disque.
Eléments de contenu
I. Introduction à la gestion de fichier
II. Les fichiers
III. Répertoires, noms et partitions
IV. Objets du système de fichier
V. Fonctions du système de fichier
VI. Architecture d’un système de fichier
VII. Allocation
Volume Horaire :
Cours : 3 heures
TD : 1 heure 30
6.1 Introduction
Le volume des données traitées par les applications informatiques atteignant plusieurs méga et giga
octets, ces données ne peuvent pas être stockées dans la mémoire centrale. On souhaite également
disposer d'un stockage à long terme qui ne disparaisse pas lorsqu'on éteint la machine. Le principe
consiste à stocker ces données dans des mémoires secondaires sous forme de fichiers, c'est-à-dire de
suites de blocs (la plus petite unité que le périphérique de stockage est capable de gérer). Le contenu de
ces blocs, simple suite de chiffres binaires, peut être interprété selon le format de fichier comme des
caractères, des nombres entiers ou flottants, des codes d'opérations machines, des adresses mémoires,
etc... L’échange entre les deux types de mémoires se fait ensuite par transfert de blocs.
L'objectif du système de fichier est de permettre l'accès au contenu du fichier (l'ouverture du fichier, sa
recopie à un second emplacement ou sa suppression) à partir de son chemin d'accès, formé d'un nom
précédé d'une liste de répertoires imbriqués.
Mlle I.Sghaier - 41
Systèmes d’exploitation – Gestion de fichiers
6.2.1 Définition :
Un fichier est une collection logique d’information. Un système de fichiers est une collection de
fichiers.
Une des fonctions d'un SE est de masquer les spécificités des disques et des autres périphériques d'E/S
et d'offrir au programmeur un modèle de manipulation des fichiers agréable et indépendant du matériel
utilisé. Les appels système permettent de créer des fichiers, de les supprimer, de lire et d'écrire dans un
fichier. Il faut également ouvrir un fichier avant de l'utiliser, le fermer ultérieurement. Les fichiers sont
regroupés en répertoires arborescents; ils sont accessibles en énonçant leur chemin d'accès (chemin
d'accès absolu à partir de la racine ou bien chemin d'accès relatif dans le cadre du répertoire de travail
courant).
Le SE gère également la protection des fichiers.
Mlle I.Sghaier - 42
Systèmes d’exploitation – Gestion de fichiers
quelle unité doit être stockée un fichier. Sur certains systèmes, comme Dos et Windows, la partition est
spécifiée dans le chemin d’accès. Le nom c:\rules\II2.txt (sous Dos ou Windows) indique que l’objet
du système de fichiers nommé \rules\II2.txt se trouve sur la partition c :.
Dans de nombreux systèmes d’exploitation, les noms des systèmes de fichiers peuvent faire référence à
des objets qui ne sont ni des fichiers ni des répertoires. Les objets qui peuvent se trouver dans un
système de fichiers comprennent les éléments suivants :
Un raccourci : un raccourci est un pointeur vers un autre nom dans le système de
fichiers. Dans la plupart des cas, le fait de se référer à un raccourci revient à se référer au nom
pointé par le raccourci. La suppression du nom vers lequel pointe le raccourci laisse
généralement le raccourci en suspens.
Un périphérique : un élément matériel, comme un port parallèle.
Un tube : un canal de communication entre 2 processus. Un processus envoie des
données dans le tube l’autre processus lit ces données depuis le tube. Le tube met en mémoire
tampon les données écrites à l’intérieur, jusqu'à ce qu’un autre processus lise les données. Le
tampon est généralement de taille limitée et un processus qui écrit sur le tube doit être
suspendu lorsque le tampon est plein. Les tubes peuvent être nommés ou non. Comme ile
n’ont pas de nom les identifiant, les tubes sans nom ne sont généralement accessibles que par
le processus les ayant créés ou les processus qui sont des descendant du processus.
De la mémoire partagée : une allocation d’emplacement de mémoire utilisable par un ou
plusieurs processus. Comparable à un fichier sur un disque virtuel.
Le système de fichier doit offrir aux utilisateurs la possibilité d’accomplir des opérations abstraites sur
les objets au sein du système de fichiers. Il doit, au minimum, proposer les fonctions suivantes :
créations, suppression, lecture et écriture.
Mlle I.Sghaier - 43
Systèmes d’exploitation – Gestion de fichiers
exemple, une ligne de texte, des informations relatives à une personne). Les opérations dE/S
s’effectuent généralement en termes d’enregistrements. Le système d’exploitation peut gérer des
structures d’enregistrements fixes et/ou variables. Les enregistrements peuvent à leur tour être divisés
en champs, un champ représentant une donnée élémentaire (telle que le nom et l’âge). La figure
suivante décrit la strla structure logique d’un fichier
.
.
.
Enregistrement n
Basem Faker 1910 ….. Blond
Mlle I.Sghaier - 44
Systèmes d’exploitation – Gestion de fichiers
Mlle I.Sghaier - 45
Systèmes d’exploitation – Gestion de fichiers
chaque fichier le type d’opérations autorisé à chaque utilisateur. Dans un modèle de droits d’accès
illimité, un ensemble indépendant de permissions est conservé pour chaque utilisateur, ce qui
représente un volume important de données.
Un mécanisme de contrôle des droits d’accès limité réduit ce volume en regroupant les permissions
d’accès pour un certain nombre d’utilisateurs ou de fichiers. Ainsi, de nombreux systèmes
d’exploitation mettent en œuvre la notion de groupes d’utilisateurs. Chaque utilisateur et chaque fichier
sont associés à un ou plusieurs groupes d’utilisateur. Au lieu d’avoir un ensemble de permissions
d’accès pour chaque utilisateur, le fichier possède uniquement un ensemble de permissions d’accès
pour son propriétaire et pour chaque groupe auquel il est associé. Tous les utilisateurs d’un groupe
partagent les mêmes permissions d’accès. Un autre groupement fréquemment utilisé consiste à
demander à ce que tous les fichiers d’un répertoire partagent les mêmes permissions.
L’autre base communément utilisée pour contrôler l’accès est le mot de passe. Pour réaliser une
opération sur un fichier, un utilisateur doit spécifier le mot de passe de fichier associé à cette opération
(un mot de passe de fichier est distinct de tout éventuel mot de passe d’ouverture de session). Comme
avec les listes de droits d’accès, le groupement peut réduire le volume des données maintenues par le
système d’exploitation (et réduire le nombre de mots de passe que doit retenir un utilisateur). Ainsi,
tous les fichiers d’un répertoire peuvent partager le même mot de passe.
Les capacités constituent une variante intéressante des listes de droits d’accès, mais cependant moins
répandue. Sur les systèmes basés sur les capacités, les droits d’accès, au lieu d’être associés aux fichiers,
sont associés aux processus. Lorsqu’un accès au fichier est tenté, le système d’exploitation vérifie le
droit correspondant au fichier dans les droits d’accès associés au processus.
6.6.4 Verrouillage des fichiers
Le verrouillage des fichiers offre aux processus la possibilité de mettre en œuvre un accès exclusif à un
fichier. Trois grandes options existent dans la mise en œuvre du verrouillage :
Le verrouillage peut se limiter à l’ensemble des fichiers ou la mise en œuvre peut autoriser de
verrouiller certaines parties d’un fichier.
Le verrouillage peut s’appliquer à tout accès ou il peut exister différents niveaux. Sur certains
systèmes, il y à la fois des blocs de lecture et d’écriture. Un fichier verrouillé pour la lecture n’empêche
pas un autre accès en lecture, mais l’accès en écriture par d’autre processus est refusé.
Le verrouillage peut être soit obligatoire soit consultatif. Avec le verrouillage obligatoire, le
système d’exploitation refuse l’accès pendant que le fichier est verrouillé. Avec le verrouillage
consultatif, les primitives de verrouillage fournissent uniquement des informations sur l’état de
verrouillage du fichier. L’accès n’est restreint que si un processus vérifie l’état de verrouillage du fichier
et respecte le verrouillage qui est indiqué.
Dans certaines circonstances, un système d’exploitation peut mettre en œuvre un mécanisme
de verrouillage implicite.
Mlle I.Sghaier - 46
Systèmes d’exploitation – Gestion de fichiers
r1 r2 inutilisé r3 r4 inutilisé r5 r6
r1 r2 r3 r3 r4 r5 r5 r6 inutilisé
r1 r2 inutilisé r3 r4 inutilisé r5 r6
6.7 Allocation
Il existe 3 modèles de base pour allouer l’espace de l mémoire auxiliaire à des fichiers. Le schéma
d’allocation est chargé d’associer des blocs logiques d’un fichier à des blocs physique de la mémoire
Mlle I.Sghaier - 47
Systèmes d’exploitation – Gestion de fichiers
auxiliaire. Dans la plupart des systèmes d’exploitation, la taille d’un bloc physique est une puissance de
2 comprise entre 512 et 4096.
6.7.1 Allocation contiguë
Le modèle le plus simple est l’allocation contiguë. Les blocs logiques d’un fichier sont stockés dans
une partition de blocs physiques contigus. L’entrée du répertoire a uniquement besoin de stocker
l’adresse de la mémoire auxiliaire de départ du fichier ainsi que la taille de ce dernier. L’emplacement
physique de tout octet du fichier peut être calculé en ajoutant l’offset approprié à l’adresse de la
mémoire auxiliaire de départ de fichier.
Lorsqu’un fichier est créé, l’allocation contiguë requiert une pré-allocation d’espace pour le fichier. Le
système d’exploitation peut être conçu pour étendre l’allocation du fichier, si nécessaire. Si l’expansion
est autorisée et que l’espace de stockage au-dehors de la fin du fichier est utilisé, un ou plusieurs
fichiers doivent être déplacés pour loger le fichier le plus important. Les fichiers à déplacer doivent
recevoir de nouvelles partitions sur le disque, puis être copiés sur ces nouvelles partitions.
6.7.2 Allocation chainée
Dans l’allocation chainée, les blocs physiques dans lesquels est stocké un fichier peuvent être dispersés
dans l’ensemble de la mémoire auxiliaire. Les blocs physiques sont plus importants que les blocs
logiques et stockent à la fois le bloc logique et un pointeur vers le bloc physique dans lequel est stocké
le prochain bloc logique du fichier. L’entrée du répertoire stocke l’emplacement du premier bloc
physique. Le bloc physique associé au Nème bloc logique peut être déterminé uniquement en lisant les
précédents blocs N-1 et en suivant les liens qu’ils contiennent. Les performances des opérations
d’adjonctions (écriture à la fin d’un ichier) peuvent être améliorées de façon significative en incluant
également dans l’entrée du répertoire un pointeur vers le dernier bloc de la file.
6.7.3 Allocation indexée
L’allocation indexée est une variante de l’allocation chainée. Le bloc physique stocke seulement le bloc
logique, qui est par conséquent de la même taille qu’un bloc logique. Les liens vers les blocs physiques
d’un fichier sont stockés de manière contiguë dans une table d’index. L’entrée du répertoire contient
soit la table d’index soit un pointeur vers celle-ci.
Avec les allocations contiguës et chainées, il suffit au système de fichiers de stoker l’emplacement
physique de départ du fichier. Toutes les autres adresses peuvent être déterminées à partir de
l’emplacement de départ du fichier. Avec l’allocation indexée, le système de fichiers doit avoir une
entrée d’index pour chaque bloc du fichier. Pour minimiser le volume d’espace requis dans les
structures de répertoire, l’indexation à plusieurs niveaux peut être utilisée.
Mlle I.Sghaier - 48
Systèmes d’exploitation – Gestion de fichiers
Un bloc est soit utilisé soit non utilisé ; son statu peut donc être stocké dans un seul bit. L’utilisation
d’une série de bits, un bit par bloc physique, crée un champ de bits d’espace libre. Les bits sont
regroupés en aussi peu de mots que possible. Bien que ce mécanisme fasse un usage efficace de
l’espace, l’accès aux informations sur un bloc particulier est ralenti par le traitement supplémentaire
nécessaire à l’extraction des informations en bits individuels depuis un mot.
Un tableau d’espace libre stocke les adresses de tous les blocs libres. Un bloc est utilisé si son adresse
n’est pas dans le tableau. Un tableau permet une implémentation efficace d’opérations d’ajout ou de
suppression des blocs de la liste d’espace libre.
Cette liste peut également être maintenue en créant une liste chaînée de tous les blocs libres. L’avantage
de ce schéma est l’efficacité de l’utilisation de l’espace ; les blocs libres stockent eux-mêmes des
informations relatives à la liste d’espace libre.
Mlle I.Sghaier - 49