Syst` emes d’Exploitation Cours 9/13 : Syst` eme de fichiers
Nicolas Sabouret
Universit´e Paris-Sud Licence 3 - semestre S5
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion
Plan
1 Notion de fichier
2 Ouverture de fichier
3 R´epertoires
4 Syst`eme de fichiers
Plan
1 Notion de fichier Rˆole dans l’OS File Control Block Op´erations
2 Ouverture de fichier
3 R´epertoires
4 Syst`eme de fichiers
5 Conclusion
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Rˆole dans l’OS File Control Block Op´erations
Syst`eme de fichiers Partie visible de l’OS
M´ecanisme de stockage sur un support physique Acc`es aux donn´ees stock´ees
Acc`es aux programmes
Acc`es `a l’ensemble du syst`eme informatique
D´efinition
Unfichierest une collection nomm´eed’information accessibles via un p´eriph´erique.
Unit´e logique
Ind´ependante du support physique (p´eriph´erique) Abstraction des propri´et´es physiques
Syst`eme de fichiers Partie visible de l’OS
M´ecanisme de stockage sur un support physique Acc`es aux donn´ees stock´ees
Acc`es aux programmes
Acc`es `a l’ensemble du syst`eme informatique D´efinition
Unfichierest une collection nomm´eed’information accessibles via un p´eriph´erique.
Unit´e logique
Ind´ependante du support physique (p´eriph´erique) Abstraction des propri´et´es physiques
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Rˆole dans l’OS File Control Block Op´erations
Structure d’un fichier Type de fichier
Code source Donn´ees Biblioth`eque Fichier ex´ecutable
Point d’acc`es `a un p´eriph´erique etc
→A chaque type de fichier correspond une` structure sp´ecifique! G´en´eralement indiqu´e par sonextension.
Structure d’un fichier : exemples I Fichiers texte : .txt
Donn´ees textuelles `a l’usage de l’utilisateur humain
→Succession decaract`eres, organis´es en lignes s´epar´ees par un caract`ere sp´ecial (\n, ˆM, . . . selon l’OS)
Fichiers source : .c, .java, . . .
Fourni par un utilisateur humain pour ˆetre trait´e par la machine
→succession de fonctions et sous-programmes, compos´es d’instructionss´epar´ees par des symboles sp´ecifiques
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Rˆole dans l’OS File Control Block Op´erations
Structure d’un fichier : exemples II Biblioth`eque : .o, .dll, . . .
Construits par un compilateur `a partir d’un fichier source
→Succession d’octets organis´es en blocs interpr´etables par l’´editeur de lien
Ex´ecutable : .exe, . . .
→Succession d’instructionsque l’OS peut charger en m´emoire pourex´ecuterun programme
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Rˆole dans l’OS File Control Block Op´erations
File Control Block D´efinition
Structure de donn´ees de l’OS pour stocker les informations n´ecessaires `a la gestion des fichiers
Nom : stdio: ind´ependant de l’OS, lisible Identifiant : num´erique, unique, pour l’OS
Type : extension .hou en-tˆete de fichier Emplacement : pointeur sur un p´eriph´erique
Taille : en octets ou en blocs
Protection : lecture, ´ecriture, ex´ecution. . . Date(s) : cr´eation, modification, acc`es. . . Utilisateur : propri´etaire du fichier
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Rˆole dans l’OS File Control Block Op´erations
File Control Block D´efinition
Structure de donn´ees de l’OS pour stocker les informations n´ecessaires `a la gestion des fichiers
Contenu
Nom : stdio: ind´ependant de l’OS, lisible Identifiant : num´erique, unique, pour l’OS
Type : extension.h ou en-tˆete de fichier Emplacement : pointeur sur un p´eriph´erique
Taille : en octets ou en blocs
Protection : lecture, ´ecriture, ex´ecution. . . Date(s) : cr´eation, modification, acc`es. . . Utilisateur : propri´etaire du fichier
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Rˆole dans l’OS File Control Block Op´erations
Partage de fichiers D´efinition
Rendre accessible `a un utilisateur B un fichier de l’utilisateur A
Politique de protection
D´efinir qui peut acc´eder `a quel(s) fichier(s) Identifiant utilisateur → identifiant processus Contrˆole d’acc`es dans le FCB
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Rˆole dans l’OS File Control Block Op´erations
Partage de fichiers D´efinition
Rendre accessible `a un utilisateur B un fichier de l’utilisateur A
Exemple : lecture de /bin/sh, acc`es `a /dev/mouse0, . . .
Politique de protection
D´efinir qui peut acc´eder `a quel(s) fichier(s) Identifiant utilisateur → identifiant processus Contrˆole d’acc`es dans le FCB
Partage de fichiers D´efinition
Rendre accessible `a un utilisateur B un fichier de l’utilisateur A
Exemple : lecture de /bin/sh, acc`es `a /dev/mouse0, . . .
Politique de protection
D´efinir qui peut acc´eder `a quel(s) fichier(s) Identifiant utilisateur → identifiant processus Contrˆole d’acc`es dans le FCB
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Rˆole dans l’OS File Control Block Op´erations
Protection de fichiers I
Liste de contrˆole d’acc`es (ACL) Utilisateur→ droits
Probl`emes :
7 l’ensemble des utilisateurs doit ˆetre connu a priori 7 taille du FCB !(grossit avec le nombre d’utilisateurs)
Mot de passe
1 mot de passe par fichier×type d’acc`es (lecture, ´ecriture, . . . ) 7 Pas tr`es pratique → peu utilis´e
Protection de fichiers II Classes d’utilisateurs
Exemple : Propri´etaires vs Autres
→quelques bits par fichier Notion de groupe
3 Ensemble de groupes d´efinis a priori
Ex :admin,dev-disque,user-disque,dev-ram,user-ram
3 FCB : 1 utilisateur + 1 groupe (propri´etaires)
Ex :toto.c u=batman, g=dev-disque
3 Utilisateur → liste de groupes
Ex :robin, g=[dev-ram,user-disque]
Ü robinn’a pas acc`es `atoto.c
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Rˆole dans l’OS File Control Block Op´erations
Protection de fichiers III Exemple : Unix Classes + groupes
3 classes : utilisateur, groupe, autres N groupes
3 droits : read, write, execute Ü 3×3 bits par fichier
Exemple :
$ ls -l total 248
drwx--- 6 nico prof 4096 nov. 20 12:06 private -rw--- 1 nico prof 2356 d´ec. 5 15:30 notes.ods drwxrwx--- 8 nico prof 4096 d´ec. 4 17:31 doc
-rw-rw-r-- 1 joe student 36 jan. 21 16:49 programme.c -rwxrwxr-x 1 joe student 996 jan. 28 10:53 programme
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Rˆole dans l’OS File Control Block Op´erations
Notion de r´epertoire D´efinition
Le r´epertoire est la structure de stockage des informationsdes fichiers (les FCB) sur lep´eriph´erique (le disque).
Entr´ee du r´epertoire = identifiant du fichier et/ou nom du fichier
→deux m´ethodes d’acc`es
Contenu du r´epertoire = FCB des fichiers Ü plusieurs Ko de donn´ees non scindables ! Principe
L’OS r´ecup`ere l’information sur les fichiers dans le r´epertoire
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Rˆole dans l’OS File Control Block Op´erations
Notion de r´epertoire D´efinition
Le r´epertoire est la structure de stockage des informationsdes fichiers (les FCB) sur lep´eriph´erique (le disque).
Structure
Entr´ee du r´epertoire = identifiant du fichier et/ou nom du fichier
→deux m´ethodes d’acc`es
Contenu du r´epertoire = FCB des fichiers Ü plusieurs Ko de donn´ees non scindables !
Principe
L’OS r´ecup`ere l’information sur les fichiers dans le r´epertoire
Notion de r´epertoire D´efinition
Le r´epertoire est la structure de stockage des informationsdes fichiers (les FCB) sur lep´eriph´erique (le disque).
Structure
Entr´ee du r´epertoire = identifiant du fichier et/ou nom du fichier
→deux m´ethodes d’acc`es
Contenu du r´epertoire = FCB des fichiers Ü plusieurs Ko de donn´ees non scindables ! Principe
L’OS r´ecup`ere l’information sur les fichiers dans le r´epertoire
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Rˆole dans l’OS File Control Block Op´erations
Op´erations sur un fichier Appels syst`emes de base
Cr´eation : allocation espace + entr´eer´epertoire Lecture : pointeur de lecture
Ecriture : pointeur d’´´ ecriture
Repositionnement : d´eplacer un pointeur
Suppression : retrait de l’entr´ee dans le r´epertoire Troncature : vider mais garder l’entr´ee
Op´erations compos´ees Ex : copie, renommage
→effectu´ees `a partir des appels syst`emes de base
Plan
1 Notion de fichier
2 Ouverture de fichier
3 R´epertoires
4 Syst`eme de fichiers
5 Conclusion
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion
Ouverture de fichier Probl`eme
N´ecessit´e d’acc´eder au FCB `a chaque op´eration sur le fichier Le FCB est stock´e dans le r´epertoire du p´eriph´erique
→Tr`es coˆuteux en acc`es disque (donc en temps) !
D´efinition
L’appel syst`emeopen permet de charger le FCB en m´emoire Acc`es `a un fichier
L’OS impose que tout acc`es `a un fichier soit pr´ec´ed´e d’une ouverture.
Ouverture de fichier Probl`eme
N´ecessit´e d’acc´eder au FCB `a chaque op´eration sur le fichier Le FCB est stock´e dans le r´epertoire du p´eriph´erique
→Tr`es coˆuteux en acc`es disque (donc en temps) ! D´efinition
L’appel syst`emeopen permet de charger le FCB en m´emoire Acc`es `a un fichier
L’OS impose que tout acc`es `a un fichier soit pr´ec´ed´e d’une ouverture.
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion
Table des fichiers ouverts Stockage des FCB en RAM
Latable des fichiers ouvertsde l’OS contient l’ensemble des FCB des fichiers ouverts.
Ouverture → chargement du FCB depuis le r´epertoire + ajout dans la table
Fermeture → retrait de la table Pas d’impact sur le fichier !
Gestion par l’OS
Implicite : open implicite au premier acc`es
Explicite : exception si le fichier n’a pas ´et´e ouvert avant Une table de fichiers ouvertsglobale avec compteurs + une table par processus →fermeture `a la terminaison
Table des fichiers ouverts Stockage des FCB en RAM
Latable des fichiers ouvertsde l’OS contient l’ensemble des FCB des fichiers ouverts.
Ouverture → chargement du FCB depuis le r´epertoire + ajout dans la table
Fermeture → retrait de la table Pas d’impact sur le fichier ! Gestion par l’OS
Implicite : open implicite au premier acc`es
Explicite : exception si le fichier n’a pas ´et´e ouvert avant Une table de fichiers ouvertsglobale avec compteurs + une table par processus →fermeture `a la terminaison
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion
Verrouillage Principe
Possibilit´e d’interdire l’acc`es aux autres processus Ex : lecteurs/´ecrivains
Exemple en Java
java.nio.channels.FileLock s = null, e = null;
java.io.RandomAccessFile f = new java.io.RandomAccessFile("nom","rw");
java.nio.channels.FileChannel c = f.getChannel();
e = c.lock(0,f.length()/2,false);
/* ´ecriture */
e.release();
s = c.lock(f.length()/2+1,f.length(),true);
/* lecture */
s.release();
Plan
1 Notion de fichier
2 Ouverture de fichier
3 R´epertoires
Structure de base Structures multi-niveau
4 Syst`eme de fichiers
5 Conclusion
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Structure de base Structures multi-niveau
Structure des disques Disque
Structure physique Partition
Structure logique (disquevirtuel) Base : 1 disque = 1 partition 1 disque = N partitions
1 partition = 1 ou N disques (selon OS) R´epertoire
Un r´epertoire par partition : l’ensemble des FCB Ü Nom/identifiant →FCB
R´epertoire : structure de base
Disque 1
R´epertoire R´epertoire
Disque 2
R´epertoire
Disque 3
Partition 1 Partition 2 Partition 3
Structure `a 1 niveau 3 Nom→ FCB
7 Taille du r´epertoire proportionnelle au nombre de fichiers
→borner le nombre de fichiers. . .
7 Utilisateur : organiser les fichiers, unicit´e de nom, . . .
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Structure de base Structures multi-niveau
R´epertoire : structure de base
Disque 1
R´epertoire R´epertoire
Disque 2
R´epertoire
Disque 3
Partition 1 Partition 2 Partition 3
Structure `a 1 niveau 3 Nom→ FCB
7 Taille du r´epertoire proportionnelle au nombre de fichiers
→borner le nombre de fichiers. . .
7 Utilisateur : organiser les fichiers, unicit´e de nom, . . . Exemple : MSDOS et Windows
Taille limit´ee `a 11 caract`eres (8 nom + 3 extension)
→5011 fichiers max par r´epertoire ('5.1018)
R´epertoire : structure de base
Disque 1
R´epertoire R´epertoire
Disque 2
R´epertoire
Disque 3
Partition 1 Partition 2 Partition 3
Structure `a 1 niveau 3 Nom→ FCB
7 Taille du r´epertoire proportionnelle au nombre de fichiers
→borner le nombre de fichiers. . .
7 Utilisateur : organiser les fichiers, unicit´e de nom, . . . Exemple : MSDOS et Windows
Taille limit´ee `a 11 caract`eres (8 nom + 3 extension)
→ 5011 fichiers max par r´epertoire ('5.1018)
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Structure de base Structures multi-niveau
R´epertoire : structure de base
Disque 1
R´epertoire R´epertoire
Disque 2
R´epertoire
Disque 3
Partition 1 Partition 2 Partition 3
Structure `a 1 niveau 3 Nom→ FCB
7 Taille du r´epertoire proportionnelle au nombre de fichiers
→borner le nombre de fichiers. . .
7 Utilisateur : organiser les fichiers, unicit´e de nom, . . . Exemple : Unix et Mac
Taille limit´ee `a 255 octets
Structure `a deux niveaux
Principe
Un r´epertoire par utilisateur
R´epertoire des utilisateurs : Master File Directory (MFD) Identifiant→ UFD
R´epertoire par utilisateur : User File Directory (UFD) Nom→ FCB
Master File Directory
Nicolas Batman Robin
User File Directory toto.c titi.txt tutu
User File Directory
foo bar
User File Directory truc.c machin chose.dll
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Structure de base Structures multi-niveau
Structure `a deux niveaux
Master File Directory
Nicolas Batman Robin
User File Directory toto.c titi.txt tutu
User File Directory
foo bar
User File Directory truc.c machin chose.dll
Structure `a 2 niveau 3 User + Nom→ FCB
3 Pas beaucoup plus coˆuteux en taille
3 Utilisateur : organiser les fichiers, unicit´e de nom, . . . 7 Taille des r´epertoires proportionnelle au nombre de fichiers 7 Partage de fichiers
Structure `a deux niveaux : avantages et inconv´enients Remarques
Les UFD sont des fichiers
Le nom de chaque UFD doit ˆetre unique
mais deux fichiers de deux UFD diff´erents peuvent avoir le mˆeme nom!
nicolas/cours1.pdf batman/cours1.pdf
Acc`es
Les fichiers des utilisateurs sont isol´es
Nommage : partition + utilisateur + nom fichier toto.c→partition courante, utilisateur du processus
batman/toto.c→partition courante, utilisateur batman(Unix)
c:\batman\toto.c→partition c, utilisateur batman(Windows)
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Structure de base Structures multi-niveau
Structure `a deux niveaux : partage de fichiers Fichiers de l’OS
Exemples : biblioth`eques, routines, etc
Ü Probl`eme : comment ne pas les charger dans chaque UFD ?
Utilisateur OS
R´epertoire d’utilisateur sp´ecial
Recherche par d´efautsi absent du r´epertoire de l’utilisateur Ordre de recherche sp´ecifi´e (variablePATH)
Structure `a deux niveaux : partage de fichiers Fichiers de l’OS
Exemples : biblioth`eques, routines, etc
Ü Probl`eme : comment ne pas les charger dans chaque UFD ? Utilisateur OS
R´epertoire d’utilisateur sp´ecial
Recherche par d´efautsi absent du r´epertoire de l’utilisateur Ordre de recherche sp´ecifi´e (variablePATH)
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Structure de base Structures multi-niveau
Structure arborescente Principe
G´en´eralisation de la structure `a 2 niveaux : R´epertoire racine (MFD)
Sous-r´epertoires, pouvant `a leur tour jouer le rˆole de MFD
root
sbd1 sbd2
Structure arborescente : impl´ementation Fichiers
Bit r´epertoire dans le FCB
Nom unique = chemin depuis la racine (cheminabsolu) OS
R´epertoire courant (par processus)
Ü Recherche `a partir du r´epertoire courant (cheminrelatif) Ü Recherche par d´efaut (PATH)
Appels syst`emes
Cr´eation/Suppression de r´epertoire Changement de r´epertoire courant
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Structure de base Structures multi-niveau
Structure en graphe
Principe
G´en´eralisation de l’arbre avec des liens Ü Grapheacyclique
Liens
R´ef´erencer un fichier d´ecrit dans un autre r´epertoire Ü bit lien dans le r´epertoire + chemin absolu Extension :duplication
Ü FCB recopi´e→ copie et original indiscernables
Ü Compteur de liens (pour savoir quand lib´erer l’espace sur le support physique)
Structure en graphe
Principe
G´en´eralisation de l’arbre avec des liens Ü Grapheacyclique
Liens
R´ef´erencer un fichier d´ecrit dans un autre r´epertoire Ü bit lien dans le r´epertoire + chemin absolu Extension :duplication
Ü FCB recopi´e→ copie et original indiscernables
Ü Compteur de liens (pour savoir quand lib´erer l’espace sur le support physique)
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Structure de base Structures multi-niveau
Structure en graphe : exemple
root
sbd1 sbd2
lien symb
olique duplication
Plan
1 Notion de fichier
2 Ouverture de fichier
3 R´epertoires
4 Syst`eme de fichiers Fonctionnement Montage de r´epertoire Impl´ementation Allocation
5 Conclusion
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Notion de syst`eme de fichier D´efinition
Comment stocker les informations (donn´ees & code) sur le disque Comment les organiser
Comment y acc´eder
D´efinit une normede gestion (Ex : FAT, NTFS, EXT4FS, NFS. . . )
Plus g´en´eralement
Organisation de l’ensemble desdonn´eeset desp´eriph´eriques g´er´es par l’OS
Exemple : Linux
→chaque p´eriph´erique est repr´esent´e par un fichier
Notion de syst`eme de fichier D´efinition
Comment stocker les informations (donn´ees & code) sur le disque Comment les organiser
Comment y acc´eder
D´efinit une normede gestion (Ex : FAT, NTFS, EXT4FS, NFS. . . )
Plus g´en´eralement
Organisation de l’ensemble desdonn´eeset desp´eriph´eriques g´er´es par l’OS
Exemple : Linux
→chaque p´eriph´erique est repr´esent´e par un fichier
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Notion de syst`eme de fichier Diff´erence avec la RAM
Grande quantit´e de donn´ees Acc`es lent (rapport 103 `a 106) Notion de bloc
Unit´e de base du support physique
Ü Toutes les donn´ees `a stocker sont d´ecoup´ees en bloc Taille fixe (de 32o `a 1Mo selon support)
Exemples : disques dur ann´ees 2000 = 512o, SSD actuel = 1Mo
Syst`eme de fichiers (FileSystem)
Organisation des fichiers en blocs (cf. m´emoire pagin´ee)
Structure d’un syst`eme de fichiers Syst`eme logique
Structure de r´epertoires
FCB + gestion de la protection Syst`eme physique
Fichiers → ensemble de blocs logiques Bloc logique→ blocs physique
cf. m´emoire pagin´ee
Identification des blocs physiques selon support Lien : pilote de p´eriph´erique
Appel syst`eme (ex : chargement bloc 456)→ instruction mat´eriel
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Montage de r´epertoire Le syst`eme de fichiers. . .
. . . associe des noms `a des blocs logiques (fichiers) . . . associe des noms `a des r´epertoires venus du disque !
Montage de r´epertoire
Le montage consiste `a positionner un r´epertoire dans le syst`eme de fichier
Principe
Chargement du FCB par l’OS (disque→ RAM)
→Attribu´e `a l’utilisateur du processus Association dans le MFDau niveau logique
→Les fichiers deviennent accessibles
Montage de r´epertoire Le syst`eme de fichiers. . .
. . . associe des noms `a des blocs logiques (fichiers) . . . associe des noms `a des r´epertoires venus du disque ! Montage de r´epertoire
Le montage consiste `a positionner un r´epertoire dans le syst`eme de fichier
Principe
Chargement du FCB par l’OS (disque→ RAM)
→Attribu´e `a l’utilisateur du processus Association dans le MFDau niveau logique
→Les fichiers deviennent accessibles
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Structure de contrˆole
Sur le disque
Bloc de d´emarrage→chargement de l’OS depuis une partition Bloc de contrˆole de partition :Master File Table
Bloc de contrˆole de r´epertoire ou de fichier (FCB)
Au niveau de l’OS
Table des partitions/r´epertoires mont´es Cache des r´epertoires
Table des fichiers ouverts (copie des FCB) Blocs logiques
Structure de contrˆole
Sur le disque
Bloc de d´emarrage→chargement de l’OS depuis une partition Bloc de contrˆole de partition :Master File Table
Bloc de contrˆole de r´epertoire ou de fichier (FCB) Au niveau de l’OS
Table des partitions/r´epertoires mont´es Cache des r´epertoires
Table des fichiers ouverts (copie des FCB) Blocs logiques
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Acc`es `a un fichier
Application
RAM (OS)
Cache r´epertoires Table fichiers ouverts
Disque
R´epertoire FCB
Bloc Bloc Bloc
Fichier
Le syst`eme de fichier (sur le disque) d´efinit la struc- turation des donn´ees
FCB(dir)
Le r´epertoire est mont´e : il y a un FCB qui le r´ef´erence dans la table des fichiers ouverts!
Lors du premier acc`es `a un fichier. . .
open(dir/file.ext)
? R´epertoire
acc`es disque
FCB
acc`es disque
Acc`es au fichier ouvert. . .
read(dir/file.ext)
Bloc Bloc
acc`es disque
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Acc`es `a un fichier
Application
RAM (OS)
Cache r´epertoires Table fichiers ouverts
Disque
R´epertoire FCB
Bloc Bloc Bloc
Fichier Le syst`eme de fichier (sur le disque) d´efinit la struc- turation des donn´ees
FCB(dir)
r´ef´erence dans la table des fichiers ouverts!
Lors du premier acc`es `a un fichier. . .
open(dir/file.ext)
? R´epertoire
acc`es disque
FCB
acc`es disque
Acc`es au fichier ouvert. . .
read(dir/file.ext)
Bloc Bloc
acc`es disque
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Acc`es `a un fichier
Application
RAM (OS)
Cache r´epertoires Table fichiers ouverts
Disque
R´epertoire FCB
Bloc Bloc Bloc
Fichier
Le syst`eme de fichier (sur le disque) d´efinit la struc- turation des donn´ees
FCB(dir)
Le r´epertoire est mont´e : il y a un FCB qui le r´ef´erence dans la table des fichiers ouverts!
Lors du premier acc`es `a un fichier. . .
open(dir/file.ext)
? R´epertoire
acc`es disque
FCB
acc`es disque
Acc`es au fichier ouvert. . .
read(dir/file.ext)
Bloc Bloc
acc`es disque
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Acc`es `a un fichier
Application
RAM (OS)
Cache r´epertoires Table fichiers ouverts
Disque
R´epertoire FCB
Bloc Bloc Bloc
Fichier
Le syst`eme de fichier (sur le disque) d´efinit la struc- turation des donn´ees
FCB(dir)
Le r´epertoire est mont´e : il y a un FCB qui le r´ef´erence dans la table des fichiers ouverts!
Lors du premier acc`es `a un fichier. . .
open(dir/file.ext)
? R´epertoire
FCB
Acc`es au fichier ouvert. . .
read(dir/file.ext)
Bloc Bloc
acc`es disque
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Acc`es `a un fichier
Application
RAM (OS)
Cache r´epertoires Table fichiers ouverts
Disque
R´epertoire FCB
Bloc Bloc Bloc
Fichier
Le syst`eme de fichier (sur le disque) d´efinit la struc- turation des donn´ees
FCB(dir)
Le r´epertoire est mont´e : il y a un FCB qui le r´ef´erence dans la table des fichiers ouverts!
Lors du premier acc`es `a un fichier. . .
open(dir/file.ext)
?
R´epertoire
acc`es disque
FCB
acc`es disque
Acc`es au fichier ouvert. . .
read(dir/file.ext)
Bloc Bloc
acc`es disque
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Acc`es `a un fichier
Application
RAM (OS)
Cache r´epertoires Table fichiers ouverts
Disque
R´epertoire FCB
Bloc Bloc Bloc
Fichier
Le syst`eme de fichier (sur le disque) d´efinit la struc- turation des donn´ees
FCB(dir)
Le r´epertoire est mont´e : il y a un FCB qui le r´ef´erence dans la table des fichiers ouverts!
Lors du premier acc`es `a un fichier. . .
open(dir/file.ext)
? R´epertoire
FCB
Acc`es au fichier ouvert. . .
read(dir/file.ext)
Bloc Bloc
acc`es disque
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Acc`es `a un fichier
Application
RAM (OS)
Cache r´epertoires Table fichiers ouverts
Disque
R´epertoire FCB
Bloc Bloc Bloc
Fichier
Le syst`eme de fichier (sur le disque) d´efinit la struc- turation des donn´ees
FCB(dir)
Le r´epertoire est mont´e : il y a un FCB qui le r´ef´erence dans la table des fichiers ouverts!
Lors du premier acc`es `a un fichier. . .
open(dir/file.ext)
?
R´epertoire
acc`es disque
FCB
acc`es disque
Acc`es au fichier ouvert. . .
read(dir/file.ext)
Bloc Bloc
acc`es disque
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Acc`es `a un fichier
Application
RAM (OS)
Cache r´epertoires Table fichiers ouverts
Disque
R´epertoire FCB
Bloc Bloc Bloc
Fichier
Le syst`eme de fichier (sur le disque) d´efinit la struc- turation des donn´ees
FCB(dir)
Le r´epertoire est mont´e : il y a un FCB qui le r´ef´erence dans la table des fichiers ouverts!
Lors du premier acc`es `a un fichier. . .
open(dir/file.ext)
?
R´epertoire
acc`es disque FCB
Acc`es au fichier ouvert. . .
read(dir/file.ext)
Bloc Bloc
acc`es disque
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Acc`es `a un fichier
Application
RAM (OS)
Cache r´epertoires Table fichiers ouverts
Disque
R´epertoire FCB
Bloc Bloc Bloc
Fichier
Le syst`eme de fichier (sur le disque) d´efinit la struc- turation des donn´ees
FCB(dir)
Le r´epertoire est mont´e : il y a un FCB qui le r´ef´erence dans la table des fichiers ouverts!
Lors du premier acc`es `a un fichier. . .
open(dir/file.ext)
?
R´epertoire
acc`es disque FCB
acc`es disque
Acc`es au fichier ouvert. . .
read(dir/file.ext)
Bloc Bloc
acc`es disque
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Acc`es `a un fichier
Application
RAM (OS)
Cache r´epertoires Table fichiers ouverts
Disque
R´epertoire FCB
Bloc Bloc Bloc
Fichier
turation des donn´ees
FCB(dir)
r´ef´erence dans la table des fichiers ouverts!
Lors du premier acc`es `a un fichier. . .
open(dir/file.ext)
?
R´epertoire
acc`es disque
FCB
acc`es disque
read(dir/file.ext)
Bloc Bloc
acc`es disque
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Acc`es `a un fichier
Application
RAM (OS)
Cache r´epertoires Table fichiers ouverts
Disque
R´epertoire FCB
Bloc Bloc Bloc
Fichier
Le syst`eme de fichier (sur le disque) d´efinit la struc- turation des donn´ees
FCB(dir)
Le r´epertoire est mont´e : il y a un FCB qui le r´ef´erence dans la table des fichiers ouverts!
Lors du premier acc`es `a un fichier. . .
open(dir/file.ext)
?
R´epertoire
acc`es disque
FCB
acc`es disque
Acc`es au fichier ouvert. . .
read(dir/file.ext)
Bloc Bloc
acc`es disque
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Acc`es `a un fichier
Application
RAM (OS)
Cache r´epertoires Table fichiers ouverts
Disque
R´epertoire FCB
Bloc Bloc Bloc
Fichier
turation des donn´ees
FCB(dir)
r´ef´erence dans la table des fichiers ouverts!
open(dir/file.ext)
?
R´epertoire
acc`es disque
FCB
acc`es disque
Acc`es au fichier ouvert. . .
read(dir/file.ext)
Bloc Bloc
acc`es disque
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Acc`es `a un fichier
Application
RAM (OS)
Cache r´epertoires Table fichiers ouverts
Disque
R´epertoire FCB
Bloc Bloc Bloc
Fichier
Le syst`eme de fichier (sur le disque) d´efinit la struc- turation des donn´ees
FCB(dir)
Le r´epertoire est mont´e : il y a un FCB qui le r´ef´erence dans la table des fichiers ouverts! Lors du premier acc`es `a un fichier. . .
open(dir/file.ext)
?
R´epertoire
acc`es disque
FCB
acc`es disque
Acc`es au fichier ouvert. . .
read(dir/file.ext)
Bloc Bloc
acc`es disque
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Acc`es `a un fichier
Application
RAM (OS)
Cache r´epertoires Table fichiers ouverts
Disque
R´epertoire FCB
Bloc Bloc Bloc
Fichier
turation des donn´ees
FCB(dir)
r´ef´erence dans la table des fichiers ouverts!
open(dir/file.ext)
?
R´epertoire
acc`es disque
FCB
acc`es disque
Acc`es au fichier ouvert. . .
read(dir/file.ext)
Bloc
Bloc
acc`es disque
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Acc`es `a un fichier
Application
RAM (OS)
Cache r´epertoires Table fichiers ouverts
Disque
R´epertoire FCB
Bloc Bloc Bloc
Fichier
Le syst`eme de fichier (sur le disque) d´efinit la struc- turation des donn´ees
FCB(dir)
Le r´epertoire est mont´e : il y a un FCB qui le r´ef´erence dans la table des fichiers ouverts! Lors du premier acc`es `a un fichier. . .
open(dir/file.ext)
?
R´epertoire
acc`es disque
FCB
acc`es disque
Acc`es au fichier ouvert. . .
read(dir/file.ext)
Bloc Bloc
acc`es disque
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Allocation Probl`eme
Fichiers→ blocs logiques→ blocs physiques Ü Choix des blocs physiques pour 1 fichier donn´e
Fichiers : toto.c prog.exe file.dat
Disque :
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Allocation Probl`eme
Fichiers→ blocs logiques→ blocs physiques Ü Choix des blocs physiques pour 1 fichier donn´e
Fichiers : toto.c prog.exe file.dat
Disque :
etc
Allocation Probl`eme
Fichiers→ blocs logiques→ blocs physiques Ü Choix des blocs physiques pour 1 fichier donn´e
Fichiers : toto.c prog.exe file.dat
Disque :
etc
3 m´ethodes possibles Allocation contigu¨e Allocation chaˆın´ee Allocation index´ee
Chaque m´ethode a ses avantages et inconv´enients !
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Allocation contigu¨e Principe
Ranger les blocs les uns derri`ere les autres
Fichiers : toto.c prog.exe file.dat
R´epertoire : FCB FCB FCB . . .
Disque :
prog.exe toto.c file.dat
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Allocation contigu¨e Principe
Ranger les blocs les uns derri`ere les autres
Fichiers : toto.c prog.exe file.dat
R´epertoire : FCB FCB FCB . . .
Disque :
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Allocation contigu¨e Principe
Ranger les blocs les uns derri`ere les autres
Fichiers : toto.c prog.exe file.dat
R´epertoire : FCB FCB FCB . . .
Disque : prog.exe
toto.c file.dat
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Allocation contigu¨e Principe
Ranger les blocs les uns derri`ere les autres
Fichiers : toto.c prog.exe file.dat
R´epertoire : FCB FCB FCB . . .
Disque : prog.exe toto.c
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Allocation contigu¨e Principe
Ranger les blocs les uns derri`ere les autres
Fichiers : toto.c prog.exe file.dat
R´epertoire : FCB FCB FCB . . .
Disque : prog.exe toto.c file.dat
Allocation contigu¨e Principe
Ranger les blocs les uns derri`ere les autres Avantages
3 Acc`es au bloc suivant : aucun coˆut 3 FCB : adresse bloc d´epart + taille Inconv´enients
7 Fragmentation (compactage coˆuteux) 7 Connaˆıtre `a l’avance la taille des fichiers 7 Recherche d’espace libre coˆuteux
7 Strat´egies d’allocation (BestFit, FirstFit, WorstFit) `a d´efinir
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Allocation chaˆın´ee Principe
Fichier = liste chaˆın´ee de blocs
Fichiers : toto.c prog.exe file.dat
R´epertoire : FCB FCB FCB . . .
Disque :
Allocation chaˆın´ee Principe
Fichier = liste chaˆın´ee de blocs
Fichiers : toto.c prog.exe file.dat
R´epertoire : FCB FCB FCB . . .
Disque :
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Allocation chaˆın´ee Principe
Fichier = liste chaˆın´ee de blocs
Fichiers : toto.c prog.exe file.dat
R´epertoire : FCB FCB FCB . . .
Disque :
Allocation chaˆın´ee Principe
Fichier = liste chaˆın´ee de blocs
Fichiers : toto.c prog.exe file.dat
R´epertoire : FCB FCB FCB . . .
Disque :
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Allocation chaˆın´ee Principe
Fichier = liste chaˆın´ee de blocs Avantages
3 FCB : adresse premier et dernier blocs 3 Pas de fragmentation
3 Fichiers taille quelconque Inconv´enients
7 Acc`es s´equentiel : Ne bloc→ N acc`es disques !
7 Fiabilit´e : 1 bloc endommag´e →tout le fichier est perdu 7 Espace utilis´e par les pointeurs (relativement n´egligeable)
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Allocation index´ee Principe
Rassembler tous les pointeurs dans un bloc d’index (1 bloc par fichier)
Fichiers : toto.c prog.exe file.dat
R´epertoire : FCB FCB FCB . . .
Disque :
@bloc0
@bloc1
@bloc2
@bloc3
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Allocation index´ee Principe
Rassembler tous les pointeurs dans un bloc d’index (1 bloc par fichier)
Fichiers : toto.c prog.exe file.dat
R´epertoire : FCB FCB FCB . . .
Disque :
Index
@bloc0
@bloc1
@bloc2
@bloc3
Index
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Allocation index´ee Principe
Rassembler tous les pointeurs dans un bloc d’index (1 bloc par fichier)
Fichiers : toto.c prog.exe file.dat
R´epertoire : FCB FCB FCB . . .
Disque : Index
@bloc0
@bloc1
@bloc2
@bloc3
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Allocation index´ee Principe
Rassembler tous les pointeurs dans un bloc d’index (1 bloc par fichier)
Fichiers : toto.c prog.exe file.dat
R´epertoire : FCB FCB FCB . . .
Disque : Index
@bloc0
@bloc1
@bloc2
@bloc3
Index
Allocation index´ee Principe
Rassembler tous les pointeurs dans un bloc d’index (1 bloc par fichier)
Fichiers : toto.c prog.exe file.dat
R´epertoire : FCB FCB FCB . . .
Disque : Index
@bloc0
@bloc1
@bloc2
@bloc3
Index
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Allocation index´ee Principe
Rassembler tous les pointeurs dans un bloc d’index (1 bloc par fichier)
Fichiers : toto.c prog.exe file.dat
R´epertoire : FCB FCB FCB . . .
Disque : Index
@bloc0
@bloc1
@bloc2
@bloc3
Index
Allocation index´ee Principe
Rassembler tous les pointeurs dans un bloc d’index (1 bloc par fichier)
Avantages
3 Pas de fragmentation
3 Acc`es direct (2 acc`es disque) Inconv´enients
7 1 bloc perdu par fichier
7 Taille fichier limit´ee par taille bloc
64 bits×64blocs = 512o ⇒max = 64×512o =32 Ko
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Allocation index´ee Probl`eme
Fichiers n´ecessitant plus d’un bloc d’index Exemple :
512Kio de disque, blocs de 8o (exemple non r´ealiste !)
Ü Taille de l’adresse = ?
Allocation index´ee Probl`eme
Fichiers n´ecessitant plus d’un bloc d’index Exemple :
512Kio de disque, blocs de 8o (exemple non r´ealiste !)
3 Taille de l’adresse = 219÷23 = 216= 16 bits= 2 octets Ü Nombre max d’index/bloc = ?
Notion de fichier Ouverture de fichier R´epertoires Syst`eme de fichiers Conclusion Fonctionnement Montage de r´epertoire Impl´ementation Allocation
Allocation index´ee Probl`eme
Fichiers n´ecessitant plus d’un bloc d’index Exemple :
512Kio de disque, blocs de 8o (exemple non r´ealiste !)
3 Taille de l’adresse = 219÷23 = 216= 16 bits= 2 octets 3 Nombre max d’index/bloc = 8÷2 = 4 blocs
Ü Taille max d’un fichier = ?