Vous êtes sur la page 1sur 46

Université de la Manouba

Institut Supérieur des Arts Multimédias de Manouba

Cycle d’Ingénieur

Informatique Appliquée au Multimédia


1ère année

Chapitre 2

SYSTÈME DE GESTION DE
FICHIERS

1
N. Ben Ali
1. INTRODUCTION
1.1 Fichiers … pourquoi faire ?

¢ La mémoire principale est de taille restreinte et


volatile, ...
— Besoin de stocker des informations :
¢ à plus long terme
¢ de grande taille

¢ « partageable »

⇒ Gestion de Fichiers:
— Partie du système d’exploitation (file system) : SGF
¢ de quelle manière nommer les fichiers,
¢ comment les structurer,
¢ comment les utiliser,
¢ comment les protéger ...
2

NBA
1. INTRODUCTION
1.1 Fichiers … pourquoi faire ?

¢ Les fichiers jouent un rôle central dans un SE :


— Support des programmes exécutables
— Support des données
— Communication entre processus et entre utilisateurs
— Lien étroit entre fichiers et entrées-sorties

¢ Différents types
— Données : binaire, numérique, caractères….
— Programmes
3
— Fichier spéciaux : device, virtuel, etc.
NBA
1. INTRODUCTION
1.2 Notion de fichier

¢ Définition : (Sacha Krakowiak)


— Fichier : ensemble d’informations regroupées en vue de leur conservation
et de leur utilisation dans un système informatique
— Unité de stockage nommée
¢ Abstraction clé pour la gestion des données
— Simplification :
¢ Uniformise l’échange de données entre programmes et supports externes
— Unité de protection :
¢ un fichier appartient à un usager ;
¢ droits différents selon les fichiers
— Unité de structuration des données
¢ Indépendance : ne dépend pas du type de périphérique (disque dur, CD-ROM...)
¢ Extension : permet de structurer un ou plusieurs périphériques, voire d'en faire
totalement abstraction 4
— Unité de communication entre un programme et un puits ou une source de
données. NBA
1. INTRODUCTION
1.3 Fonctionnalités à prévoir

¢ Création / destruction

¢ Ouverture / fermeture
— mode d'ouverture / verrouillage (concurrence)

¢ Lecture / écriture

¢ Atteindre une position donnée (seek)


— selon le type de fichier (accès direct / séquentiel)

¢ Système de gestion de fichier (SGF)


— Sous-système d’un système d’exploitation

— Rôle
¢ Conservation permanente (sur disque) des fichiers

¢ Organisation logique et désignation des fichiers


¢ Partage et protection des fichiers 5
¢ Réalisation des fonctions d’accès aux fichiers
NBA
1. INTRODUCTION
1.3 Fonctionnalités à prévoir

SGF :

¢ Espace utilisateur
— Structure logique
— Appels système
¢ open(), read(), write(), close()

— Fonctions de librairie
¢ fopen(), fread(), fwrite(), fclose()

— Navigateur de fichiers (Explorer, Nautilus)

¢ Espace noyau
— Lien avec la structure physique
— Pilote de périphérique
¢ Systèmes de fichiers (ntfs, ext2fs, reiserfs, hfs+, etc.)
6
¢ Contrôleur IDE, SCSI, SATA, PATA, etc.

NBA
1. INTRODUCTION
1.4 Types de fichiers

¢ Fichier type : séquence d'octets


¢ Types de fichiers particuliers
— répertoires,
— liens symboliques,
— périphérique
¢ pas de contenu effectif : redirigé vers le matériel
— tube, socket...
¢ pas de contenu effectif : redirigé vers une ressource du SE

NBA
2. STRUCTURATION LOGIQUE
2.1 Métadonnées vs données

¢ Données : les données « contenues dans » le fichier

¢ Métadonnées :
— données à propos des données,

— nécessaires à leur structuration et à leur gestion par le SE

¢ Le périphérique de stockage contient à la fois les données


et les métadonnées
— surcoût

NBA
2. STRUCTURATION LOGIQUE
2.1 Métadonnées vs données

¢ Les métadonnées: attributs d’un fichier


