Vous êtes sur la page 1sur 10

Correction TD1

Système de gestion des fichiers

1ko= 210ø=1024ø, 1Mo=210 kø =220 ø, 1Go=210Mo = 230 ø, 1To=210Go=240 o

Exercice 1 : Allocation contigüe


1. Soit un disque avec des blocs de 2 Ko. Représenter graphiquement cinq fichiers contigus de taille
respective 16Ko (fichier A), 11Ko (fichier B), 6Ko (fichier C), 5Ko (fichier D) et 4Ko (fichier E).

Réponse
Nb (blocs) d’un fichier = taille (fichier) / taille (bloc)
Dans le cas où (La taille d’un fichier/ taille du bloc) ne donne pas une valeur entière on aura :
Nb (blocs) d’un fichier = partie entière [taille (fichier) / taille (bloc) ] + 1
On a : Taille (bloc) = 2 Ko
A : 16/2 8blocs ; B : 11/2=5,56blocs ; C : 6/23blocs ; D : 5/2=2,5 3; E : 4/22blocs

2 Ko

A A A A A A A A B B B B B B C C C D D D E E

16Ko  8blocs complets 11Ko  6blocs tronqués 6Ko  3blocs 5Ko  3blocs 4Ko  2blocs
complets tronqués complets

2. Dessiner l’état du disque après la suppression du fichier C. Que remarquez-vous?


Réponse
2 Ko

A A A A A A A A B B B B B B C C C D D D E E

16Ko  8blocs complets 11Ko  6blocs tronqués Blocs libre (trou) 5Ko  3blocs 4Ko  2blocs
tronqués complets

Après effacement du fichier C, on remarque un chevauchement (croisement) entre les blocs de


données et les blocs vides : on parle donc de la fragmentation du disque.

3. Pour un disque de 300 Mo, calculer la taille de la table de bits utilisé pour représenter le descriptif
du volume de ce disque.
Réponse
La table de bit est utilisée pour décrire l’état d’occupation des blocs. Un 0 représente un bloc
libre et un 1 représente un bloc occupé.
Taille (entrée)= 1 bit
Le nombre d’entrées dans la table de bit correspond au nombre de blocs.
Et nb (blocs)= taille (disque) /taille ( bloc )= 300 * 210 / 2 = 150 * 210 blocs
Taille (table de bits) = nb (entrée_Table_bit)* Taille (entrée_Table_bit)
=150*210 *1 bit
=150*210 bits = (150*210 bits /8 bits) octets=18,75 kø

Exercice 2 : Allocation chaînée & chaînée indexée


Soit un disque C qui contient 20 blocs de données numérotés de 0 à 19.
1. Supposons que le type d’allocation utilisée est l’allocation chaînée indexée. Deux fichiers F1
et F2 sont stockés sur ce disque. Le fichier F1 occupe les blocs 17, 18, 4, 11, 2 et 12. Le
fichier F2 occupe les blocs 5, 9, 14, 3, 8, 15, 16 et 10.

a. Combien d’entrées comporte la table d’allocation de fichier FAT ?


Réponse
Chaque entrée i de la FAT correspond au bloc i du disque et contient le numéro du bloc qui
suit le bloc i. Le nb(entrées _ FAT) = nb(blocs _ disque)
Ainsi, la FAT contient 20 entrées.

b. Schématisez la table d’allocation de fichier


Réponse
F1 : 17, 18, 4, 11, 2 et 12
F2 : 5, 9, 14, 3, 8, 15, 16 et 10
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
X X 12 8 11 9 X X 15 14 EOF 2 EOF X 3 16 10 18 4 X

c. Sachant qu’un bloc occupe 512 octets, donnez la taille physique des fichiers F1 et F2.

Réponse
La taille (fichier) = Nb (blocs / fichier) * taille (bloc)
F1 stocké sur 6 blocs  taille(F1) = 6*512 = 3072 ø =6 x 29 ø = 2 x 3 x 29 ø = 3 kø
F2  stocké sur 8 blocs  taille(F2) = 8*512 = 4096 ø =23 x 29 octets = 4 kø

