Vous êtes sur la page 1sur 64

Chapitre 2 :Système de gestion de fichiers

 Introduction

 La notion de fichier logique

 La notion de fichier physique : allocation du support


de masse

1
Introduction
❑ La mémoire centrale est une mémoire volatile

MC
UE

❑Il faut stocker les données devant être conservées au delà de l'arrêt de la
machine sur un support de masse permanent

➢ l'unité de conservation sur le support de masse est le fichier.

2
Niveau utilisateur

Les données sont organisées selon les besoins de l’utilisateur

Fichier logique

Interface : fonctions du SGF


Niveau système Niveau Système ou physique (Système de Gestion de Fichiers) :

➢ allocation des fichiers sur le support de masse

➢ répertoire

Fichier Physique

3
❑ Le système de gestion de fichiers (SGF) ou (file system en anglais) est la partie la plus visible d’un
système d’exploitation qui se charge de gérer le stockage et la manipulation de fichiers sur une unité de
stockage : partition, disque, CD, disquette.

❑ Un SGF a pour principal rôle de gérer les fichiers et d’offrir les primitives pour manipuler ces fichiers.
Il effectue généralement les tâches suivantes :

✓ Fournit une interface conviviale pour manipuler les fichiers (vue fournie à l’utilisateur).

✓ Il s’agit de simplifier la gestion des fichiers pour l’utilisateur (généralement, l’utilisateur fournit
seulement les attributs nom et extension du fichier, les autres attributs sont gérés implicitement
par le SGF).

✓ Cette interface fournit la possibilité d’effectuer plusieurs opérations sur les fichiers.

✓ Ces opérations permettent généralement d’ouvrir, de fermer, de copier, de renommer des


fichiers et des répertoires.

✓ La gestion de l’organisation des fichiers sur le disque (allocation de l’espace disque aux fichiers).

✓ La gestion de l’espace libre sur le disque dur

4
Introduction : un exemple
Programme
Pour les élèves instructions
Lire(nom_élève);
Lire(note_examen); Fichier logique : suite d’enregistrements
Écrire(table); mon_fichier
fait
Sauvegarder(mon_fichier) Ali Salah Mohamed Youssef
12 20 09 15

ALI 12

Salah 20 Programme
Mohamed 09 données

Youssef 15 Fichier physique


100100010000 Structure selon
Allocation

fichier_notes
5
Fichier logique
❑ Le fichier logique est la vue de l’utilisateur de l’ensemble des données mémorisées sur le support de
masse.
❑ Le fichier logique est :
- un type de donnée (programmation)
- un ensemble de données groupées sous forme d’enregistrements
❑ En programmation, un fichier logique est un type de donnée sur lequel peuvent être appliquées
des opérations spécifiques.

Programme ;
Représentation du fichier interne au programme
fichier: fileofelement

c r é e r ( f i c h i e r, m o d e ) Liaison via le SGF avec le fichier physique


o u v r i r ( f i c h i e r, m o d e ) Liaison f i c h i e r avec fichier_notes

fermer(fichier)
detruire(fichier) Rupture de la Liaison avec le fichier physique

6
❑ Un fichier logique est un ensemble d'enregistrements, désigné par un nom et accessible via des fonctions
d'accès.

Nom logique : mon_fichier


Typeelement=record
fonctions d'accès:
nom-eleve:char; ✓ lire(enregistrement)
note: entier; ✓ écrire(enregistrement)
✓ insérer(enregistrement)
end;
✓ supprimer(enregistrement)

Enregistrement
Ali Salah Mohamed Youssef
12 20 09 15 Organisation définissant sa structure logique
: le mode d’accès
mon_fichier:fileofelement

7
Fichier à mode d'accès séquentiel
❑ Les enregistrements du fichier ne peuvent être accédés que les uns à la suite des autres :
➢ Ouverture du fichier : positionne sur le premier enregistrement
➢ Opération de lecture : délivre l'enregistrement courant et se positionne sur le suivant
➢ Opération d’ajout : obligatoirement en fin de fichier

Accès à l'enregistrement 3 :
Ali Salah Mohamed Youssef il faut lire d'abord l'enregistrement 1,
12 20 09 15 puis l'enregistrement 2.

Lecture 1 Lecture 2 Lecture 3 Ajout


Fin de fichier

8
Fichier à mode d'accès direct
❑ Un enregistrement est accédé en fonction de sa position relative dans le fichier :
➢ Une opération de lecture, écriture, ajout ou destruction d’enregistrement spécifie le numéro i
(position relative) de l’enregistrement accédé
➢ Une opération spécifique de déplacement permet de pointer l’enregistrement i

Ali Salah Mohamed Youssef


Accès à l'enregistrement 3
12 20 09 15
read(3,enregistrement)

ou

sek(3)
read(enregistrement)

9
Exemple : les fichiers en langage pascal