— varient d'un système de fichiers à un autre
¢ Les métadonnées n'affectent pas le contenu du fichier.
¢ Exemples :
— Nom
— Propriétaire
— Type (simple, répertoire, etc...)
— Taille
— Adresse des données sur le périphérique
— Informations de sécurité
— Dates de création / accès / modification
— Droits R/W/X
— Et aussi: 9
¢ Icône, couleur, mot-clés, etc.
NBA
2. STRUCTURATION LOGIQUE
2.1 Métadonnées vs données

¢ Métadonnées sous UNIX/Linux:


— Un fichier possède les attributs suivants:
¢ Un propriétaire (owner).
¢ Un groupe (group).
¢ Une série de droits: lecture (R), écriture (W), exécution (X)
¢ Ces droits sont définis pour l'utilisateur, le groupe, et le reste du monde (other).
¢ Des attributs étendus: sticky bit, SGID, Set User ID, etc.
¢ Type de fichier: FIFO, support caractère, répertoire, support bloc, fichier régulier,
etc.

10

NBA
2. STRUCTURATION LOGIQUE
2.1 Métadonnées vs données

¢ Gestion des droits/propriétaires


— Changement des droits d'accès
¢ chmod [-Rcfv] [--recursive] [--changes] [--silent] [--quiet] [--verbose] [--

help] [--version] mode fichier...


¢ '=' assigne des droits, '-' enlève des droits, '+' ajoute des droits
¢ 'u' désigne le propriétaire, 'g' désigne le groupe,
¢ 'o' désigne les autres, 'a' désigne tous les utilisateurs.
¢ Exemples
¢ chmod u=r file
¢ chmod a+rwx file u+w file
¢ chmod g+rw file
¢ chmod u+w file
— Changement du propriétaire
¢ chown [options] propriétaire[:groupe] fichier...
¢ Possible seulement par l'administrateur root
— Changement de groupe 11
¢ chgrp [options] groupe fichier...

¢ Possible seulement par l'administrateur root NBA


2. STRUCTURATION LOGIQUE
2.2 Désignation

¢ Chaque fichier doit avoir un nom univoque (éventuellement plusieurs)

¢ Systèmes modernes :
— Structuration hiérarchique de
l'espace de noms
— notion de répertoire
— notion de chemin:
— absolu et relatif
— notion de répertoire racine
¢ point d'entrée de la hiérarchie

¢ Approche Windows : Plusieurs racines (arborescences) :


— chemins absolus préfixés par un nom de volume
12
¢ Approche Unix : Unicité de la racine :
— transparence des volumes dans la désignation NBA
2. STRUCTURATION LOGIQUE
2.2 Désignation

¢ UNIX : racine globale au système, et chaque périphérique ancre sa


racine dans un répertoire

— Point de montage

¢ mount disk2 /usr


¢ Intègre les fichiers de disk2 dans l’arborescence du système sous le répertoire /usr
13
¢ Le répertoire racine de disk2 désigné par /usr
¢ /usr/local/bin/emacs désigne le fichier local/bin/emacs sur le disque disk2
¢ umount /usr : démonte le système NBA
2. STRUCTURATION LOGIQUE
2.2 Désignation

¢ Principe de la désignation symbolique


— Organisation hiérarchique en arbre
— Noeuds intermédiaires de l’arbre : répertoires (directories):
¢ Un répertoire peut être considéré comme un fichier.
¢ Il contient une liste d'entrées de répertoire
¢ Une entrée de répertoire est soit un fichier soit un répertoire

— Noeuds terminaux de l’arbre : fichiers simples (files)

Exemples de noms absolus :


/
/bin
/usr/local/bin/prog
/home/machine1/dupont/fich1
/home/machine1/durand/fich1 14

NBA
2. STRUCTURATION LOGIQUE
2.2 Désignation

¢ Noms relatifs :
— Par rapport au répertoire courant
¢ Si le répertoire courant = /home/machine1 alors on peut utiliser les noms
relatifs :
dupont/fich1 et dupont/fich2

— Désignation du père
¢ Si le répertoire courant = /home/machine1/dupont alors on peut utiliser
../durand/fich1 pour désigner fich1

15

