UNIX File System

Download Report

Transcript UNIX File System

Système de fichiers
Ahmed Serhrouchni
1
Plan
• Fichier: les concepts
• Système de gestion de fichier
• Exemple le système de fichier UNIX
2
Fichier: Concept
• Espace d’adresse logique contiguë
• Types:
– Data
• numérique
• caractère
• binaire
– Programme
3
Fichier: Structure
• Sans - séquence de mots ou de bytes
• Structure de données simple
– Lignes
– Longueur fixe
– Longueur variable
• Structures de données Complexes
– Document avec format spécifique
• La décision revient:
– Au système d’exploitation
– Ou au Programme
4
Fichier: Attribut
• Nom – sous forme lisible
• Type – pour permettre au système de supporter plusieurs
types
• Location – adresse pour localiser le fichier sur le
périphérique
• Taille – Taille courante du fichier
• Protection – contrôle qui peut lire, écrire, exécuter
• heure, date, et l’identification de l’utilisateur– données
pour la protection, securité, et l’administration
• Ces Informations sur le fichier sont contenus dans une
structure qui est maintenue dans le disque
5
Fichier: Opérations
•
•
•
•
•
•
•
Create
Write
Read
file seek – repositionne dans le fichier
Delete
Truncate
Open(Fi) – recherche la structure sur le disque de
l’entrée Fi, et place le contenu de cette entrée en
mémoire
• Close (Fi) – place le contenu de cette entrée qui est
en mémoire vers la structure sur le disque
6
Fichier: accès
• Plusieurs éléments de données ont besoin
d’être gérés pour l’accès au fichier:
– pointeur de fichier: pointe sur la dernière
position en read/write, par processus qui a
ouvert le fichier
– Compteur du nbr d’ouveture du fichier
– Localisation du fichier sur le disque
– Droits accès : par processus
7
Fichier: verrouillage en ouverture
• Fournit par certains systèmes d’exploitation
et systèmes de fichier
• Médiateur pour accéder à un fichier
8
Fichier: Types, Nom, Extension
9
Fichier: méthodes d’accès
• Accès Sequentiel
read next
write next
reset
no read after last write
(rewrite)
• Accès directe
read n
write n
position to n
read next
write next
rewrite n
n = relative block number
10
Fichier: accès séquentiel
11
Fichier: Simulation de l’accès séquentiel sur accès direct
12
Fichier: exemple d’un index de fichier relatif
13
Fichier: opérations sur les répertoires
•
•
•
•
•
•
Recherche d’un fichier
Créer un fichier
Détruire un fichier
Lister un répertoire
Renomer un fichier
Parcourir un système de fichier
14
Fichier: l’organisation des répertoires (logiquement)
• Efficacité – localisation rapide d’un fichier
• Nommage – commodité pour l’utilisateur
– Deux utilisateurs peuvent avoir un même nom
pour deux fichiers différents
– Le même fichier peut avoir plusieurs noms
différents
• Groupage – groupage logique de fichiers sur
la base de propriétés, (exp., tous les doc.,
tous les jeux, …)
15
Fichier: un niveau de répertoire
• Un simple répertoire pour tous les utilisateurs
Problèmes de nommage et de groupage
16
Fichier: deux niveaux de répertoire
• Séparation du répertoire pour chaque utilisateur
•Path name
•Possibilité de même nom pour des utilisateurs différents
•Recherche efficace
•Pas de capacité de groupage
17
Fichier: arbre structuré de répertoire
18
Fichier: arbre structuré de répertoire
• Recherche efficace
• Capacité de groupage
• Répertoire courant (working directory)
– cd /spell/mail/prog
– type list
19
Fichier: arbre structuré de répertoire
• Absolu ou relatif path name
• Création d’un nouveau fichier se fait dans le
répertoire courant
• Détruire un fichier
rm <file-name>
• Création d’un nouveau sous répertoire dans
le répertoire courant
mkdir <dir-name>
20
Fichier: répertoire en Graphe Acyclique
• Partage de répertoire et de fichiers
21
Fichier: répertoire en graphe générale
22
Fichier: Montage du système de fichier
• Le SF doit être monté avant d’être
accessible
• UN SF non monté (Fig. 11-11(b))
est monté à un point de montage
23
(a) Existante. (b) Partition non monté
24
Point de montage
25
Partage de fichier
• Le partage de fichiers sur un système multi
utilisateurs est des fois nécessaire
• Le partage doit être conforme à un schéma de
protection
• Sur un systeme distribué, les fichiers doivent être
partagés en réseau
• Network File System (NFS) est samba sont des
méthodes de partage de fichiers distribuées
26
Partage de fichier – Utilisateurs Multiple
• User IDs identifie les utilisateurs, permet la mise
en oeuvre des permissions et protections
• Group IDs permet l’association d’un utilisateur
à un groupe, permission d’accès aux membres
d’un groupe
27
Listes d’accès et Groupes
• Mode d’accès: read, write, execute
• Trois classes d’usagers
a) owner access 7
b) group access 6
c) public access 1
owner
chmod
group
761
RWX
 111