Program acces_fichiers
enrg_note= record nom_eleve : str ing;
note : integer;
end; Enregistrement
t_fichier_notes=file of enrg_note;
v a r m o n _ f i c h i e r : t_ f ic h i e r_ n o t e s ; Déclaration fichier logique
begin
a s s i g n ( m o n _ f i c h i e r, ‘ f i c h i e r _ n o t e s ' ) ;
reset(mon_fichier); ( * o u vr ir l ef ic hier * ) Mise en correspondance
While not eof(nom_fichier)do
( * p a r c o u r i r l e s é l é m e n t s d u f i c h i e r – accés séquentiel*)
begin
g e t( mon f i c h i e r ) ;
end;
( * a c c è s d i r e c t : a l l e r d i r e c t a l ’ é l é m e n t 3 *)
s e k ( m o n _ f i c h i e r, 3 ) ;
get(mon_fichier);
(*fermeture automatique en fin de programme*)
end.

10
Fichier physique
Notions préliminaires
1. Structure d’un disque dur :

❑ Plateaux :

✓ un disque dur est usuellement constitué de plusieurs plateaux coaxiaux entraînés en rotation.
Chaque plateau comporte deux faces.
✓ Une tête de lecture/écriture par face est présente.

❑ Chaque face est divisée en :

✓ Secteurs : découpage longitudinal ;


✓ Pistes : découpage circulaire ;

❑ Cylindre : ensemble de pistes de même numéro situées sur tous les plateaux.

❑ Cluster (ou bloc) :


✓ Le cluster est la plus petite unité de disque que le système d’exploitation est capable de gérer.
✓ Un cluster est constitué d’un ou plusieurs secteurs, ainsi plus la taille d’un cluster est importante,
moins le système d’exploitation aura d’entités à gérer.
11
structure d’un disque dur
2. Géométrie du disque
❑ Nombre de pistes par cylindre = nombre de têtes de lecture/écriture.
❑ Nombre de secteurs du disque = Nombre de secteurs / piste x nombre de pistes/ cylindre x nombre
de cylindre = Nombre de secteurs / piste x nombre de têtes de lecture/écriture x nombre de
cylindre
❑ Taille d’une piste= taille d’un secteur x nombre de secteur /piste
12
❑ Taille d’un cylindre = taille d’une piste x nombre de têtes de lecture/écriture
❑ Taille d’un disque = taille d’un cylindre x nombre de cylindre par disque

Exemple d’une structure d’un disque

13
Exercice d’application :
Soit un disque dur magnétique possédant les caractéristiques suivantes :
• 6 plateaux
• 2048 pistes par face, 18 secteurs par piste, 512 octets par secteurs;
Questions :
1. Calculer la taille du cylindre
2. Calculer la capacité totale du disque

Réponse :

1. Taille cylindre = 12 (nombre de tète) x 18 (nombre de secteur /piste) x 512 (taille d’un secteur)
= 110592 octets environ 110 ko

2. la capacité totale du disque ?


6 plateaux (12 faces)
2048 pistes par face 2048 cylindre par disque

➢ Capacité = 12 x 2048 x 18 x 512


= 226 492 416 environ 226 Mo, c'est un très petit disque²

14
Remarque :

15
3. Adresse d’un secteur

❑ Adresse d'un secteur : n°face (tète) , n°cylindre, n°secteur

Cylindre : ensemble des pistes accessibles sans


déplacement des têtes
Moteur
tête de lecture/écriture

plateau

Face : 20 à 1500 pistes

Piste : ensemble de secteurs (4 à 32)


Alimentation
Secteur : plus petite unité d'information accessible (32 à 4096 octets)

16
❑ On peut adresser un secteur de deux manières :

✓ Par son adresse physique : triplet cylindre-tête-secteur ( CHS, Cylinder-Head-Sector).

✓ Par son adresse logique (LBA, Logical Block Address) : un numéro compris entre 0 et le
nombre total de secteurs du disque.

❑ le système de gestion de fichiers fournit une vue logique du disque permettant de faire abstraction des
propriétés physiques des dispositifs de stockage.

❑ La conversion d’adresses dans les deux sens est possible à condition de connaître la géométrie du
disque

LBA = ( numéro cylindre x nombre de tète + numéro tète ) x Nombre


de secteurs / piste + numéro de secteur - 1

17
18 Adressage d’un secteur
TD 1 Systèmes d’exploitation I

Exercice 1 :
On considère un disque dure avec les caractéristiques suivantes : 10 têtes de lecture/
écriture,
8 cylindres, 64 secteurs par pistes. La taille d’un secteur est égale à 256 octets.
Remarque : pour tous les calculs les formules et les applications numériques sont
exigées.
•Calculer la taille d’un cylindre?
•Calculer la taille totale de ce disque?

Exercice 2 :
On considère un disque dure avec les caractéristiques suivantes : 10 têtes de lecture/
écriture, 1024 cylindres, 63 secteurs par pistes. La taille d’un secteur est égale à 512
octets.
Quelle est la taille de ce disque (exprimée en Moctets) ?

19
Exercice 3 :
Un disque comporte 5 plateaux de 2048 pistes chacun. Une piste comporte 1024
secteurs. Un secteur comporte 512 octets.
Quelle est la capacité du disque en octets.

Exercice 4 :
Un disque a une capacité de 830592 Ko. Il possède 824 cylindres, 32 têtes de lecture/
écriture et 63 secteurs par piste.
Quelle est la taille d’un secteur en octets ?

Exercice 5 :
Un disque a une capacité de 163840 octets. Il possède 8 têtes de lecture / écriture, 10
cylindres et 16 secteurs par piste.
•Quelle est la taille d’une piste?
•Quelle est la taille d’un secteur?

20
Correction TD1

Exercice 1 : Pour calculer la taille d'un cylindre et la taille totale du disque dur, nous
avons les informations suivantes :
•10 têtes de lecture/écriture.
•8 cylindres.
•64 secteurs par piste.
•La taille d'un secteur est de 256 octets.
Commençons par le calcul de la taille d'un cylindre :
a) Taille d'un cylindre : La taille d'un cylindre est égale à la taille d'une piste
multipliée par le nombre de têtes de lecture/écriture. Chaque piste contient 64
secteurs, et chaque secteur a une taille de 256 octets.
Taille d'une piste = 64 secteurs/piste * 256 octets/secteur = 16 384 octets
Taille d'un cylindre = Taille d'une piste * Nombre de têtes
= 16,384 octets * 10 = 163,840 octets
Donc, la taille d'un cylindre est de 163,840 octets.

21
b) Taille totale du disque :
La taille totale du disque est égale à la taille d'un cylindre multipliée par le nombre de
cylindres. Nous avons 8 cylindres dans ce cas.
Taille totale du disque = Taille d'un cylindre * Nombre de cylindres
= 163,840 octets * 8 = 1,310,720 octets

