Vous êtes sur la page 1sur 58

GESTION DE FICHIERS

SYSTEME DE GESTION DE FICHIERS

INSAT 2023 Imen AJILI


Fichier
▷ Caractéristiques pour le stockage des informations à
long terme :
1. Stocker des informations de très grande taille
2. Les infos ne doivent pas disparaître lorsque le processus qui
les utilise se termine
3. Plusieurs processus doivent pouvoir accéder simultanément
aux informations.

▷ Stocker les informations dans des fichiers


sur des DD ou d’autres supports (secondaire).
2
Fichier: Concept logique
▷ Les concepts logiques:
🔹 Fichier
🔹 Enregistrement: Ensemble de données décrivant un objet d'une même entité
🔹 1 ligne de programme source
🔹 1 ligne de texte
🔹 1 instruction codée binaire
▷ Ils ont pour but:
🔹 Ranger de manière rationnelle les données sur disque
🔹 Rendre transparents à l'utilisateur les concepts physiques
🔹 Gérer les fichiers indépendamment des périphériques

▷ Ils sont gérés par le SGF


🔹 Le SGF s'appuie sur la gestion des concepts physiques 3
Fichier: Logique / Physique

4
Fichier: Structure
▷ Selon le SGF, le fichier est :
🔹 Simple suite d'octet (Unix, MS-DOS)
🔹 Suite d'enregistrements:
🔹 Arborescence de blocs

5
Fichier: Structure

6
Fichier: Structure
▷ Enregistrement: Ensemble de données décrivant un objet d'une
même entité
🔹 1 ligne de programme source
🔹 1 ligne de texte
🔹 1 instruction codée binaire

7
Fichier: Organisation logique
▷ La longueur fixe:
🔹 Tous les enregistrements d'un même fichier sont de même longueur
🔹 Facilité de gestion
🔹 Risque de perte importante
🔹 Accès:
🔹 Connaître l'emplacement du premier enregistrement
🔹 Connaître la longueur
▷ La longueur variable:
🔹 Chaque enregistrement a sa propre longueur
🔹 Occupation optimisée
🔹 Complexité de gestion
🔹 Accès :
🔹 Connaître l'emplacement du premier enregistrement
🔹 Connaître la longueur de chaque enregistrement 8
Enregistrement : Addresse physique

▷ Connaître la position du 1er enregistrement du fichier:


🔹 soit l'adresse physique: n° face, n° piste, n° secteur
▷ Connaître le déplacement pour chaque enregistrement:
🔹 soit le nombre d'octets
🔹 soit un chaînage sur l'enregistrement suivant
▷ chaînage:
🔹 adresse de l'enregistrement suivant 9
Fichier: Organisation physique
▷ Pour un meilleur compromis: temps d'accès et capacité de stockage, SGF
organisent l'espace du disque en blocs de secteurs de taille fixe

▷ Exemple:
▷ Les opérations de lecture et d'écriture du SGF se font bloc par bloc

▷ Différentes méthodes d'allocation des blocs 10


Traduction

Enregistrement
logique
à
Bloc physique

11
Fichier: Organisation
▷ Enregistrement logique de 80 octets bloc ▷ Enregistrement logique de 80 octets bloc
physique de 512 octets physique de 512 octets
▷ Position du 10e enregistrement logique ▷ Position du 7e enregistrement logique
▷ Déplacement = (10 - 1) x 80 = 720 octets ▷ Déplacement = ( 7 - 1 ) x 80 = 480 octets
▷ Enregistrement / bloc = 80 / 512 = 0.15 ▷ D́ placement en bloc = 480 / 512 = 0.9375
▷ Déplacement en bloc = 720 / 512 = 1.40625

▷ un enregistrement peut chevaucher deux


blocs physiques
12
Fichier: Organisation

13
Fichier: Nomination
▷ Les fichiers sont repérés sur le disque par un nom:
🔹 FICHIER.C Programme source en c
🔹 FICHIER.PAS Programme source en pascal
🔹 FICHIER.BIN Programme binaire exécutable
🔹 FICHIER.LIB Fichier librairie
🔹 FICHIER.TXT Fichier texte
🔹 FICHIER.DAT Fichier données
▷ Les noms de fichiers respectent la syntaxe imposée par le
SGF:
🔹 Longueur maxi d'un nom
🔹 Jeu de caractères autorisé pour le nom
🔹 Extension différenciant la nature du fichier.... 14
Fichier: Attributs
▷ Les attributs d'un fichier varient d’un SE à l'autre, mais comprennent généralement :
🔹 Nom : La seule information conservée sous une forme lisible par l'homme
🔹 Identifiant : Numéro qui identifie le fichier dans le système de fichiers ; non lisible
🔹 Type : Pour les systèmes prenant en charge différents types de fichiers.
🔹 Emplacement: Pointeur vers un périphérique et vers l'emplacement sur ce périphérique
🔹 Taille : Taille actuelle (octets, mots ou blocs) et la taille maximale autorisée.
🔹 Permission : Informations de contrôle d'accès (lire, écrire, exécuter, etc.)
🔹 Horodatages et identification de l'utilisateur : la création, la dernière modification et la
dernière utilisation. utiles pour la protection, la sécurité et la surveillance de l'utilisation.