RWX
 110
RWX
 001
public
game
28
Structure du SF
• Structure du SF
– Unité logique de stockage
• LE SF réside sur la mémoire secondaire
(disque).
• SF organisé en couches.
• File control block –structure de stockage
contient les informations sur un fichier.
29
SF de fichiers en couches
30
Structure: File Control Block
31
Structures du SF en mémoire
• Les figures suivantes illustres les structures
nécessaires fournit par l’OS
• La figure (a) réfères un fichier ouvert.
• La figure (b) réfères un fichier en lecture.
32
Structures du SF en mémoire
33
Virtual File Systems (VFS)
ou
Système de Fichier Virtuel
• Le VFS une méthode orienté objet pour la
mise en œuvre d’un SF.
• VFS fournit une interface système unique
(API) pour différents types de SF.
34
Vue Schématique d’un VFS
35
Implantation des répertoires
• Liste Linéaire des noms de fichiers avec des
pointeurs sur les blocs de données
– simple pour le traitement
– Consomme bcp. de tps d’exécution
• Table de hachage– liste linéaire avec une structure
de donnée avec hachage.
– Recherche rapide
– collisions – deux noms de fichiers peuvent donner la
même localisation
– Taille fixe
36
Méthodes Allocation
• Une méthode allocation réfère comment allouer
les blocs de données aux fichiers :
• Allocation Contiguë
• Allocation avec lien
• Allocation indexée
37
Allocation Contiguë
• Chaque fichier occupe un ensemble de blocs
contigu sur le disque.
• Simple – seulement le début de la location
(block #) et la longueur (nombre de blocs)
sont nécessaires.
• Gaspillage d’espace (stockage dynamique –
problème d’ allocation ).
• Les fichiers ne peuvent augmenter de taille.
38
Allocation Contiguë d’espace disque
39
Systèmes basé sur des extensions
• Certains SF nouveau (exp. Veritas File System)
utilise un schéma d’allocation contiguë modifié.
• « Extent-based file systems » alloue des blocs
dans une extension.
• une extension un ensemble de bloc de disque
contiguë. Un fichier consiste en une ou plusieurs
extension.
40
Allocation liée
• Chaque fichier est désigné par une liste de blocs
sur le disque : un bloc de la liste peut être situé
n’importe où sur le disque.
bloc
=
pointeur
41
Allocation liée
• Simple – besoin uniquement du début de la liste
• Pas d’espace pour la gestion système – aucun
gaspillage d’espace
• Pas d’accès aléatoire
42
Allocation basée sur les liens
43
File-Allocation Table
44
Allocation par table d’index
• Tous les pointeurs sont la table d’index « index
block ».
index table
45
Exemple d’allocation basée sur la table d’index
46
Allocation Indexée
• Besoin de table d’index
• Accès aléatoire
• Accès dynamique sans fragmentation
externe, surcharge avec la table d’index.
47
Schéma: exemple UNIX (4K bytes par block)
48
Gestion de l’espace libre
0 1
2
bit[i] =

• Bit vector (n blocks)
n-1
…
0  block[i] libre
1  block[i] occuppé
Calcul du numéro de Bloc
(nombre de bits par mot) *
(nombre de 0-valeur du mot) +
offset du premier 1 bit
49
Gestion de l’espace libre
• Bit map requires extra space. Example:
block size = 212 bytes
disk size = 230 bytes (1 gigabyte)
n = 230/212 = 218 bits (or 32K bytes)
• Facile d’avoir des fichiers contiguë
• liste (free list)
– Pas de gaspillage d’espace
• Groupage
• comptage
50
Liste liée des espaces libres sur le disque
51
Le système de fichier Unix
• UNIX
– L’un des systèmes le plus populaire depuis 1969
– Ecris en langage C avec un petit noyau
• Le système de fichier Unix
– Structure globale pour le stockage et contrôle des données sur le
système.
– La caractéristique la plus signifiante du système UNIX
52
Vue globale des fichiers UNIX
• Tout est considéré comme fichier et tout fichier est
une suite d’octets (aucune structure)
• Quatre types de fichier
– régulier: ASCII files
– répertoire: contient une liste de noms de fichiers avec
un pointeur sur leur inode
– spéciale: périphérique - imprimante, terminal
– pipe: FIFO
• inode: index node représente un fichier. Tout accès
à un fichier doit faire usage des informations de
l’inode.
53
Structure INODE
• Information de gestion et d’adressage physiques
du fichier :
–
–
–
–
–
–
–
–
–
file mode
count of hard links
owner id
group id
time of last file access
time of last file modification
time of last inode modification
file size
file addresses
54
Adresses des blocks de données dans un INODE
• Block comme unité d’adresse de base,
BLOCKSIZE est constant
• 13 pointeurs directe ou indirecte sur les blocks qui
contiennent les données du fichier
• Pointeurs 0-9: adresses directe des blocks
contenant les données du fichier
• Pointer 10: adresse indirecte simple, vers des
blocks qui contiennent les adresses vers les blocks
qui contiennent les données du fichier
• Pointer 11: adresse double indirection …
• Pointer 12: adresse triple indirection …
55
Adresses des blocks de données dans un INODE
Direct block addresses
000 001
…….
009 010 011 012
Indirect block addresses
Double indirect
block addresses
Triple indirect
block addresses
File data blocks
56
Adresses des blocks de données dans un INODE
• Taille du fichier: blocksize = 1K, adresse du bloc est sur
quatre octets en mémoire (1024 / 4 = 256 adresses de blocs
dans un bloc):
–
–
–
–
Adresse directe de bloc: 10K
Adresse indirecte de bloc : 256K
Adresse double indirecte de bloc : 256 * 256K = 64M
Adresse triple indirecte de bloc : 256 * 64M = 16G
• adresses pour les fichiers spéciaux: seulement les deux
premiers pointeurs sont utilisés: numéro du contrôleur,
numéro du périphérique (major et minor number)
• Adresses des PIPEs sont limités à 10K
57
Vue externe d’un SF
root ( / )
bin
vi
hello.c
dev
etc
junk
ls.tmp
user
hello
tty1 mto tty2 null
58
Vue interne d’un SF
Block 0
1
2
.
.
.
FD-1
FD
.
.
.
T
Boot Block
Super Block
i-list Blocks
……
Last i-list Blocks
First Data Block
Data Blocks
Total Blocks in File System
59
Vue interne d’un SF
• Boot Block: le premier bloc du SF UNIX, contient
le programme boot et d’autres informations
d’initialisation ou non utilisée.
• Super Block: le second bloc, contient l’ensemble
des informations spécifiques sur le SF
• i-list Blocks: liste des inodes pour le SF, contigu
au super block. Le nombre d’inodes est spécifié by
par l’administrateur système
• Data Blocks: immédiatement après la i-list et
occupe le reste des blocs.
60
Organisation des Blocs libres
• Tous les blocs libres sont dans la chaîne des freeblock.
• Dans le superbloc l’entrée s_free[0] est la tête de
chaîne des free-block est pointe vers la suivante
adresse des free-block.
• Structure du bloc adresse des Free-block:
struct {
int df_nfree;
d_addr_t df_free[NICFREE];
}
61
Structure des Blocs libres
s_nfree
s_free[0]
s_free[1]
……
s_free[49]
df_nfree
df_free[0]
df_free[1]
……
df_free[49]
df_nfree
df_free[0]
df_free[1]
……
df_free[49]
df_nfree
df_free[0]
df_free[1]
……
df_free[49]
df_nfree
df_free[0]
df_free[1]
……
df_free[49]
62
Appels systèmes du SF UNIX
• 19 appels systèmes en 7 catégories:
Return Assign Set
file
inodes file
desp.
attr.
open creat
close link
creat unlink
pipe
dup
Process Change Modify
input/ file
view of
output system file
system
chown read
chmod write
stat
lseek
fstat
mount chdir
umount chroot
Use
namei
algorithm
open creat
mknod chdir
chroot chown
chmod stat
mount umount
63