NBA
2. STRUCTURATION LOGIQUE
2.2 Désignation

¢ Répertoire courant
— Répertoire dans lequel on est situé
— Commande pwd :
¢ connaître le nom absolu du répertoire courant

¢ Répertoire de base
— Par défaut, tout utilisateur a un répertoire de base :
¢ home directory
— Exemple :
¢ /home/machine/dupont pour l’utilisateur dupont,
¢ un raccourci est ~dupont
¢ Convention pour les noms de fichiers/répertoires
— * désigne n’importe quelle chaîne de caractères dans le nom d’un fichier ou
répertoire
rm *.o : détruit tous les fichiers dont le nom se termine par .o 16
ls a*z : affiche tous les fichiers et répertoires dont le nom commence par a et se
termine par z NBA
2. STRUCTURATION LOGIQUE
2.2 Désignation

¢ Les noms des commandes tapés dans un shell sont des raccourcis : ls, gcc

¢ Ces raccourcis permettent d’éviter de taper le noms absolu du fichier


exécutable (programme) de la commande
— Exemple : /bin/ls, /usr/local/bin/gcc
— Comment est-ce que le shell retrouve le fichier exécutable correspondant à une
commande raccourci

¢ Variable d’environnement PATH


— Commande echo : valeur de la variable PATH
<unix> echo $PATH

/usr/local/bin:/usr/bin:/usr/j2se/bin

<unix>

— Répertoires de la variable PATH successivement explorés pour rechercher un


17
fichier portant le nom de la commande-raccourcie tapée

— Ordre des répertoires dans le PATH important NBA


2. STRUCTURATION LOGIQUE
2.3 Fichiers spéciaux : les liens

¢ Un lien est une référence vers un autre fichier.

¢ Grâce aux liens, un fichier peut être "vu" à différents endroits.


— Les métadonnées peuvent être différentes.
— Un fichier peut ainsi avoir des noms et des propriétaires différents.

¢ La notion de lien existe dans tous les systèmes d'exploitations


modernes.
¢ Deux types de liens
— Lien symbolique
— Lien physique (hard)
18

NBA
2. STRUCTURATION LOGIQUE
2.3 Fichiers spéciaux : les liens

¢ Lien physique ou hard


— Deux entrées de répertoire différentes réfèrent les
mêmes métadonnées:
¢ Les liens pointent vers le même contenu.

— Caractéristiques :
¢ Même fichier, même droits, même propriétaire

— La notion de lien hard est spécifique au système de


fichiers.
¢ Que se passe-t-il si le (vrai) propriétaire efface le
fichier?

— Les références circulaires sont évitées en


interdisant la création d'un lien hard sur un
19
répertoire.

— Commande : ln nomfichier nomlien NBA


2. STRUCTURATION LOGIQUE
2.3 Fichiers spéciaux : les liens

¢ Le fichier lien contient le chemin d'accès à


une entrée de répertoire.
— Il n'y a pas de référence directe vers les
métadonnées de l'autre fichier.
¢ Le lien est un lien virtuel situé au niveau de
l'arborescence uniquement.

¢ Le lien symbolique ne dépend pas


fortement du système de fichiers.
— Bonne portabilité entre différents systèmes
de fichiers.

¢ Il est possible d'avoir des liens morts


(dead link).
¢ Notion de raccourcis dans Windows
20
¢ ln -s fichier lien

NBA
3. ORGANISATION PHYSIQUE
3.1 Représentation d’un disque dur

¢ Un secteur est équivalent à 512


octets et forme la plus petite unité
adressable d'un disque.
¢ Un disque est composé de plusieurs
plateaux.
— Une tête (head) d'écriture/lecture
est liée à chaque surface du plateau.
¢ Deux têtes par plateau