15
Fichier: Attributs

▷ Les attributs d'un fichier sont stockés


dans le dossier qui contient le fichier
dans une zone appelée une entrée de
répertoire.

16
Fichier: Répertoire
Un répertoire: Une table sur le support
permettant de référencer tous les fichiers
existants avec leur nom et leurs
caractéristiques principales

▷ Un répertoire est une zone disque


réservée par le SGF.
▷ Le répertoire comprend un certain
nombre d'entrées.
▷ Une entrée est allouée à chaque fichier
du disque
▷ Il stocke pour chaque fichier l'adresse
du premier enregistrement 17
Fichier: Répertoire
▷ Un repertoire peut contenir des fichiers et d'autres répertoires (sous-répertoires).
🔹 Arborescence de repertoires et de fichiers. (Répertoire partagé)

18
Fichier: Chemin d'accès
▷ Le chemin d'accès d'un fichier: La séquence de dossiers à parcourir
dans l'arborescence jusqu'au fichier. (abc/def/B2)
🔹 Windows \usr\ast\mailbox
🔹 UNIX /usr/ast/mailbox
🔹 MULTICS >usr>ast>mailbox

▷ Chemin absolu : Depuis la racine de l'arborescence

▷ Chemin relatif : En commençant à un endroit intermédiaire sur le


chemin absolu.
19
Fichier: Types
▷ Le type est inclut dans le nom du
fichier (nom . extension)
▷ Il sert à determiner le type
d'opérations à effectuer sur ce
fichier
▷ Ces extensions ne sont pas
toujours requises,
▷ Servent d’indices pour les
applications qui fonctionnent
dessus.
20
Fichier: Operations
▷ Création
▷ Ouverture / fermeture
🔹 Mode d’ouverture / verrouillage (concurrence)
▷ Lecture / écriture / Positionnement (seek)
🔹 Type d’accés (séquentiel/direct)
🔹 Pointeur de lecture /écriture
▷ Destruction ou suppression
🔹 Liberation de l’espace
▷ Troncature
🔹 Effacer le contenu mais conserver ses attributs sauf la taille
réinitialisée à zero (espace libéré).
21
Fichier: Organisation
Selon l'allocation de l'espace disque qu'utilise le SGF plusieurs
organisations de fichiers sont possibles

▷ Séquentielle

▷ Séquentielle chaînée

22
Fichier: Organisation
▷ Séquentielle indexée:
🔹 Table d'index
🔹 Fchier des données
▷ Principe:
🔹 Recherche d'un
enregistrement dans
une partie du fichier
▷ Avantages:
🔹 Rapidité d'accès
▷ Inconvénients
🔹 Double accès
🔹 Stockage des index
23
Fichier: Organisation
▷ Aléatoire:
🔹 Aucun lien ne relie les enregistrements entre eux
🔹 Les emplacements des enregistrements sont calculés: H-coding

24
Fichier: Méthodes d'accès
▷ Une méthode d'accès décrit la manière et les mécanismes par
lesquels un processus accède les données dans un fichier.

▷ Pas la façon dont les données ont été stockées dans le fichier.

▷ Un SGF gère quelques méthodes


▷ ces méthodes sont parfois particulières au SGF
▷ Elles dépendent des organisations

25
Fichier: Méthodes d'accès
▷ Quelques méthodes d'accès:

🔹 Séquentielle 🔹 si organisation séquentielle


🔹 Séquentielle-indexée 🔹 si organisation séquentielle-indexée
🔹 Séquentielle chaînée 🔹 si organisation séquentielle-indexée
🔹 Calculé 🔹 si organisation aléatoire et H-Coding
🔹 Relative 🔹 si organisation séquentielle et format fixe
🔹 Direct 🔹 si adresse physique connue
🔹 Indirect 🔹 si 1er accès donne adresse du 2scd

