Académique Documents
Professionnel Documents
Culture Documents
Ces informations ne doivent pas disparaître lorsque le processus qui les utilise se termine
stocker des informations dans des fichiers sur le disque dur ou autres supports
d’une façon permanente
La manière dont ils sont structurés, nommés, utilisés, protégés et implémentés sont des points
majeurs de la construction du SE.
4
L’organisation des fichiers
Le concept de fichier
Le concept de repertoire
Le concept d’un systéme de fichiers
Le concept de fichier
5
Définition
Dans un fichier, on peut écrire du texte, des images, des calculs, des programmes.
Certains fichiers sont générés par le système ou certains outils comme les
compilateurs.
Chaque fichier est identifié par un nom auquel on associe un emplacement sur le
disque et possède un ensemble de propriétés : ses attributs.
Le concept de fichier
6
Affectation des noms de fichiers
Nom.extension
Les chiffres et les caractères spéciaux sont autorisés pour certains systèmes de fichiers.
UNIX différencie les minuscules des majuscules, DOS ne fait pas de différence.
L'extension peut être de taille fixe, comme dans MS-DOS ou variable comme c'est le cas
d'Unix/Linux ; obligatoire ou non.
Exemple: le compilateur C rejettera le fichier prog.txt même si son contenu est un programme C.
7 Le concept de fichier
Types de fichiers
Fichiers spéciaux caractères : liés aux E/S et permettent de modéliser les périphériques
d’E/S série tels que les terminaux, imprimantes et les réseaux
Les fichiers ordinaires sont en général des fichiers ASCII ou des fichiers binaires.
si le fichier est utilisé en E/S par un Ils ont une structure interne
programme, il est alors facile de faire Il existe une commande permettant
communiquer la sortie du programme d’avoir des indications sur les fichiers
avec l’entrée d’un autre programme. d’un répertoire :
Exemple : le tube (pipe). file * (dans le répertoire courant)
9 Le concept de fichier
Types de fichiers
Tous les SE associent les informations complémentaires pour chaque fichier qu’on
appelle attributs des fichiers (exp : date, heure de création, taille du fichier, etc..).
Indicateur fichier caché 0 pour fichier normal, 1 pour ne pas l‘afficher dans les listages
Indicateur fichier temporaire 0 pour fichier normal, 1 pour supprimer le fichier lorsque le processus se termine
close
unlink
13 Le concept de fichier
Services Posix pour un fichier
Dans le cas d'Unix/Linux, les principaux appels système Posix relatifs aux fichiers sont :
read() pour la lecture d’un fichier. Tous ces appels systèmes peuvent être
fd=open("exemple.c", O_CREAT|O_WRONLY);
lus = read(fd, buffer, taille);
15 Le concept de répertoire
Définition
Le répertoire peut être considéré comme une table sur le support permettant de référencer
tous les fichiers existants avec leurs noms et leurs attributs principaux qui peuvent varier d'un
système d'exploitation à un autre.
le nom
le type
la taille
le propriétaire
la protection
la date de création
Deux possibilités:
Chaque entrée contient le nom du fichier, ses attributs et ses adresses sur le disque où les
données sont stockées.
Chaque entrée contient le nom du fichier et un pointeur sur une structure contenant ses
attributs et ses adresses sur le disque.
17 Le concept de répertoire
Les chemins d’accès
. répertoire courant
19 Le concept de répertoire
readdir() lire les entrées d'un répe
rewindir() placer le pointeur d'un répertoire.
Services Posix sur les répertoires
link() créer une entrée dans un répertoire.
mkdir() créer un répertoire.
rmdir() supprimer un répertoire vide. unlink() effacer une entrée d'un répertoire.
Les systèmes d'exploitation modernes adoptent une structure arborescente pour représenter
le système de fichiers.
Les nœuds de l'arbre sont des répertoires et les feuilles sont des fichiers
21
Le Système de Gestion de Fichiers (SGF)
La notion d’un SGF
En effet, il est chargé d’organiser et d’optimiser l’implantation des fichiers sur les différents
supports.
Une telle gestion des fichiers permet de traiter et de conserver des quantités importantes de
données ainsi que de les partager entre plusieurs programmes informatiques.
Il offre à l’utilisateur une vue abstraite sur ses données et permet de les localiser à partir d’un
chemin d’accès.
23 Les fonctionnalités d’un SGF
Le SGF joue un rôle primordial dans un système d’exploitation car il doit gérer la
plupart des informations des utilisateurs et du système lui-même.
Il a comme fonctionnalités :
Localisation des fichiers : chaque fichier est décrit par un ensemble d'informations qui
permettent d'identifier son emplacement (nom, adresse, etc.).
Partage des fichiers : assurer une utilisation d'un même fichier / répertoire / disque par des
utilisateurs différents.
Protection des fichiers : le SGF doit assurer la sécurité et la confidentialité des données
surtout en cas de partage. Des droits d'accès sont ainsi associés à chaque fichier pour
assurer une protection contre les accès interdits.
25
Les types d’allocation de l’espace disque
Allocation contiguë
Allocation chaînée
Allocation indexée
26 Types d’allocation de l'espace disque
Un fichier physique est constitué d'un ensemble de blocs physiques.
L’allocation de ces blocs au fichier représente l’une des principales fonctions d’un
SGF.
le coût de stockage
l’allocation contiguë
l’allocation chaînée
l’allocation indexée
28 Allocation contiguë
La méthode d'allocation contiguë consiste à stocker chaque fichier dans une suite de blocs
consécutifs.
Pour chaque fichier à enregistrer, le système recherche une zone suffisamment grande pour
accueillir le fichier.
Chaque fichier est ainsi décrit par l'adresse disque du premier bloc et sa taille.
Les adresses des différents blocs d'un fichier sont obtenues par simple addition.
29 Allocation contiguë
Avantages
Performance excellente (la rapidité de l’accès): le fichier peut être lu en une seule opération
(limite les déplacements de la tête le lecture/écriture).
Inconvénients
un fichier est amené à augmenter de taille, par conséquent il faut prévoir de l’espace
libre après le dernier secteur alloué.
Si le fichier est agrandi, il faudra le déplacer pour trouver un nouvel ensemble de blocs
consécutifs de taille suffisante.
30 Allocation contiguë
Inconvénients
si on prévoit trop peu d’espace libre, le fichier risque de ne pas pouvoir être
étendu.
Ces blocs peuvent être dans n'importe quel emplacement sur le disque.
Le dernier bloc d'un fichier contient un pointeur vers le premier emplacement libre.
32 Allocation chainée
Avantages
Elimination du problème de fragmentation externe: pas d’espace perdu
Tous les blocs peuvent être utilisés
Inconvénients
L’accès au fichier est totalement séquentiel, on doit toujours commencer le parcours du
fichier à partir du début.
La perte d’un chaînage entraîne la perte de tout le reste du fichier. Pire encore, il suffit
qu’une valeur soit modifiée dans un pointeur pour qu’on se retrouve dans une autre zone
de la mémoire.
33 Allocation indexée
Ce système d’allocation utilise une table d’index pour allouer les blocs au fichier.
Ainsi, cette table contient la liste des pointeurs des blocs alloués au fichier.
34 Allocation indexée
De cette manière, les informations sur les numéros de blocs peuvent être obtenue à tout
moment.
Ceci permet d’accéder directement à chaque bloc du fichier sans être obligé d’accéder au
bloc précédent.
35 Allocation indexée
Avantages
Inconvénients
MS-DOS utilise la FAT (File Allocation Table) pour y conserver les chaînages entre
les blocs.
Windows NT utilise la MFT (Master File Table) associé au système NTFS (New
Technology File System),
Approche statique utilise une table de bits (vecteur de bits n blocs) comportant autant
de bits que de blocs sur le disque.
A chaque bloc du disque, correspond un bit dans la table, positionné à 1 si le bloc est
occupé, à 0 si le bloc est libre (ou vice versa).
0 1 2 N-1
……………
Cette solution est utilisée pour trouver n blocs contigus, elle est utilisée dans les systèmes :
NTFS, ext2fs
39 La gestion de l’espace libre sur le disque
Liste chaînée
Tous les blocs libres sont liés ensemble par des pointeurs. 11100011100111100
occupé libre
40
Le SGF sous Unix/Linux
41 Le SGF sous Unix
icônes
Un fichier Unix est une suite finie de bytes (octets).
Interface graphique
Un fichier est matérialisé par une inode et des blocs noms
symboliques
du disque. Gestion des catalogues
descripteurs
C’est l’inode qui définit les fichiers avec un
Opérations d’accès
ensemble d’informations (taille, dates,
i-nodes
localisation…). Conservation des fichiers
adresses
physiques
disque
42 Le SGF sous Unix
Les inodes
Attributs
Un nœud d’index est constitué de:
inode
43 Le SGF sous Unix
Les inodes
Attributs
Cette structure contient les attributs suivants :
d’autres entrées contiennent l’adresse d’autres blocs (on parle alors de bloc
d’indirection) :
une entrée pointe sur un bloc d'index qui contient 128 ou 256 pointeurs sur bloc de
données (simple indirection)
une entrée pointe sur un bloc d'index qui contient 128 ou 256 pointeurs sur bloc
d'index dont chacun contient 128 ou 256 pointeurs sur bloc de données (double
indirection)
une entrée pointe sur un bloc d'index qui contient 128 ou 256 pointeurs sur bloc
d'index dont chacun contient 128 ou 256 pointeurs sur bloc d'index dont chacun
45 Le SGF sous Unix
Attributs
Bloc de données
Adresses
blocs
Bloc d’indirection
simple
inode
Bloc d’indirection
double
Bloc d’indirection
triple
46 Le SGF sous Unix
Les inodes
bloc de 1 KO
= 1024 / 2
= 512 entrées.
49 Le SGF sous Unix
L’allocation est réalisée comme suit : 10 blocs de données sont en accès direct pointés par
Le niveau INDIRECT_1 permet d’allouer 512 blocs. Il reste 16374 – 512 = 15862 blocs de
Le niveau INDIRECT_2 permet d’allouer au maximum 5122 blocs de données ce qui est
Tous les blocs restants sont donc repérés à partir de ce niveau. Il faut déterminer jusqu’à
quelle profondeur. On peut écrire que 15862 = 512 * 30 + 502, nécessite donc 31 blocs
50 Le SGF sous Unix
BD1
Attributs
BD2
BD11
Adresses
512 blocs de
blocs BD10
données
BD522
30*512 blocs
de données
inode
INDIRECT1
512 entrées
INDIRECT2-1
INDIRECT2-30
Non utilisé
INDIRECT2
512 entrées INDIRECT2-31
51 Le concept de fichier
Exemple: Ecrire un programme qui permet de calculer et afficher le nombres de caractères d'un
fichier ASCII (Utiliser n'importe quel fichier du répertoire).