— Tous les bras sont solidaires (fixés


autour d'un axe).
¢ Un plateau comporte plusieurs pistes.
— Chaque piste est formée d'un
21
certain nombre de secteurs.

NBA
3. ORGANISATION PHYSIQUE
3.1 Représentation d’un disque dur

¢ Le SGF manipule des blocs ou grappes (clusters).

¢ Un disque dur a deux vues:


— Une vue logique : ensemble de clusters

— Une vue physique : ensemble de blocs physiques


¢ Un bloc: adresse physique (H, C, S)

¢ Un fichier est composé d'un ou de plusieurs clusters.

¢ Le driver fera le mappage entre le bloc logique (du


SGF) et le bloc physique (HCS)
22

NBA
3. ORGANISATION PHYSIQUE
3.1 Représentation d’un disque dur

¢ Formatage physique
— ou de bas niveau :
¢ diviser la surface du disque en éléments basiques.
¢ Il prépare le disque à accueillir des données

23

¢ 1 bloc = n secteurs NBA


3. ORGANISATION PHYSIQUE
3.1 Représentation d’un disque dur

¢ Le formatage logique
— ou de haut niveau
— crée un système de gestion de fichiers sur le disque
¢ Le type de SGF installé dépend du système d’exploitation
¢ Il forme les clusters ou blocs

— Possibilité d’installer plusieurs types de SGF :


¢ partitionnement du disque..

24

NBA
3. ORGANISATION PHYSIQUE
3.2 Partitionnement d’un disque dur

¢ Le partitionnement consiste à créer des cloisons sur un même disque


dur.
— Plusieurs systèmes de fichiers (donc plusieurs OS également) pourront
cohabiter.
— Certaines données peuvent être complètement isolées du reste des
applications:
¢ aspect de sécurité

— Certains systèmes de fichiers permettent l'accès optimisé aux données


¢ c'est le cas d'une partition swap par exemple

¢ La description du partitionnement d’un disque est stocké dans son


premier secteur, le MBR (Master Boot Record)
— Le tout premier secteur d'un disque est le secteur no (0/0/1) en (C/H/S), et le
secteur no 0 (ou adresse 0) en adressage LBA 25

NBA
3. ORGANISATION PHYSIQUE
3.2 Partitionnement d’un disque dur

¢ Types de partition :
— Partition primaire
¢ Les caractéristiques de la partition sont décrites dans le MBR.

— Partition logique
¢ Les caractéristiques de la partition n'apparaissent pas dans le MBR.
¢ Une (seule) partition primaire peut contenir une ou plusieurs partition(s) logique(s).
¢ Ce sont des sous-partitions.
¢ Cette partition primaire particulière est appelée partition étendue.

¢ Cette décomposition est liée à l'évolution historique des OS et des disques


durs.
¢ Le MBR permet la création de 4 partitions primaires au maximum (sur un même
disque).
¢ Une partition étendue est structurée de manière différente d'une partition
primaire:
— Pas de secteur de démarrage.
26
— Elle contient les informations sur l'ensemble des partitions logiques

NBA
3. ORGANISATION PHYSIQUE
3.2 Partitionnement d’un disque dur

¢ Une partition est structurée en différentes zones.


— On retrouve les mêmes types de zone.

27

NBA
3. ORGANISATION PHYSIQUE
3.3 Partitionnement d’un disque dur

28

NBA
3. ORGANISATION PHYSIQUE
3.3 Partitionnement d’un disque dur

¢ Une fois qu’on a la partition :


— Il faut stocker des fichiers dans cette partition
— Où et comment stocker ces fichiers ?

¢ Fichiers sur disque :


— L’unité logique de stockage : le bloc
— Petits fichiers (< =a la taille d’un bloc)
¢ Le fichier est dans un bloc.
¢ Le bloc ne contient que ce fichier.

— Gros fichiers :
¢ Découpage du fichier en petits bouts de taille <= a un bloc disque.
¢ Sauvegarde de ces petits sur les blocs

¢ Le problème :
29
— Quels blocs choisir ?
NBA
3. ORGANISATION PHYSIQUE
3.3 Partitionnement d’un disque dur

¢ Il faut donc allouer des blocs à un fichier sachant que

— Beaucoup de modifications sur les fichiers:


¢ Un fichier peut : Apparaître, disparaître

¢ Un fichier peut : Grandir, rétrécir

¢ Des blocs peuvent devenir libres, occupés...

Gérer
l’espace
libre
Organisation
physique des
fichiers
Adopter une
30
stratégie
d’allocation
NBA
4. GESTION DE L’ESPACE LIBRE
4.1 Problématique

¢ Une liste des blocs (clusters) libres doit être maintenue sur
le disque afin de trouver rapidement l'espace libre.
— Analogie avec le gestionnaire mémoire et la liste des pages libres.

— La liste des blocs libres est une structure de donnée critique.

¢ Tout comme dans la gestion mémoire, il existe deux types


de liste:
— Un tableau de blocs libres (bitmap)

— Une liste chaînée.


31

NBA
4. GESTION DE L’ESPACE LIBRE
4.1 Utilisation d’un tableau

¢ Appelé également bitmap

¢ La liste des blocs libres est un vecteur de bits


— Chaque bit correspond à un bloc

¢ bit[i] = 0 si bloc[i] libre et 1 ⇒ bloc[i] occupé


¢ Exemple:
— si les blocs 3, 4, 5, 9, 10, 15, 16 sont libres, le vecteur sera:
1100011100111100.…

¢ Les algorithmes d'allocation sont performants


— Parcours d’un vecteur
— Cette solution permet par exemple d'identifier très vite une liste de blocs contigus.

¢ C'est la solution utilisée dans UFS, HFS, NTFS, ext2fs, etc. 32

NBA
4. GESTION DE L’ESPACE LIBRE
4.2 Utilisation d’une liste chainée

¢ La liste de blocs libres est composée de blocs


chaînés à l'aide de pointeurs. Liste
des
¢ Chaque bloc doit contenir une information blocs
libres
système qui n'a rien à voir avec le contenu
utilisateur.

¢ Une variante consiste à stocker l'ensemble des


adresses de blocs libres à l'intérieur d'un bloc.
— Le chaînage se fait par un parcours séquentiel des
adresses contenues dans le bloc.

— Bien entendu, plusieurs blocs peuvent être


nécessaires pour stocker l'ensemble des adresses.

¢ Cette solution est adoptée par les systèmes FATx


33

NBA
5. ALLOCATION DE BLOCS 5.1 Problématique

¢ La méthode d'allocation des blocs spécifie comment les blocs seront alloués
aux fichiers.
¢ Différentes contraintes ont un impact sur la méthode:
— Minimiser la perte de blocs.
— Garantir un accès rapide (minimiser le mouvement des bras).
— Pouvoir effectuer un accès aléatoire (accès direct).
— Réduire la fragmentation.
— Faire en sorte que la perte d'espace intra-bloc soit minimal.

¢ Les contraintes dépendent fortement de la technologie.


¢ Plusieurs stratégies
— Allocation contiguë
— Allocation par liste chaînée
— Allocation chaînée indexée 34
— Allocation par nœud d’information
NBA
5. ALLOCATION DE BLOCS 5.1 Allocation contiguë

¢ Chaque fichier occupe un ensemble de blocs contigus sur le disque.


¢ Méthode d'accès simple :
— Les métadonnées sont simples; seul l'emplacement de départ et le
nombre de blocs permettent de récupérer tous les blocs du fichier:
¢ accès au ième bloc : nv= n° du premier bloc + i

35
¢ accès direct et accès séquentiel simple
¢ Cette méthode nécessite une gestion des blocs libres efficace (bitmap
par exemple). NBA
5. ALLOCATION DE BLOCS 5.1 Allocation contiguë

¢ Avantages
— Simple à implémenter
— Accès direct aux blocs en un temps déterministe
¢ Inconvénients
— Extension d’un fichier :
¢ Connaître à l’avance la taille d’un fichier
¢ Réserver les blocs nécessaires

¢ Sinon, il faut déplacer le fichier « agrandit » dans un emplacemeent


capable de l’accueillir
¢ il se peut qu’un tel espace n’existe pas : extension impossible

¢ Adapté aux supports « Write Once » (CDRom,CDRW)

— Fragmentation :
¢ L’espace libre est émietté :
¢ Plusieurs trous mais aucun capable d’accueillir les fichiers 36

NBA
5. ALLOCATION DE BLOCS 5.1 Allocation contiguë

¢ Il peut être difficile de trouver k blocs contigus pour


contenir un fichier.
¢ Défragmentation :
— Exécution périodique d’une compression pour récupérer 37
l’espace libre
— Bloquer les fichiers durant l’opération NBA
5. ALLOCATION DE BLOCS 5.2 Allocation chaînée

¢ Un fichier occupe une liste chaînée de blocs

¢ Chaque bloc contient une partie des données et un pointeur sur le bloc
suivant

38

NBA
5. ALLOCATION DE BLOCS 5.2 Allocation chaînée

¢ Avantages
— Possibilité d’étendre un fichier:
¢ Allocation et libération de blocs au fur et à mesure.
— Allocation par bloc individuel :
¢ Tout bloc libre peut être utilisé pour satisfaire une requête
d’allocation
¢ Il y a une bonne gestion de l'espace disque.
¢ Pas de fragmentation externe.

¢ Inconvénients
— Solution non adaptée à l’accès direct
— L ’accès à un bloc quelconque nécessite l ’accès à tous les
blocs qui le précèdent:
¢ Les déplacement des têtes du disque ne sont pas optimisés.
— Les pointeurs sont stockés sur disque : gaspillage de
39
l’espace disque

NBA
5. ALLOCATION DE BLOCS
5.3 Allocation chaînée indexée

¢ Séparer les pointeurs et les données


— Utiliser une table d’allocation
¢ File Allocation Table
— Cette table pourra être partiellement chargée en
mémoire.
¢ A chaque bloc est associée une entrée dans la
FAT qui contient le n° du bloc suivant

40

NBA
5. ALLOCATION DE BLOCS
5.3 Allocation chaînée indexée

41

NBA
5. ALLOCATION DE BLOCS
5.3 Allocation chaînée indexée

¢ Avantages
— avantages de la liste chaînée...
— sans les inconvénients car la FAT est maintenue en mémoire
¢ Inconvénients
— l'accès séquentiel au fichier nécessite des accès directs au
périphérique à chaque changement de bloc pénalisant sur certains
périphériques (CD-ROM)
— la FAT est une ressource critique :
¢ elle est généralement dupliquée par sécurité

— La FAT peut devenir volumineuse lorsque la capacité des disques


augmente (occupation sur le disque et en mémoire)
— Solution :
¢ ne charger qu'une partie de la FAT en mémoire: 42
¢ réduit les performances
¢ augmenter la taille des blocs (gaspillage)
NBA
5. ALLOCATION DE BLOCS
5.3 Allocation par nœud d’information

¢ Appelée également : allocation indexée


¢ Principe:
— Eclater la FAT en plusieurs petites tables
¢ A chaque fichier est associé un bloc d’index
¢ Chaque table contient les attributs et les adresses sur le
disque des blocs du fichier
¢ Méthode utilisée par les systèmes UNIX/Linux :
— UFS : Unix file System:
¢ Concept d’i-node
¢ L'i-node est un bloc contenant :

¢ les métadonnées d'un fichier,

¢ et les blocs de celui-ci : un bloc d'index.

43

NBA
5. ALLOCATION DE BLOCS
5.3 Allocation par nœud d’information

¢ Chaque fichier se voit affecter une table à 13 entrées :


— les entrées 0 à 9 pointent sur un bloc de données
— l'entrée 10 pointe sur un bloc d'index qui contient 256
pointeurs sur des blocs de données :
¢ simple indirection
— l'entrée 11 pointe sur un bloc d'index qui contient 256
pointeurs sur des blocs d'index dont chacun contient 256 Blocs de
pointeurs sur des blocs de données: données
¢ double indirection
— l'entrée 12 pointe sur un bloc d'index qui contient 256 Simple
pointeurs sur des blocs d'index dont chacun contient 256 indirection
pointeurs sur des blocs d'index dont chacun contient 256 Double
indirection
pointeurs sur des blocs de données:
Triple 44
¢ triple indirection indirection
NBA
256 pointeurs
256 blocs de
données

256 pointeurs
10 blocs de

256 pointeurs
données
256 blocs de
données
256 pointeurs

256 blocs
de données

256 pointeurs
256 blocs de
256 pointeurs données
256 pointeurs

256 pointeurs

256 blocs de
données
45

NBA
ANNEXES

46

NBA

Vous aimerez peut-être aussi