SE Master Chapitre1
SE Master Chapitre1
SE Master Chapitre1
1.1 INTRODUCTION :
Afin de fournir un accès efficace et pratique au disque, le SE impose un système de gestion de fichiers
(SGF) pour permettre de stocker, localiser, et récupérer facilement des données. Un SGF pose deux
problèmes de conception très différents : l’interface et l’implémentation.
Le problème de l’interface consiste à définir l’allure que devrait avoir le SGF pour l’utilisateur. Cette
tâche implique la définition d’un fichier et de ses attributs, des opérations, autorisées sur un fichier et
de la structure de répertoires organisant les fichiers.
Le problème d’implémentation consiste à créer les algorithmes et les structures de données pour
établir la correspondance entre le système logique de fichiers et les dispositifs physiques de mémoire
auxiliaire.
Le SGF lui-même est généralement composé de plusieurs niveaux différents. La figure suivante donne
un exemple d’architecture de SGF :
Programmes d’application
↓
Systèmes de fichiers logiques
↓
Module d’organisation de fichiers
↓
Système de fichiers de base
↓
Contrôle des E/S
↓
Périphériques
Le niveau inférieur, le contrôle des E/S, est constitué de drivers et des handlers (routines
d’interruption) pour transférer l’information entre la mémoire et le système de disques. On peut
considérer le driver comme un traducteur : ses entrées consistent en des commandes de haut niveau
comme « récupérer le bloc 123 ». ses sorties sont des instructions de bas niveau, spécifiques au
matériel, utilisés par le contrôleur du matériel qui relie le périphérique d’E/S au reste du système. Le
driver écrit généralement des configurations binaires spécifiques dans des emplacements spéciaux de
la mémoire du contrôleur d’E/S afin de lui indiquer sur quel emplacement du périphérique agir et
quelles actions entreprendre.
Le système de fichiers de base doit seulement émettre des commandes génériques pour le driver
approprié afin de lire et d’écrire les blocs physiques sur le disque.
Le module d’organisation de fichiers connaît les fichiers et leurs blocs logiques, ainsi que les blocs
physiques. En connaissant le type d’allocation de fichiers employé et l’emplacement du fichier, ce
module peut traduire les adresses des blocs logiques dans les adresses des blocs physiques pour que
Systèmes d’exploitation des Ordinateurs 5
le système de transfert de base les transfère. Les blocs logiques du fichier sont numérotés de 0 à N,
tandis que les blocs physiques contenant ces données ne correspondent généralement pas aux
numéros logiques, il faut donc une traduction pour localiser chaque bloc. Le module d’organisation de
fichiers comprend également le gestionnaire de l’espace libre, qui suit la piste des blocs disponibles et
les fournit au module d’organisation de fichiers quand celui-ci les demande.
Enfin le système de fichier logique utilise la structure de répertoires pour proposer au module
d’organisation de fichiers l’information dont ce dernier a besoin, pour un nom donné de fichier logique
est également responsable de la protection et de la sécurité.
Pour créer un nouveau fichier, un programme d’application appelle le SGF. Ce dernier connaît le
format de la structure des répertoires. Il lit le répertoire approprié dans la mémoire, l’actualise avec la
nouvelle entrée et le réecrit sur disque. Une fois que le répertoire a été actualisé, le SGF peut se
l’utiliser pour exécuter les E/S.
1.2 PROTECTION :
Quand on maintient de l’information dans un système informatique, l’un des principaux problèmes est
sa protection contre les dégâts (fiabilité) et les accès non autorisés (protection).
On peut fournir de la protection de plusieurs manières différentes : protection par type, protection par
groupe d’accès, … etc.
Les mécanismes de protection fournissent un accès contrôlé en limitant les types d’accès possibles
aux fichiers. On autorise ou on refuse un accès selon plusieurs facteurs, l’un d’eux est le type d’accès
demandé. On peut contrôler différents types d’opérations : Lecture, Ecriture, Exécution, Ajout,
Destruction, Enumération.
Le principal problème concernant les listes d’accès est leur longueur. Si on désire autoriser tout le
monte à lire un fichier, on doit construire une liste de tous les utilisateurs ayant le droit de le lire ; ce qui
peut constituer une tâche pénible pour le système.
LOUKAM Mourad
6
R
Fichier
W
Afin de réduire la longueur de la liste d’accès, plusieurs systèmes reconnaissant trois types
d’utilisateurs en liaison avec chaque fichier :
La protection par groupe ne peut fonctionner correctement que si l’appartenance au groupe est
contrôlée. Dans le système Unix et Windows NT, les groupes ne peuvent être chargés ou créés que
par l’administrateur du système. Avec cette classification, il faut seulement 3 bits pour définir la
protection ; chacun d’eux autorise ou interdit l’accès. Par exemple, le système Unix définit 3 champs
rwx pour respectivement : la lecture, l’écriture, et l’exécution ou maintient un champ séparé pour le
propriétaire, le groupe et les autres.
Exemple :
Propriétaire Groupe Les autres
Student.doc rwx rwx rwx
L’allocation contiguë d’un fichier est définie par l’adresse disque et la longueur , en unités blocs, du
premier bloc. Si le fichier est d’une longueur de n blocs et démarre à l’emplacement b, il occupe donc
les blocs b, b+1, b+2, …, b+n-1. L’entrée du répertoire pour chaque fichier indique l’adresse du bloc de
début et la longueur de la zone allouée au fichier. Exemple :
Systèmes d’exploitation des Ordinateurs 7
Répertoire
Exemple : Le fichier abc occupe cinq (05) blocs : b9, b16, b1, b10, b25.
Répertoire
LOUKAM Mourad
8
Il existe une autre variante importante de la méthode d’allocation chaînée : employer une table
d’allocation de fichiers (File Allocation Table : FAT) qui a été utilisée dans les systèmes d’exploitation
DOS et OS2. Celle-ci possède une entrée pour chaque bloc disque et elle est indexée par numéro de
bloc. On utilise la FAT comme s’il s’agissait d’une liste chaînée. L’entrée du répertoire contient le
numéro de bloc du premier bloc du fichier. L’entrée de la table indexée par ce numéro de bloc possède
donc le numéro de bloc suivant dans le fichier. Cette chaîne continue jusqu’au dernier bloc, possédant
une valeur spéciale de fin de fichier comme l’entrée de la table.
Répertoire
217 618
Fichier N° bloc
Test 217 339 520
618 339
Chaque fichier possède son propre bloc index, qui est un tableau d’adresse de blocs disque. La ième
entrée dans le bloc index pointe sur le ième bloc du fichier. Le répertoire contient l’adresse du bloc
index. Pour lire le ième bloc, on utilise le pointeur de la ième entrée du bloc index afin de trouver et de
lire le bloc désiré. Ce schéma est semblable à celui de la pagination.
Répertoire
Bloc index
9
16
1
10
25
Quand on crée le fichier, tous les pointeurs du bloc index sont fixés à nul. Quand le ième bloc est écrit
pour la première fois, on obtient un bloc du gestionnaire de l’espace libre et son adresse est placée
dans la ième entrée du bloc index.
Chaque fichier doit posséder un bloc d’index dont il est souhaitable qu’il soit le plus petit possible.
Cependant s’il est trop petit, il ne pourra pas ranger des pointeurs en nombre suffisant pour un grand
fichier et il faudrait un mécanisme pour traiter ce détail.
Schéma chaîné : Pour des fichiers importants, on peut chaîner les blocs d’index entre eux.
Index multiniveaux : Cette solution consiste à utiliser un bloc d’index séparé pointant sur des blocs
d’index.
Pour créer un fichier, on recherche dans la liste d’espace libre la quantité requise d’espace et on alloue
cet espace au nouveau fichier. Cet espace est ensuite supprimé de la liste. Quand un fichier est
détruit, son espace disque est ajouté à la liste d’espace libre. Mais comment implémenter la liste
d’espace libre ?. Plusieurs méthodes existent dont : le vecteur binaire et la liste chaînée.
N° bloc 0 1 2 3 4 5 6 7 8 9 …
Bit 0 0 1 1 0 1 0 0 1 1
Avantage : Il est relativement facile de trouver le premier bloc libre ou les n blocs libres consécutifs.
Inconvénient : la gestion du vecteur.
LOUKAM Mourad
10
Un système de fichiers est un disque virtuel créé par le responsable du système. Un disque peut être
partitionné en plusieurs systèmes. Chez certains constructeurs un système de fichiers peut être réparti
sur plusieurs disques. L'utilisateur ne voit que ces disques virtuels. Le superbloc contient des
informations sur l'espace utilisé dans le disque virtuel, la liste des inodes des informations sur les
fichiers réguliers. Le nom interne d'un fichier est un nombre entier appelé inode.
1/les fichiers standards que sont par exemple les fichiers texte, les exécutables, etc. C’est-`a-dire
tout ce qui est manipulé et structuré par les utilisateurs.
2/ Les fichiers spéciaux périphériques, mémoire, et autre fichiers ”physiques” ou logique. Parmi ces
fichiers , on trouve :
- Les répertoires
- Les fichiers physiques dans le répertoire /dev (dev comme devices dispositifs matériels, les
périphériques et quelques dispositifs logiques ) :
Systèmes d’exploitation des Ordinateurs 11
o Character Devices (où ou la communication ce fait octets par octets), comme les
terminaux (claviers, écrans), les imprimantes, la mémoire.
o Block devices (périphériques ou la communication ce fait par groupe d’octet appel´es
blocs) : les disques, les bandes magnétiques, etc.
1.5.2 Le superbloc
Le superbloc décrit l'état d'occupation des secteurs du disque virtuel, alloués au système de fichiers.
Lorsqu'on cherche à écrire sur un disque, il est en effet indispensable de connaître la liste des
emplacements libres et occupés. Il faut donc construire et tenir à jour une carte d'occupation des lieux.
Les inodes sont les noms internes des fichiers reconnus sous la forme de nombres entiers. Le
superbloc maintient également la liste des noms libres utilisables, indispensable à la création de
nouveaux fichiers.
Parmi les informations les plus importantes que contient le superbloc, on retiendra :
Remarquons que ces informations déterminent le nombre maximum de fichiers que l'on peut créer et
la taille du système de fichiers.
s_free: la liste des blocs libres.
s_inode: la liste des inodes libres
s_tfree: le nombre de blocs libres
s_tinode: le nombre d'inodes libres
Ces indications sont indispensables à l'allocation de l'espace et des fichiers. L'utilisateur peut la
consulter au moyen de la commande df.
Le superbloc est chargé et verrouillé en mémoire au moment du démarrage ou lorsqu'un système de
fichiers est monté (mount) et devient visible pour les utilisateurs. Il est constamment remis à jour et
sauvegardé régulièrement sur disque ou volontairement par la commande sync.
i_uid, le numéro de l'utilisateur qui est son nom interne dans le système.
i_mode, les droits d'accès sur le fichier.
i_size, sa taille en blocs.
toutes les informations sur sa date de création, de modification et de dernier accès.
un pointeur permettant, comme nous allons le voir, d'accéder à son contenu.
On y trouve également des informations indiquant s'il s'agit d'un fichier, d'un répertoire ou de tout autre
fichier spécial. L'utilisateur consulte son contenu, pour la part qui lui est accessible, au travers des
protections, au moyen de la commande ls qui liste les informations sur les fichiers contenus dans un
répertoire.
LOUKAM Mourad
12
On utilise un adressage direct pour accéder au fichier s'il est court, de l'ordre de dix blocs, un
adressage indirect pour les fichiers plus longs, comme schématisé dans la figure . La i_list comme le
superbloc est chargée en mémoire et régulièrement remise à jour sur disque.
Ce simple exemple montre la nécessité de préserver l'intégrité de la i_list. On notera également que
l'accès serait extrêmement lent si celle-ci ainsi que le superbloc n'étaient pas chargés dans la
mémoire de l'ordinateur. Ce n'était pas le cas des systèmes Multics connus par le passé et dont Unix
est dérivé. Seul l'effondrement du prix des mémoires a permis à Unix de devenir un système
efficace. Auparavant il souffrait des mêmes défauts que son prédécesseur et cette méthode d'accès
était très lente.
Au démarrage de tout système une procédure analyse le système de fichiers pour vérifier la
cohérence des informations inscrites dans le superbloc et la i_list. Tout fichier ou morceau de fichier
dont le chemin d'accès ne peut être retrouvé est placé dans un répertoire spécial appelé lost+found!
Cette vérification se déroule en cinq phases :
Ceci peut prendre un certain temps si la capacité en disques est élevée. Les procédures de
démarrage les plus évoluées sont capables de s'apercevoir si un système a été précédemment arrêté
proprement. Elles évitent alors cette étape fastidieuse.
Les constructeurs de systèmes informatiques sont conscients de la fragilité des systèmes de fichiers.
Certains ont introduit une couche logicielle entre la représentation Unix des fichiers et la structure
physique sur le disque (voir figure) qui réalise un certain nombre de fonctionnalités supplémentaires
cachées. Par exemple la i_list comme le superbloc sont dupliqués un certain nombre de fois de façon
à éviter leur perte. Il devient possible de reconstituer ces informations fondamentales à partir de
leurs différentes images.
LOUKAM Mourad