Pour exprimer cette taille en termes de kilooctets (Ko) ou mégaoctets (Mo), vous
pouvez diviser par 1024.
Par exemple : 1,310,720 octets = 1,310,720 / 1024 Ko ≈ 1,280 Ko
Donc, la taille totale du disque est d'environ 1,280 Ko.
Exercice 2 :
Pour calculer la taille totale de ce disque dur, nous avons les informations suivantes :
•10 têtes de lecture/écriture.
•1024 cylindres.
•63 secteurs par piste.
•La taille d'un secteur est de 512 octets.
Nous pouvons utiliser la formule suivante pour calculer la taille totale du disque dur :
Taille totale du disque (en octets) = Nombre de têtes * Nombre de cylindres *
Nombre de secteurs par piste * Taille d'un secteur

22
Dans ce cas :
Taille totale du disque (en octets) = 10 * 1024 * 63 * 512
Maintenant, calculons la taille totale du disque en octets :
Taille totale du disque (en octets) = 10 * 1024 * 63 * 512 = 330,301,440 octets
Pour exprimer cette taille en mégaoctets (Mo), vous pouvez diviser par 1 048 576 (1
Mo = 1 048 576 octets) :
Taille totale du disque (en Mo) ≈ 330,301,440 / 1,048,576 Mo ≈ 315 Mo
Donc, la taille totale de ce disque dur est d'environ 315 Mo.

Exercice 3 :
Pour calculer la capacité totale du disque en octets, nous pouvons utiliser les
informations suivantes :
•5 plateaux.
•Chaque plateau a 2048 pistes.
•Chaque piste comporte 1024 secteurs.
•Chaque secteur a une taille de 512 octets.
La capacité totale du disque peut être calculée comme suit :
Capacité du disque (en octets) = Nombre de plateaux * Nombre de pistes par plateau
* Nombre de secteurs par piste * Taille d'un secteur

23
Dans ce cas :
Capacité du disque (en octets) = 5 plateaux * 2048 pistes/plateau * 1024
secteurs/piste * 512 octets/secteur
Calculons la capacité totale du disque en octets :
Capacité du disque (en octets) = 5 * 2048 * 1024 * 512 = 5,242,880,000 octets
La capacité totale du disque est de 5,242,880,000 octets.
Exercice 4:
Pour déterminer la taille d'un secteur en octets, nous pouvons utiliser la capacité du
disque, le nombre de cylindres, le nombre de têtes de lecture/écriture et le nombre de
secteurs par piste.
Voici la formule pour calculer la taille d'un secteur en octets :
Taille d'un secteur (en octets) = Capacité du disque (en Ko) * 1024 / (Nombre de
cylindres * Nombre de têtes * Nombre de secteurs par piste)
Dans ce cas, la capacité du disque est de 830592 Ko, le nombre de cylindres est de
824, le nombre de têtes de lecture/écriture est de 32, et le nombre de secteurs par
piste est de 63.
Calculons la taille d'un secteur en octets :
Taille d'un secteur (en octets) = 830592 Ko * 1024 / (824 cylindres * 32 têtes * 63
secteurs par piste)

24
Taille d'un secteur (en octets) ≈ 8,305,920,000 / (824 * 32 * 63)
Taille d'un secteur (en octets) ≈ 32,640 octets
Donc, la taille d'un secteur sur ce disque est d'environ 32,640 octets.
Exercice 5:
Taille d'une piste : La taille d'une piste est déterminée en divisant la capacité totale du
disque par le nombre de pistes. Chaque piste contient le même nombre de secteurs.
Utilisez la formule suivante pour calculer la taille d'une piste :
1.Taille d'une piste (en octets) = Capacité du disque (en octets) / (Nombre de têtes *
Nombre de cylindres)
2.Dans ce cas, la capacité du disque est de 163840 octets, le nombre de têtes de
lecture/écriture est de 8, et le nombre de cylindres est de 10.
3.Taille d'une piste (en octets) = 163840 octets / (8 têtes * 10 cylindres) = 2048 octets
par piste
4.Taille d'un secteur : La taille d'un secteur est la quantité de données stockées dans
un secteur individuel sur une piste. Dans ce cas, nous savons que la taille totale de la
piste est de 2048 octets, et le nombre de secteurs par piste est de 16. Pour trouver la
taille d'un secteur, divisez la taille de la piste par le nombre de secteurs par piste :
5.Taille d'un secteur (en octets) = Taille d'une piste / Nombre de secteurs par piste
Taille d'un secteur (en octets) = 2048 octets / 16 secteurs = 128 octets par secteur
Donc, la taille d'une piste est de 2048 octets, et la taille d'un secteur est de 128 octets.
25
Le concept de fichier
❑ Un fichier est l’unité de stockage logique mise à la disposition des utilisateurs pour l’enregistrement de
leurs données : c’est l’unité d’allocation.

❑ Le SE établi la correspondance entre le fichier et le système binaire utilisé lors du stockage de manière
transparente pour les utilisateurs.

❑ Un fichier peut contenir du texte, des images, des calculs, des programmes...

❑ Les fichiers sont généralement créés par les utilisateurs. Toutefois certains fichiers sont générés par les
systèmes ou certains outils tels que les compilateurs.

❑ Afin de différencier les fichiers entre eux, chaque fichier a un ensemble d’attributs qui le décrivent.

❑ Parmi ceux-ci on retrouve : le nom, l’extension, la date et l’heure de sa création ou de sa dernière


modification, la taille, la protection.

❑ Certains de ces attributs sont indiqués par l’utilisateur, d’autres sont complétés par le système
d’exploitation.