26
Accès séquentiel

🔹Read_next(), write_next()

27
Accès séquentiel chaîné

28
Accès séquentiel indéxé

▷ Recherche plage dans table


▷ Accès à la première adresse
▷ Lecture séquentielle jusqu'à
l'enregistrement recherché

29
Accès calculé
▷ Le calcul de l'emplacement de
l'enregistrement se fait par une fonction
connue du SGF

🔹 Fournir la clé de l'enregistrement


🔹 Le SGF applique une fonction (H_Coding)
🔹 Le résultat donne l'adresse

30
Accès relatif

31
Accès direct / indirect
▷ Direct
🔹 On peut accéder à
n'importe quelle partie du
fichier à tout moment.
read(n), write(n)

▷ Indirect
🔹 A la lecture d'un premier
enregistrement le SGF
récupère l'adresse de
l'enregistrement à lire
🔹 l'emplacement de l'Adresse
doit être connu du SGF 32
Commandes & requêtes
▷ Les commandes:
🔹 Interface SGF utilisateurs
🔹 Langage de commande ex: shell d'unix, commandes MS-DOS
🔹 Niveau fichiers et non contenu des fichiers

▷ Les requêtes:
🔹 Interface SGF logiciel
🔹 Appel dans un programme aux fonctions du SGF (langage C, Cobol...)
🔹 Niveau fichier et enregistrements

33
Commandes
▷ Les commandes du S.E. incluent des commandes SGF
▷ Langage de commandes
▷ Quelques commandes du SGF:
🔹 Liste du répertoire
🔹 Changement de répertoire
🔹 Création sous-répertoire
🔹 Suppression sous-répertoire
🔹 Création fichier (allocation statique) - suppression fichier
🔹 Modification d'attributs d'un fichier - changement de nom de fichier...

34
Requêtes
▷ Les requêtes sont des appels aux fonctions SGF dans un programme.
▷ Les requêtes permettent de modifier le contenu des fichiers
▷ Quelques requêtes du SGF:
🔹 Ouverture fichier
🔹 Fermeture fichier
et
🔹 Lecture d'enregistrement
🔹 Ecriture d'enregistrement
ou
🔹 Création d'un enregistrement
🔹 Suppression d'un enregistrement
🔹 Modification d'un enregistrement
35
Protection / droit d’accés

36
Droit d’accés: commande ls (unix)

37
Système de gestion de fichiers (SGF)
Le SGF du SE se charge de gérer le stockage et la manipulation de fichiers
(sur une unité de stockage : partition, disque, CD, disquette.
▷ Une interface conviviale pour manipuler les fichiers (Operations)
🔹 Vue fournie à l’utilisateur: nom et extension,
🔹 les autres attributs sont gérés implicitement par le SGF
▷ La gestion de l’organisation des fichiers sur le DD
🔹 Allocation de l’espace disque aux fichiers

▷ La gestion de l’espace libre sur le DD

▷ La gestion des fichiers dans un environnement Multi-Utilisateurs, les


données d’utilitaires pour le diagnostic, la récupération en cas d’erreurs
38
SGF: Partitionnement
▷ Les SGFs sont enregistrés sur des DDs

▷ Les DDs peuvent être divisés en une ou plusieurs partitions,


🔹 Avec des SGF indépendants sur chaque partition.

▷ Le secteur 0 du disque appelé enregistrement d'amorçage maître


(MBR – Master Boot Record) sert à amorcer la machine

▷ La fin du MBR comprend la table de partitions


🔹 Indique l'adresse de début et de fin de chaque partition

▷ Une de ces partitions est marquée comme étant la partition active

39
SGF: Partitionnement

40
SGF: Partitionnement
1. Quand l’ordinateur est amorcé, le BIOS lit et exécute le MBR
🔹 Le programme MBR détermine la partition active,
🔹 y lit le premier bloc appelé bloc d'amorçage (boot block) et l'exécute

2. Le programme du bloc d'amorçage charge le SE contenu dans


cette partition
🔹 Chaque partition commence un bloc d'amorçage, même si elle ne
contient pas de SE

3. Superbloc (superblock) contient:


🔹 Tout les paramètres clé concernant le SGF
🔹 Un numéro magique qui identifie le type de système de fichier 41
SGF
▷ Les fichiers étant sauvegardés sur des disques,
l’organisation logicielle de l’espace du disque est
primordiale pour les SGF.

🔹 Taille des blocs


🔹 Façon de repérer les blocs libres.
🔹 Stratégie de stockage

42
SGF: Taille des blocs
▷ Déterminer la taille optimale d’un bloc.
🔹 Des blocs de 512 octets, 1 Ko ou 2
Ko.
Exemple:
▷ Des blocs de 1 K octets sur un disque
dont les secteurs font 512 octets,
▷ le SF lit et écrit deux secteurs
consécutifs :
🔹 Ensemble unique et indivisible,
appelé unité d’allocation (cluster).

43
SGF: Repérage des blocs libres

Unix Windows

44
SGF: Stratégie de stockage

Il existe deux stratégies pour stocker un fichier de n octets :

▷ Allouer n octets consécutifs sur le disque


🔹 Déplacer le fichier chaque fois que sa taille augmente
(ce qui arrive fréquemment).

▷ Diviser le fichier en plusieurs blocs de taille fixe (pas


nécessairement contigus/adjacents).
45
SGF: Stratégie de stockage
Différentes méthodes sont utilisées:

▷ Allocation contiguë (CD, DVD)


▷ Allocation Non contiguë
🔹 Chaînée,
🔹 Chaînée indexée (FAT)
🔹 Indexée (inode)
46
SGF: Allocation Contiguë

Frag
men
exte ta)on
rne

