Gestion Fichier
Gestion Fichier
Gestion Fichier
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
▷ Exemple:
▷ Les opérations de lecture et d'écriture du SGF se font bloc par bloc
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
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
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
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
▷ 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.
25
Fichier: Méthodes d'accès
▷ Quelques méthodes d'accès:
26
Accès séquentiel
🔹Read_next(), write_next()
27
Accès séquentiel chaîné
28
Accès séquentiel indéxé
29
Accès calculé
▷ Le calcul de l'emplacement de
l'enregistrement se fait par une fonction
connue du SGF
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
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
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
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
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.
52
SGF: Allocation indéxée
Plusieurs blocs d’index:
▷ Chaînée
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