26
Structure d’un système de fichier
❑ En effet on peut enregistrer des milliers, voir des millions de fichiers sur un disque dur et il devient
alors impossible de s’y retrouver.

❑ Avec la multitude de fichiers créés, le système d’exploitation a besoin d’une organisation afin de
structurer ces fichiers et de pouvoir y accéder rapidement.

❑ Les systèmes d’exploitation modernes adoptent une structure hiérarchique des fichiers.
❑ Chaque fichier appartient à un groupe d’autres fichiers et chaque groupe appartient lui-même à un
groupe d’ordre supérieur.

❑ On appelle ces groupes : des répertoires et des dossiers.

❑ Le schéma de la structure générale d’un système de fichiers prend l’aspect d’un arbre, formé au départ
d’un répertoire « racine » recouvrant des périphériques et notamment un ou plusieurs disque.

❑ Dans chacun des répertoires on pourra trouver d’autres répertoires ainsi que des fichiers de données
ordinaires.

27
La gestion de l’organisation de l’espace
❑ Sur le disque, un fichier est sauvegardé sur un ensemble de clusters, appelés également blocs.

❑ L’unité d’allocation sur le disque dur est le bloc physique. Il est composé de 1 à n secteurs.

Exemple : 1 bloc = 2 secteurs de 512 octets soit 1KO


Les opérations de lecture et d'écriture du SGF se font bloc par bloc

sect sect sect sect

Bloc 1 Bloc 2 Bloc 3 Bloc 4

❑ Chaque fichier (ordinaire ou répertoire) d’un système de fichiers est stocké sur l’unité de stockage du
système de fichiers.

❑ Ses données sont dans des blocs de taille fixe (512, 1024, ou 2048 octets, ...) et à chaque fichier est
alloué un nombre de blocs.

❑ La lecture ou l’écriture d’un élément d’un fichier impliquera le transfert vers la mémoire du bloc
entier qui contient cet élément.
28
Programme
Pour les élèves Instructions
Lire(nom_élève);
Lire(note_examen);
Écrire(table); Fichier logique : suite d’enregistrements
fait m o n _fic hier
Sauvegarder(mon_fichier)
Ali Salah Mohamed Youssef
12 20 09 15
ALI 12

Salah 20
Programme
Mohamed 09 Fichier physique
donnée
Youssef 15
Ensemble de
00110 blocs physiques
de Fichier_notes

29
❑ Le fichier physique correspond à l’implémentation sur le support de masse de l’unité de
conservation : le fichier

❑ Il est constitué d’un ensemble de bloc physique. Il existe plusieurs méthodes d’allocation des blocs
physiques :
➢ allocation contiguë (séquentielle simple)
➢ allocation par zones
➢ allocation par blocs chainés
➢ allocation indexée
→ il faut gérer et représenter l'espace libre

1. Allocation contiguë
❑ Pour chaque fichier à enregistrer, le système recherche une zone suffisamment grande pour accueillir le
fichier.
❑ Le fichier sera alors constitué de plusieurs blocs contigus.

Avantage:
Cette méthode présente l’avantage de la rapidité de l’accès (les blocs étant contigus, on limite les
déplacements de la tête le lecture/écriture, coûteux en temps).

30
Exemple Allocation contiguë d’espace disque pour 7 fichiers

Avantage : Bien adapté au méthodes d'accès séquentielles et


directes.
Difficultés :
- création d'un nouveau fichier
- extension du fichier

fichier 1 : adresse bloc 1, longueur 3 blocs


fichier 2 : adresse bloc 13, longueur 5 blocs
31
Allocation contiguë d’espace disque pour 2 fichiers
inconvénients :
❑ Cependant, elle présente un grand nombre d’inconvénients :

➢ Le dernier bloc a toutes chances d’être sous-utilisé et ainsi, on gaspille de la place. Le


pourcentage de place perdue est d’autant plus grand que la taille moyenne des fichiers est faible,
ce qui est la réalité.

➢ Il est difficile de prévoir la taille qu’il faut réserver au fichier : 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.

➢ La perte d’espace sur le disque : si on prévoit trop d’espace libre, le fichier risque de ne pas
l’utiliser en entier. En revanche, si on prévoit trop peu d’espace libre, le fichier risque de ne pas
pouvoir être étendu.

➢ Problème de fragmentation externe : c’est l’espace perdu en dehors des fichiers. On peut
effacer des données ou supprimer des fichiers ce qui libère des blocs sur le disque. Au fil de
l’utilisation, il peut se créer un grand nombre de petites zones dont la taille ne suffit souvent pas
pour allouer un fichier mais dont le total correspond a un espace assez volumineux.

32
Exemple
❑ création d'un nouveau fichier : il faut allouer un nombre de blocs suffisants dépendant de la taille du
fichier :
◙ prévoir cette taille
◙ trouver un trou suffisant (First Fit, Best Fit)

Fichier 4 : 6 blocs
Fichier 3 : 4 blocs

fichier 1 : adresse bloc 1, longueur 3 blocs


fichier 2 : adresse bloc 13, longueur 5 blocs

33
❑ Trouver un trou de taille suffisante

Compactage
Fichier 4 : 6 blocs

fichier 1 : adresse bloc 1, longueur 3 blocs adresse bloc 1, longueur 3 blocs


fichier 2 : adresse bloc 13, longueur 5 blocs adresse bloc 8, longueur 3 blocs

fichier 3 : adresse bloc 3, longueur 4 blocs adresse bloc 4, longueur 3 blocs

34
❑ Étendre le fichier 1 avec un bloc de données

Déplacer les
fichiers
COUTEUX !

fichier 1 : adresse bloc 1,


fichier 1 : adresse bloc 1, longueur 4 blocs
longueur 3 blocs
Générer une erreur