47
SGF: Allocation Contiguë
▷ Chaque fichier occupe un ensemble de blocs contigue sue le disque
▷ Simple: @ debut et longeur
▷ Supporte l’accès séquentiel et direct

▷ Les fichiers ne peuvent pas grandir (il faut les déplacer)


▷ Impossible d’ajouter au milieu
▷ Exécution périodique dûne compression pour récupérer l’espace libre

48
SGF: Allocation par liste chaînée

▷ Le repertoire : @ premier et @
dernier bloc,
▷ Bloc: pointeur à @ prochain bloc

49
SGF: Allocation par liste chaînée
▷ Efficace que pour les fichiers à accès séquentiel (pas direct)
🔹 Pour trouver le ième bloc d'un fichier,
🔹 commencer au début de ce fichier et suivre les pointeurs jusqu'au ième bloc.
🔹 Chaque accès à un pointeur nécessite une lecture de périphérique de stockage,
et certains nécessitent une recherche de disque dur.

▷ Espace requis pour les pointeurs.


🔹 Si un pointeur nécessite 4 octets sur un bloc de 512 octets, 0,78 % du disque est
utilisé pour les pointeurs plutôt que pour les informations.
🔹 Chaque fichier nécessite un peu plus d'espace qu'il n'en aurait autrement.

▷ Fiabilité. si un pointeur était perdu ou endommagé.


🔹 Un bogue dans le logiciel du SE ou une défaillance matérielle peut entraîner la
sélection du mauvais pointeur. 50
SGF: File Allocation Table (MS-DOS)

▷ FAT peut entraîner un nombre


important de recherches de
disque, à moins que la FAT ne soit
mise en cache.

▷ La tête de disque doit se déplacer


pour lire la FAT et trouver
l'emplacement du bloc en
question, puis se déplacer à
l'emplacement du bloc lui-même.
51
SGF: Allocation indéxée

52
SGF: Allocation indéxée
Plusieurs blocs d’index:

▷ Chaînée

▷ Indexéesur plusieur niveaux

▷ Mixer les niveaux d’indexation (inode)


53
SGF: inode (Unix)
▷ Mixer les niveaux d’indexation
▷ A chaque fichier est associée une entrée dans la table des inodes.
▷ Dans cette entrée on trouve :
🔹 type de fichier
🔹 bits de protection
🔹 nombre de liens sur ce fichier
🔹 propriétaire UID et GID
🔹 taille du fichier
🔹 adresses des 10 1ers blocs occupés par le fichier
🔹 dates et heures du dernier accès, de la dernière modification du fichier et de
l'inode
🔹 3 zones d'indirection.

54
SGF: inode (Unix)
▷ 1ère zone pointe ▷ 2ème zone utilisée si la 1ere ne suffit pas,
sur une table ▷ elle désigne une table dont chaque entrée
contenant les 256 désigne une table de blocs suivants.
blocs suivants du ▷ On a donc au max 256 tables désignant 256
fichier blocs chacune => 2562 blocs possibles (65000).

55
SGF: inode (Unix)
▷ 3ème zone utilisée si ça ne suffit encore pas.
▷ Elle désigne une table dont chaque entrée désigne une table du
même type que celle désignée par la 2ème zone => 2563 blocs
possibles (16 millions).

56
SGF: inode (Unix)

57
SGF: inode

58

Vous aimerez peut-être aussi