2. Supposons maintenant que l’implantation des objets sur le disque utilise la technique des
blocs chainés. Chaque bloc est de taille 512 octets contenant une partie de données et un
champ adresse du bloc suivant. Le champ adresse occupe 32 octets de chaque bloc.
a. de blocs occupent les fichiers F1 et F2 sur le disque ?

Réponse

Nb(blocs d’un fichier) = Taille physique d’un fichier / Taille réservée aux données dans un
bloc
Un bloc données @

Taille (données) dans un bloc = 512 -32 = 480 ø

F1  nombre de blocs (F1) = taille(F1)/480 = 3072/480 = 6,4 7 blocs

F2  nombre de blocs (F2) = taille(F2)/480 = 4096/480 = 8,53 9 blocs

b. Quelle est la différence entre la méthode d’allocation de 1. et celle de 2. ? Justifier la réponse.

Réponse
 Avec la méthode d’allocation de 2. , on utilise plus de blocs pour stocker les fichiers F1
et F2. En effet, 
nombre de blocs F1 dans 2.= nombre de blocs F1 dans 1. + 1
nombre de blocs F2 dans 2. = nombre de blocs F2 dans 1. +1.

Ceci est dû à l’utilisation d’une partie du bloc pour contenir l’adresse du bloc suivant.

 De plus, le dernier bloc de chaque fichier n’est pas totalement exploité. En effet, seulement
40% du dernier bloc du fichier F1 est exploitée pour les données et environ 50% du dernier
bloc du fichier F2 est exploitée pour les données. Ainsi, on parle de gaspillage de la mémoire
secondaire.
 En outre, avec la méthode dans 2. , pour accéder au nième bloc d’un fichier, il faut parcourir
tous n-1blocs précédant. En revanche, pour la méthode en 1. , pour connaitre le nième bloc il
suffit de balayer la table FAT au lieu de parcourir les blocs du fichier. 

 Enfin, avec la méthode dans 2., si un pointeur (adresse) est endommagé tout le reste du
fichier est perdu. Alors que pour la méthode dans 1. le risque de perte d’information est
moindre d’autant plus que la table FAT est dupliquée. 

Le système de fichiers FAT


Exercice 3
1. Dans un environnement 16 bits, avec des blocs qui font 1 ko, est-il possible d’avoir un disque de 1Go?
Justifier.

Réponse

Environnement 16 bits les @ codées sur 16 bits 216 adresses de blocs possibles = 65536 blocs

Taillemax(disque) = Nbmax ( blocs )* Taille(bloc) =216 * 210 = 26 x 220 ø = 64 Mo << 1Go


On ne peut pas avoir un disque de 1Gø dans un environnement de 16bits avec des blocs de 1kø.

2. Dans un environnement 32 bits, on a un disque de 1Go avec des blocs qui font 1 ko.

a. Quel est le nombre des blocs de ce disque ?

Réponse
La taille du disque = nombre de blocs * taille du bloc
Nb (blocs) = Taille(disque) / Taille(bloc)

Nb (blocs)= 1Go / 1Ko =220/1= 220 blocs

b. Quelle est la taille nécessaire occupée par la table FAT de ce disque ?

Réponse
Taille (FAT) = Nb (entrées _ FAT) x Taille (entrée _ FAT)
= Nb (blocs) x nb ( bits _adressage)
= 220 x 32 bits = 4 x 220 ø = 4 Mø
Exercice 4
On dispose d’un ordinateur personnel équipé de deux disques durs identiques d’environ 50Mo
chacun. Les caractéristiques annoncées par son fabricant sont 800 cylindres, 4 têtes, 34 secteurs par
piste et 512 octets par secteur. La gestion des fichiers est analogue à celle du système MS-DOS. Sur
chacun des disques, on définit une partition d’environ 15Mo.
Rappelons que :
 Une partition de MS-DOS est une portion de disque dur constituée d’un ensemble de
cylindres contigus (ici 220 cylindres) et structurée en volume. Les deux partitions ont reçu
comme nom de volume G et H ;
 L’implantation des objets sur le volume utilise la technique des blocs chaînés indexés à l’aide