35
Exercice d’application :
On considère un système muni de 64 Ko de mémoire et capable de gérer jusqu’à 256
processus en multiprogrammation. Chaque processus peut, à priori, utiliser l’ensemble de la
mémoire.
1. Quelle est la taille de l’adresse physique ?
2. Quelle est la taille de l’adresse logique ?
3. Quelle est la taille de la mémoire virtuelle ? On décide d’utiliser un algorithme
d’allocation contiguë qui met en attente les processus lorsqu’il n’y a plus de bloc libre
de taille suffisante.
Solution :
1. Taille de l'adresse physique : La taille de l'adresse physique est déterminée par la
mémoire physique du système, qui est de 64 Ko. La taille de l'adresse physique est donc
de 16 bits, car 64 Ko équivaut à 2^16 octets.

2. Taille de l'adresse logique : elle dépend du nombre de processus que le système est
capable de gérer. Vous avez indiqué que le système peut gérer jusqu'à 256 processus. Par
conséquent, la taille de l'adresse logique doit être suffisamment grande pour adresser ces
256 processus. En utilisant 8 bits, vous pouvez adresser 2^8 = 256 valeurs uniques, ce
qui est suffisant pour les 256 processus.
36
Solution :
3. Taille de la mémoire virtuelle : La taille de la mémoire virtuelle est déterminée par la
taille de l'adresse logique. Comme nous l'avons déterminé précédemment, la taille de l'adresse
logique est de 8 bits. Par conséquent, la mémoire virtuelle peut adresser 2^8 = 256
emplacements mémoire uniques. Cela signifie que chaque processus peut avoir une adresse
logique allant de 0 à 255, et chacun de ces emplacements peut pointer vers une adresse
physique différente dans la mémoire physique.

Remarque :
Il est important de noter que dans un système utilisant l'allocation contiguë,
les processus doivent être chargés dans des blocs de mémoire contigus, ce qui
peut entraîner des problèmes de fragmentation. Lorsque la mémoire est
fragmentée, il peut être difficile de trouver un bloc contigu suffisamment
grand pour charger un nouveau processus, ce qui peut entraîner la mise en
attente des processus jusqu'à ce qu'un bloc suffisamment grand soit disponible.
C'est l'un des inconvénients de l'allocation contiguë.

37
2. Allocation chaînée (non contiguë)

❑ Le principe est d’allouer des blocs chaînés entre eux aux fichiers.
❑ Un fichier peut désormais être éparpillé sur le disque puisque chaque bloc permet de retrouver le bloc
suivant.
❑ Lorsque le fichier change de taille, la gestion des blocs occupés est simple.
❑ Il n'y a donc aucune limitation de taille, si ce n'est l'espace disque lui même.

fichier 1

Adresse/ n° bloc suivant


fichier 2
données

38
1 NULL

2 Libre

Fin de fichier
3 5

❑ Une table d'allocation des fichiers (File 4 Libre Bloc non alloué
Allocation Table : FAT) regroupe l'ensemble des chainages.
(exemple systèmes Windows) 5 NULL

6 Libre

7 1

fichier 1
11 7
N° de Bloc suivant
12 Libre Alloué pour le
fichier
13 15

14 Libre

fichier 2 15 3

16 Libre

17 13

FAT
39
20 Libre
Avantages :

❑ Cette méthode présente l’avantage de l’élimination du problème de fragmentation externe.

❑ Aussi le faite de ne pas nécessiter une structure spéciale pour sa mise en place, constitue un autre
avantage.

inconvénients :
❑ En revanche, les inconvénients ici aussi sont multiples :

➢ 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.

40
3. Allocation non contiguë indexée
❑ Tous les inconvénients de l’allocation chaînée peuvent être résolus d’une manière simple: il suffit de
retirer les pointeurs des blocs et de les placer dans une structure de données gardée en mémoire
centrale, ainsi, les informations sur les numéros de blocs peuvent être obtenue à tout moment.
❑ Les adresses des blocs physiques constituant un fichier sont rangées dans une table appelée index, elle-
même contenue dans un ou plusieurs blocs disque
❑ Ex: bloc = 512 octets ; adresse de bloc = 4 octets → 128 entrées dans le bloc d’index

512 / 4 = 128 entrées

fichier 2

fichier 1

bloc d'index

- Supporte bien l’accès direct


41 - « gaspillage de place » dans le bloc d’index
Exercice d’application :
Soit le schéma suivant représentant l’allocation d’une partition du disque sur un système de fichier.
La taille d’un bloc est de 5 Ko.
Les blocs sont numérotés de 1 à 16 de gauche à droite. Les cases vides sont des blocs libres. Les cases
occupées contiennent une indication correspondante au fichier auquel le bloc appartient (exemple : F1
pour Fichier 1).
1. Calculer la taille générale de cette partition.

2. Quelle est la méthode d’allocation utilisée ?

3. Calculer la taille de ces trois fichiers.

4. Est-ce qu’on peut allouer un nouveau fichier 4 de taille 30 Ko en respectant la même méthode
d’allocation utilisée ? Justifier la réponse.

5. On suppose que le fichier 1 augmente de taille (nouvel espace disque requis= 25 ko). En respectant
la même méthode d’allocation, le système de gestion de fichiers comment va-t-il réagir ? Donner le
nouveau schéma.
F1 F1 F1 F1 F2 F2 F3 F3 F3

42
Correction :
1. Taille d’un bloc= 5koctets
16blocs → taille de la répartition = 5 x16 = 80 Koctets
2. la méthode d’allocation : contiguë
3. Calculer la taille de ces trois fichiers.
Tf1=4x5 koctes = 20 koctets
Tf2=2x5 koctes = 10 koctets
Tf3=3x5 koctes = 15 koctets
4. Est-ce qu’on peut allouer un nouveau fichier 4 de taille 30 Ko en respectant la même méthode
d’allocation utilisée ? Justifier la réponse.
Le fichier F4 de taille 30koctets → (30/5Koctes) blocs →le fichier F4 contient 6 blocs
5. f1 est augmenter de 25koctes →25/5 = 5koctes ajouter au taille initial de fichier 1
Donc nouveau taille de fichier F1= 5blocs → déplacer après le fichier 3

43
La gestion de l’espace libre sur le disque
❑ Le système maintient une liste d'espace libre, qui mémorise tous les blocs disque libres (non alloués)
❑ Les systèmes d’exploitation utilisent essentiellement deux approches pour mémoriser l’espace libre:

➢ Statique : vecteur de bits (bitmaps)


➢ Dynamique : liste chaînée des blocs libres

1. Bitmaps

❑ 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).

❑ Cette solution est utilisée pour trouver n blocs contigus, elle est utilisée dans les systèmes : NTFS,
ext2fs.

44
Gestion de l'espace libre par vecteur de bits

❑ La liste d'espace libre est représentée par un vecteur binaire, dans lequel chaque bloc est figuré par
un bit.
➢ Bloc libre : bit à 1
➢ Bloc alloué : bit à 0

01010101110101010111

▪ Facilité de trouver n blocs libres consécutifs


▪ Système Macintosh
45
2. Liste chaînée
❑ Approche dynamique utilise une liste chaînée constituée d’éléments, chacun mémorisant des numéros
de blocs libres.
❑ Tous les blocs libres sont liés ensemble par des pointeurs.

Gestion de l'espace libre par liste chaînée

Liste des blocs libres


▪ Parcours de la liste coûteux
▪ Difficile de trouver un groupe de
blocs libres
▪ Variante par comptage

46
Gestion de l'espace libre par liste chaînée: variante avec comptage

❑ Le premier bloc libre d’une zone libre contient l’adresse du premier bloc libre dans la zone suivante et
le nombre de blocs libres dans la zone courante.

Liste des blocs libres Liste des blocs libres

1 1

1 3

1 1

1 3

47
1 NULL

➢ La FAT intègre directement la gestion de cet


2 Libre
espace. Fin de fichier
3 5

4 Libre
Bloc non alloué
5 NULL

6 Libre

7 1

N° de Bloc suivant
fichier 1 11 7
alloué pour le
fichier
12 Libre

13 15

14 Libre

fichier 2 15 3

16 Libre

17 13

FAT
48
20 Libre
Exemple 1 (Bitmaps)

Un disque de 300 Mo, organisé en blocs de 1 Ko géré par une table de 300 Kbits

« une table de bits (vecteur de bits n blocs) comportant autant de bits que de blocs sur le disque »

Donc pour un disque de taille 300 Mo = 307.200 (300x1024) Ko

→ une table de 300 Kbits occupera alors 38 de 307.200 blocs

Exemple 2 (liste chainé)

un disque de 300 Mo, organisé en blocs de 1 Ko.

Supposons que chaque bloc soit adressé par 4 octets.

Chaque bloc de la liste pourra contenir 255 (1024/4) adresses de blocs libres.

➢ La liste comprendra donc au plus 307.200/255 = 1205 blocs.

➢ Cette solution mobilise beaucoup plus de place que la précédente.


49
Quelques Systèmes de Gestion de Fichiers

❑ Chaque SE supporte différents systèmes de gestion de fichiers. Certains SGF sont supportés par
plusieurs SE.

SE et SGF
50
1. Le Système de Gestion de Fichiers FAT

❑ Le système FAT (File Allocation Table) est considéré comme le premier système de gestion de fichiers.

❑ Ce système utilise une table d’allocation de fichier ce qui est le cas pour tous les autres systèmes de
fichiers.

❑ Cette table d’allocation de fichiers se présente sous la forme d’un index ayant pour rôle de lister le
contenu du disque pour enregistrer l’emplacement des fichiers sur celui ci.

❑ En effet, la Table d’Allocation de Fichiers est une liste de valeurs numériques permettant de décrire
l’allocation des blocs d’une partition, c’est-à-dire l’état de chaque bloc de la partition dont elle fait
partie.

❑ La table d’allocation est en fait un tableau dont chaque cellule correspond à un bloc.

❑ Chaque cellule contient un chiffre qui permet de savoir si le bloc qu’elle représente est utilisé par un
fichier, et, le cas échéant, indique l’emplacement du prochain bloc que le fichier occupe.

❑ On obtient donc une chaîne FAT, c’est-à-dire une liste chainée de références pointant vers les
différents blocs successifs, jusqu’au cluster de fin de fichier.

51
❑ Chaque entrée de la FAT a une longueur de 16 ou 32 bits (selon qu’il s’agit d’une FAT16 ou d’une
FAT32).

❑ Les deux premières entrées permettent de stocker des informations sur la table elle-même, tandis que
les entrées suivantes permettent de référencer les blocs.

❑ Certaines entrées peuvent contenir des valeurs indiquant un état du bloc spécifique.

❑ Ainsi la valeur 0000 indique que le bloc n’est pas utilisé, FFF7 permet de marquer le bloc comme
défectueux pour éviter de l’utiliser, et FFFF indique la fin d’un fichier.

❑ Chaque partition contient en réalité deux copies de la table, stockées de manière contiguë sur le
disque, afin de pouvoir la récupérer si jamais la première copie est corrompue.

2. Différentes versions de FAT

a. FAT16

❑ Le système de fichiers FAT16 (utilisé par MS-Dos et windows 95) est un système 16 bits, cela signifie
qu’il ne peut pas adresser les blocs (clusters) sur plus de 16 bits

52
❑ Donc, le nombre maximum de blocs repérables avec le système FAT16 est ainsi de 216 , soit 65536
blocs.