d’une File Allocation Table (FAT). Les blocs sont ici constitués de 2 secteurs ;
 Un numéro de bloc a besoin de 14 bits ;
 Pour des raisons de sécurité, cette table existe en deux exemplaires en début de partition ;
 Les objets externes du volume sont organisés en utilisant une arborescence de répertoires.

1. Combien de secteurs occupe une partition ?

Réponse
Nb (secteurs / partition) = nb (faces) * nb (pistes / face) * nb (secteurs / piste)
= 4 * 220 * 34 = 29920 secteurs

2. Combien d’entrées comporte une FAT?


Réponse
Nb (entrées _ FAT) = Nb( blocs _ partition)
= nb (secteurs/ partition
nb (secteurs / bloc)

= 29920 / 2 = 14960 entrées

3. Combien de secteurs occupe un exemplaire de FAT?


Réponse
Nb( secteurs occupés par la FAT ) = taille (FAT)
taille (secteur)

= [ nb (entrée_FAT) * taille (entrée_FAT)]


taille (secteur)

= (14960 * 14 bits ) / (512*8bits)


= 51,13  52 secteurs.

4. Donner le nombre de blocs effectivement allouable dans chaque partition, sachant que le système
réserve 2 blocs pour le sauvegarde de la taille du disque.

Réponse
Nb (blocs effectivement allouables )= nb (blocs / partition) – nb (blocs_ réservés_taille_disque)
– nb(exemplaire_FAT) * nb( blocs / FAT)
= nb (blocs / partition) – nb (blocs_réservés_taille _disque)
– nb(exemplaire_FAT) * ( nb (secteurs / FAT)
nb (secteurs /bloc))

= 14960 -2-2*(52/2)= 14906 blocs


Exercice 5
Considérons une partition de disque dur constitué de 10 pistes. Une piste est formée de 24 secteurs.
La taille d’un secteur est égale à 512 octets. L’espace disque est structuré en des blocs. Un bloc
occupe 2 secteurs.

1. Sachant que la gestion des fichiers est analogue à celle du système MS-DOS, identifiez la
politique d’allocation de fichier utilisée.

Réponse
Le système MS-DOS utilise la table (FAT) pour préciser l’allocation des fichiers. Ainsi, la gestion
des fichiers utilisée est l’allocation chaînée indexée.

2. Calculez la taille de la table d’allocation de fichier (FAT).

Réponse
Taille ( FAT) = Nb(entrée_FAT) * taille (entrée_FAT)
= nb(blocs _ disque) * nb( bits_adressage)
= [nb(pistes) * nb (secteurs /piste)] * nb( bits_adressage)
nb(secteurs/bloc)
= ((10*24)/2)*16 bits
= 240 octets

2. Suite à une panne, toute la structure de répertoires et de fichiers de la partition a été perdue. La
table d’allocation de fichier FAT a cependant pu être récupérée. Elle est représentée ci-dessous
(une entrée EOF représente le dernier bloc d’un fichier (Fin de fichier) et l’entrée L représente un
bloc libre)

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

L 13 3 17 5 23 L L L 11 20 EOF 9 10 2 19 6 EOF L 3 21 EOF L L

On note qu’il est possible que la FAT a été endommagée par la panne.

a. Proposez une méthode et appliquez-la pour retrouver les fichiers contenus sur ce disque. Pour chaque
fichier récupéré, donnez la liste des blocs qui le composent.

Réponse
Une entrée de la FAT correspond à un bloc du disque. Dans une entrée de la FAT, on correspond l
’adresse du bloc suivant dans la chaine de blocs constituant le fichier. L’entrée du dernier bloc du
fichier correspond à la chaîne EOF (fin de fichier).
Comme le disque a subi une panne, pour récupérer les fichiers, on commence la recherche de leurs
blocs par la fin (on cherche les EOF).
Ainsi, la méthode à appliquer est la suivante :
 On cherche une entrée qui correspond à une fin de fichier (EOF) ;
 L’entrée ainsi trouvée dans la FAT nous permet de déterminer le numéro du bloc précédant la
fin de fichier. On pointe vers cette entrée, pour trouver le bloc précédant à ce bloc et ainsi de
suite
 On dit qu’on a trouvé tous les blocs du fichier lorsque le dernier numéro de bloc ne s’affiche
pas dans les entrées de la FAT.

On trouve les numéros des blocs dont les entrées ont la valeur EOF :
 Bloc 11  dernier bloc d’un fichier F1
 Bloc 17  dernier bloc d’un fichier F2
 Bloc 21 dernier bloc d’un fichier F3
On applique la méthode : (on commence par le dernier bloc)
 F1 : (le dernier bloc de F1) bloc 11  bloc 9  bloc 12 (le premier bloc de F1)
 F2 : (le dernier bloc de F2) bloc 17  bloc 3  bloc 2  bloc 14 (le premier bloc de F2)
 F2’ : (le dernier bloc de F2’) bloc 17  bloc 3  bloc 19  bloc 15 (le premier bloc de F2’)
 F3 : (le dernier bloc de F3) bloc 21  bloc 20  bloc 10  bloc 13  bloc 1 (le premier bloc de
F3)

Une fois on trouve ces fichiers, on doit examiner le reste des blocs :
On commence par le premier bloc restant, on cherche s’il y a des blocs précédents ce bloc. En
retrouvant le bloc original (début de fichier), on commence à suivre la succession des pointeurs.
On a donc :
 F4 : bloc 4  bloc 5  bloc 23 (libre)
 F5 : bloc 16  bloc 6 (libre)

b. Quelle (s) erreur (s) pouvez-vous détecter sur cette FAT ? Quelle (s) réparation (s) proposez-vous ?

Réponse
On suppose que le bloc de numéro 1 peut être utilisé pour un fichier.
Les erreurs et les corrections correspondantes sont :
 Au niveau des fichiers F4 et F5. Leurs derniers blocs correspondent à des blocs libres. On
peut affecter aux derniers blocs (blocs 6 et 23) des entrées = EOF (fin de fichier)
 Au niveau des fichiers F2 et F2’. Il s’agit de deux fichiers ayant les mêmes derniers blocs. On
peut par exemple copier les deux derniers blocs de l’un des fichiers dans d’autres blocs
pour séparer les derniers blocs des deux fichiers et préserver l’information. Par la suite il faut
mettre à jour la table FAT.

Exercice 6 : Le système de fichiers Ext2


Le système de fichiers Ext2 (utilisé principalement par Unix) utilise des nœuds d'information ayant
pour chaque fichier la structure suivante :
 10 pointeurs vers des blocs contenant les données du fichier ;
 1 pointeur vers un bloc d'indirection simple, contenant lui-même des pointeurs vers des
blocs contenant les données du fichier ;
 1 pointeur vers un bloc d'indirection double ;
 1 pointeur vers un bloc d'indirection triple.
1. Représenter schématiquement la structure d'un tel i-nœud.
Réponse : figure suivante

3. En supposant que l'on soit dans un environnement 32 bits et que les blocs sur disque font 1 ko,
quelle est la taille maximale d’un disque ?
Réponse
Taillemax (disque) = nbmax(blocs) * taille (bloc)
= nbmax(@) * taille (bloc)
= 2nb(bit_@ge) * taille (bloc)
= 2 32 * 1*2 10 octet

= 22 * 230 *210 = 4*240= 4 To

3. Quelle est la taille maximale théorique d’un fichier ?

Réponse
Taillemax( Fichier )= nbmax(blocs/fichier) * taille (bloc)
= nbmax(@/fichier) * taille (bloc)
= [nb (@_Inode)+ nb (@_Ind_simple)+ nb
(@_Ind_double)+ nb
(@_Ind_triple)]* taille (bloc)

= (10 + 256 + 2562 + 2563) * 1 ko


=16843018 ko = 16,063 Go

3. Pour représenter l'occupation des blocs, Ext2 utilise une table de bits. Quelle taille aurait-elle pour
un disque de 128 Go avec des blocs de 1 ko ?

Réponse
Taille (table_bits) = Nb (entrée_table_bits)* taille (entrée_table_bits)
= [Taille ( partition)]* taille (entrée_table_bits)
Taille (bloc)

=128 * 230*1bits = 16*220 octet = 16Mo


10
1 *2 *8 bits/octet

Vous aimerez peut-être aussi