❑ Or, étant donné qu’un bloc est constitué d’un nombre fixe (4,8,16,32, ...) de secteurs de 512 octets
contigus, la taille maximale d’une partition FAT se trouve en multipliant le nombre de clusters par la
taille d’un cluster.

❑ Avec des clusters d’une taille 32Ko, la taille maximale d’une partition FAT est donc de 2Go (32 x
1024 x 216 octets ).

❑ D’autre part, un fichier ne peut occuper qu’un nombre entier de clusters, c’est-à-dire que si un
fichier occupe plusieurs clusters, le dernier sera occupé en partie, et la place inoccupée restante est
autant de place perdue.

❑ Par conséquent plus la taille d’un cluster est réduite, moins il y a de gaspillage de place.

b. FAT32

❑ Il utilise 32 bits pour les entrées de la FAT. En réalité seuls 28 bits sont utilisés car 4 bits sont
réservés.

❑ Avec l’apparition du système de fichiers FAT32 (utilisé par Windows 98, 2000), le nombre maximal
53 de clusters par partition est passé de 65535 à 268 435 456 (228).
❑ La FAT32 autorise donc des partitions d’une taille beaucoup plus élevée (jusqu’à 8 téraoctets).

❑ En réalité la taille théorique maximum d’une partition FAT32 est de 8 To, toutefois Microsoft la limite
volontairement à 32 Go sur les systèmes Windows 9x afin de favoriser NTFS.

❑ Puisqu’une partition FAT32 peut contenir beaucoup plus de clusters qu’une partition FAT16, il est
possible de réduire de façon significative la taille des clusters et de limiter par la même occasion le
gaspillage d’espace disque.

3. NTFS (New Technology File System)


❑ Le système de fichiers NTFS (New Technology File System) est utilisé par Windows2000, WindowsNT,
Windows XP et Windows Vista.

❑ Il utilise un système basé sur une structure appelée MFT (Master File Table), permettant de contenir
des métadonnées (informations détaillées) sur les fichiers.

❑ Ce système permet ainsi l’utilisation de noms longs, mais, contrairement au système FAT32, il est
sensible à la casse, c’est-à-dire qu’il est capable de différencier des noms en majuscules de noms en
minuscules.

54
❑ Pour ce qui est des performances, l’accès aux fichiers sur une partition NTFS est plus rapide que sur
une partition de type FAT car il utilise un arbre binaire performant pour localiser les fichiers.

❑ C’est au niveau de la sécurité que NTFS prend toute son importance, car il permet de définir des
attributs pour chaque fichier : droits de lecture, écriture, exécution, etc...

4. Ext3FS (Third Extented File System)


❑ Ce SGF utilise la structure inode et il est utilisé sous Unix et Linux.

❑ Sous un système UNIX, un fichier quel que soit son type est identifié par un numéro appelé numéro
d’inode, qu’on pourrait traduire en français par "i-noeud".

❑ Ainsi derrière la façade du shell, un répertoire n’est qu’un fichier, identifié par un inode, contenant une
liste d’inode représentant chacun un fichier.

❑ Les inodes sont créés lors de la création du système de fichiers.

❑ La quantité d’inodes (généralement déterminée lors du formatage et dépendant de la taille de la


partition) indique le nombre maximum de fichiers que le système de fichiers peut contenir.

55
❑ L’inode contient la totalité des informations sur le fichier, sauf le nom.

❑ Les informations des inodes :

➢ Type (fichier, répertoire...)

➢ Droits d’accès

➢ Identité du propriétaire et du groupe

➢ Dates de modification (création, lecture, modification ...)

➢ Autres (taille, liens, adresses...)

56
Exercice d’application
❑ Considérons un disque dur ayant une capacité de 20 Mo et un système de gestion de fichier utilisant
FAT-12.

1. Déterminer le nombre de secteur pour chaque cluster si la taille d’un secteur est 512 octets.

2. Combien de cluster occupe un fichier de taille 25 Koctets.

Solution :
1.
nombre de cluster (blocs)= 2^12 = 4096
Taille du disque 20 Mo = 20x1024 = 20480 Ko
Taille d’un cluster = taille du disque / nombre de cluster =20480/4096 = 5Ko
Nombre du secteur = taille d’un cluster /taille d’un secteur = 5120 /512 = 10

2. Fichier de taille 25 ko =25600 octets


Nombre de cluster = 25600/ 5120 = 5 blocs

57
TD 2 Systèmes d’exploitation I

Exercice 1:
Soit le schéma suivant représentant l’allocation d’une partition du disque sur un
système de fichier. La taille d’un bloc est de 5 Ko. Les blocs sont numérotés de 1 à 16
de gauche à droite. Les cases vides sont des blocs libres. Les cases occupées
contiennent une indication correspondante au fichier auquel le bloc appartient
(exemple : F1 pour Fichier 1).
•Calculer la taille générale de cette partition.
•Quelle est la méthode d’allocation utilisée ?
•Calculer la taille de ces trois fichiers.
•Est-ce qu’on peut allouer un nouveau fichier 4 de taille 30 Ko en respectant la
même méthode d’allocation utilisée? Justifier la réponse.
•On suppose que le fichier 1 augmente de taille (nouvel espace disque requis= 25
ko). En respectant la même méthode d’allocation, le système de gestion de fichiers
comment va-t-il réagir? Donner le nouveau schéma.
F1 F1 F1 F1 F2 F2 F3 F3 F3

58
Correction Exercice 1:
Pour résoudre ce problème, examinons les informations fournies et répondons à chaque
question en séquence :
1. Calculer la taille générale de cette partition :
La partition est composée de 16 blocs de 5 Ko chacun. Donc, la taille totale de la partition est
de 16 blocs * 5 Ko/bloc = 80 Ko.
2. Quelle est la méthode d’allocation utilisée ?
Il semble que la méthode d'allocation utilisée ici est l'allocation contiguë. Chaque fichier occupe
un ensemble contigu de blocs sur le disque.
3. Calculer la taille de ces trois fichiers :
Fichier 1 : 4 blocs * 5 Ko/bloc = 20 Ko
Fichier 2 : 2 blocs * 5 Ko/bloc = 10 Ko
Fichier 3 : 3 blocs * 5 Ko/bloc = 15 Ko
4. Est-ce qu’on peut allouer un nouveau fichier 4 de taille 30 Ko en respectant la même
méthode d’allocation utilisée ? Justifier la réponse :
Non, il n'est pas possible d'allouer un nouveau fichier de 30 Ko en respectant la même méthode
d'allocation. La plus grande région continue libre disponible dans cette partition est de 4 blocs
consécutifs (de 10 à 13), ce qui équivaut à 20 Ko. Le fichier 4 nécessite 30 Ko d'espace disque,
ce qui est plus grand que l'espace continu disponible. Par conséquent, il n'est pas possible de
respecter la méthode d'allocation actuelle.
59
5. Le fichier 1 augmente de taille (nouvel espace disque requis = 25 Ko). En respectant la
même méthode d’allocation, le système de gestion de fichiers comment va-t-il réagir ? Donner
le nouveau schéma :
Pour augmenter la taille du fichier 1 de 25 Ko tout en respectant l'allocation contiguë, nous
devons trouver un bloc continu de 25 Ko d'espace libre. Cependant, il n'y a pas de blocs
contigus de 25 Ko d'espace libre disponible dans la partition. Par conséquent, le système de
gestion de fichiers ne pourra pas satisfaire cette demande d'agrandissement de fichier en
respectant la méthode d'allocation actuelle.

Le nouveau schéma dépendra de la manière dont le système de gestion de fichiers gère cette
situation. Il pourrait choisir de déplacer le fichier 1 vers un nouvel emplacement où il y a
suffisamment d'espace libre, ou il pourrait fragmenter le fichier 1 en plusieurs parties sur
l'espace disque disponible. La réponse précise dépendra de la politique de gestion de fichiers
du système.

60
Exercice 2:
On considère un système de gestion de fichiers d’un disque composé de 10 blocs, numérotés
de 1 à 10. Trois fichiers existent sur le disque et sont définis comme suit :
•F1 : début : bloc 1; taille 2 blocs,
•F2 : début : bloc 5 ; taille 3 blocs,
•F3 : début : bloc 10 ; taille 1 bloc.
Le reste de l’espace sur disque est libre.
•Faites un schéma du disque en mettant en évidence les blocs occupés et les blocs libres.
•Quelle est la méthode d’allocation utilisée ?
•On veut rajouter 1 bloc au fichier F3. Que faut-il faire?
•Est-ce qu’on peut créer un fichier F4 de 4 blocs en respectant la même méthode d’allocation
utilisée? Proposez une solution.

61
1. Pour représenter le schéma du disque en mettant en évidence les blocs occupés et les blocs
libres, vous pouvez utiliser un tableau simple où chaque numéro de bloc est répertorié, et vous
indiquez si chaque bloc est occupé par un fichier ou s'il est libre. Voici le schéma du disque :
Bloc 1 : Occupé (F1)
Bloc 2 : Occupé (F1)
Bloc 3 : Libre
Bloc 4 : Libre
Bloc 5 : Occupé (F2)
Bloc 6 : Occupé (F2)
Bloc 7 : Occupé (F2)
Bloc 8 : Libre
Bloc 9 : Libre
Bloc 10 : Occupé (F3)
2. La méthode d'allocation utilisée ici est l'allocation contiguë, où chaque fichier occupe un
ensemble contigu de blocs sur le disque.
3.Pour ajouter 1 bloc au fichier F3, vous devez rechercher un bloc libre contigu à celui déjà
occupé par F3. Dans ce cas, le bloc 9 est déjà occupé par F3. Vous pouvez ajouter un bloc libre
contigu à F3, c'est-à-dire le bloc 8, au fichier F3.

62
Le schéma du disque sera le suivant :
Bloc 1 : Occupé (F1)
Bloc 2 : Occupé (F1)
Bloc 3 : Occupé (F3)
Bloc 4 : Occupé (F3)
Bloc 5 : Occupé (F2)
Bloc 6 : Occupé (F2)
Bloc 7 : Occupé (F2)
Bloc 8 : libre
Bloc 9 : libre
Bloc 10 : libre
4. Maintenant, en ce qui concerne la création d'un fichier F4 de 4 blocs en respectant la même
méthode d'allocation utilisée, il n'est pas possible d'ajouter un fichier F4 de 4 blocs car il n'y a
pas de plage de 4 blocs libres contigus disponibles. La plus grande plage continue disponible est
de 2 blocs (blocs 3 et 4), ce qui ne suffit pas pour un fichier de 4 blocs. La méthode d'allocation
contiguë actuelle ne permet pas de créer un fichier F4 de 4 blocs.

63
Exercice 3:
Une partition du disque est constituée de 20 blocs numérotés de 1 à
20. La taille de chaque bloc est 4 ko. En représentant un bloc libre par
1 et un bloc occupé par 0, on obtient le vecteur suivant :
11100000111111011100. On veut représenter l'espace libre par une
liste chainée dontNumérochaque
du bloc élément
Nombre de bloc est représenté de la forme
suivante :
Numéro du bloc : est le numéro du premier bloc libre contigu.
Nombre de bloc : est le nombre de blocs libres consécutifs.
•Donner la liste chainée représentant les espaces libres.
•On veut allouer un nouveau fichier de taille 24Ko, est ce qu’on peut
l’allouer avec l’allocation contiguë ? Si oui, donner le nouvel état de
la liste chaînée représentant les espaces libres.

64

Vous aimerez peut-être aussi