Vous êtes sur la page 1sur 64

Capacit de stockage sur un DVD

En informatique, 1 kilo octet reprsente 1024 octets et non 1000 octets. De la mme manire, 1
mga octet reprsente 1024 ko, et 1 giga octet reprsente 1024 mga octets.
Commercialement, un DVD vierge a une capacit de 4.7 Go, soit 4 milliards 700 millions d'octets
(4700000000 octets).

Calculer la capacit d'un DVD, au sens informatique du terme, en kilo-octets (ko), mgaoctets (Mo) et giga-octets (Go).

En dduire le nombre de fichiers de 660 Mo (au sens informatique) que l'on peut esprer y
graver.

Calculer le nombre de fichiers de 700 Mo que l'on peut y graver.

Calculer en octets la taille d'un fichier de 700 Mo.

Rponse

Rponse
4590000 ko, 4482 Mo, 4.38 Go,
6 fichiers de 660 Mo, ou 6 fichiers de 700 Mo.
Pour pouvoir mettre 7 fichiers, leur taille ne doit pas excder 640 Mo.
Un fichier de 700 Mo fait 70010241024 = 734003200 octets

Voici le fichier Article reprenant tous les articles mis en vente dans un magasin.
Ce fichier Article comprend les types d'informations suivantes pour chaque article:
numro numrique 4 octets (valeur) obligatoire
libell chane 30 octets (valeur) obligatoire
prix numrique 2 octets (valeur) obligatoire
stock numrique 4 octets (valeur) optionnel
commentaire chane de 30 200 octet (valeur) optionnel
il y a 5000 articles encods dans le fichier.Le fichier est stock sur une mmoire
secondaire o un bloc d'allocation est de 1 kio.
L'unit de transfert est de 4 blocs.
Exercice:
1) Donner la longueur minimale et maximale d'un enregistrement.
Min : 36 octet.
Max : 240 octet.
2) Combien de lecture logique doit-on faire pour lire le numro, le libell et
le commentaire du
premier article du fichier ?
4) Pour stocker sur la mmoire secondaire le fichier article
a) Combien d'critures logique faudra-t-il ?
b) combien d'enregistrement logique seront-ils stocks ?
5) Pour stocker sur la mmoire secondaire le fichier Article
a) Quelle est la taille de l'unit de transfert en octet ?

4 * 1024 = 4096 octet.


b) combien d'critues physique faudre-t-il au minimum?
5000 / 113 = 45.
c) Quelle est la taille du fichier au minimum ?
taille min d'un enregistrement : 36.
5000 * 36 = 180 000 octet .
d) Quel est le nombre de blocs utilis au minimum ?
180 000 / 1024 = 176.
6) a) Quel est le nombre d'octets utiliss sur le support?
b) Quelle sera la dimension de la fragmentation interne dans ce cas ?
c) Quelle sera la dimension maximum du facteur de blocage ?

1. Gnralits sur les fichiers informatiques


2. Fichiers accs squentiel
3. Fichiers accs direct
4. Fichiers accs index
5. Comparaison adressage associatif - adressage fonctionnel
Cliquez ici pour retourner aux thmes d'exercices : ....

1. Gnralits sur les fichiers informatiques

n fichier est une structure de donnes au mme titre qu'un tableau


est aussi une structure de donne.
Un fichier :

est une structure de donnes homognes qui porte un nom,

est compos de cellules portant le mme nom,

possde un moyen d'accder chacune de ses cellules : le pointeur


de fichier.

Clef :
A une cellule quelconque d'un fichier est associe une clef identifiant cette
cellule. La clef est gnralement un chiffre ou un autre type de donne.

Enregistrement logique :
Un enregistrement logique (encore dnot bloc) est la notion abstraite
de cellule dont la taille peut varier ou bien tre fixe. Un fichier est donc
organis en enregistrements logiques.

Enregistrement physique :
La notion abstraite d'enregistrement logique est couple la notion concrte
d'enregistrement physique qui dpend du support, de sa forme (dans le cas
d'un disque l'enregistrement physique dpend de la taille des cylindres, des
secteurs, de la rpartition sur le disque etc...)

Diffrents modes d'accs aux fichiers :


Il s'agit de prciser comment on accde un enregistrement logique
travers un algorithme implant sous forme d'un programme (ici en pascal).
On distingue 3 modes d'accs :

squentiel

direct

index

2. Les fichiers squentiels


et leurs traitements en pascal
2. Fichiers accs squentiel
2.1 Instructions Pascal/Delphi
2.2 Exercice sur l'accs squentiel
2.3 Exercice sur l'accs squentiel

Retour au thme fichiers


2. Fichiers accs squentiel

ans un fichier accs squentiel, les enregistrements logiques sont


accessibles les uns aprs les autres. Pour accder un enregistrement fix, il faut
utiliser un algorithme de recherche squentielle (pour accder l'enregistrement de
rang n, il faut parcourir les n-1 prcdents enregistrements).
Ci-dessous un fichier de caractres (un enregistrement logique = un caractre), ce
fichier contient 13 enregistrements de taille fixe dans cet exemple (numrots pour
la lisibilit de 0 12) :

La flche noire figure le pointeur de fichier. Lorsque le fichier a t rempli, le


pointeur de fichier (flche noire) est la fin du fichier sur un enregistrement spcial
not EOF (End Of File ou fin de fichier) reprsent ici par le caractre '#'. Cet EOF
est une sentinelle indiquant la fin des informations contenues dans le fichiers.
Lorsque l'on "rembobine" le fichier, le pointeur de fichier se retrouve sur le premier
enregistrement du fichier.

Les principes suivants sont adopts pour un fichier squentiel :

Il est possible d'crire dans tout enregistrement logique, lorsque l'on


crit dans l'enregistrement spcial EOF, celui-ci est alors repouss
d'une case.

Il est possible de lire dans tout enregistrement logique sauf dans


l'enregistrement spcial EOF dont la tentative de lecture provoque la
fin de l'action de lecture.

Chaque lecture d'un enregistrement dplace le pointeur de fichier


d'une case; le pointeur de fichier "pointe" vers la case suivante.

Ci-dessous pour lire le caractre 'L' de l'enregistrement que nous avons numrot 5,
il faut avoir lu les ebregistrements P, V , Y, B et Q. Dans ce cas de figure le pointeur
est sur l'entregistrement contenant le caractre 'L' prt tre lu (la lecture de
l'enregistrement fera automatiquement passer le pointeur sur l'enregistrement
suivant ici le n6 contenant 'Y') :

2.1 Instructions Pascal/Delphi

n fichier de d'lments de type T en pascal s'crit : file of T. Cidessous un rappel des procdures et des fonctions de base du Pasca/Delphi
permettant de travailler avec des fichiers squentiels de type file of T.
renvoie la taille d'un fichier (le nombre d'enregistrements qu'il
contient).
FilePos ( F : file of T ) renvoie la position courante du pointeur de fichier.
AssignFile ( var F : file assignation logique d'un identificateur pascal (var F) un fichier
of T ; Nom : string )
crer ou dj cr (Nom).
FileSize ( F : file of T )

ouvre un fichier dj existant sur le disque,

remet le pointeur de fichier au dbut.

Reset ( var F : file of T )

cre un fichier sur disque (structure physique), puis ouvre


ce fichier,

efface un fichier dj existant et remet le pointeur au dbut.

Rewrite ( var F : file


of T )

CloseFile (var F : file


of T )
Eof ( F : file of T )

ferme un fichier dj ouvert par Reset ou Rewrite

renvoie true si le pointeur est sur l'EOF false sinon.


lecture dans le fichier F de l'enregistrement sur lequel se trouve le
Read ( var F : file of T ;
pointeur, puis transfert du contenu de l'enregistrement dans la
x:T)
variable x.
Write ( var F : file of T ; criture dans le fichier F dans l'enregistrement sur lequel se trouve
x:T)
le pointeur, du contenu de la variable x.
Erase ( var F : file of T
efface physiquement un fichier disque.
)
Rename ( var F : file
renomme physiquement un fichier disque.
of T ; NewNom : string )

2.2 Exercice sur l'accs squentiel

n propose un fichier de 13 caractres sur le disque C:\FicheCarac:

On demande de complter le programme suivant :


var
Fichier : file of char ;
Car : char ;
begin
AssignFile ( Fichier ,'C:\FicheCarac') ;
...........
end.
Sachant que la partie manquante doit lire squentiellement tout le contenu de ce

fichier et afficher l'cran le caractre lu chaque lecture d'enregistrement.

2.3

Fonctionnement de l'assistant

our vous aider l'assistant contient une interface de composition de


lignes de programme manquantes :

Il suffit de slectionner avec la souris une instruction dans la liste du bas :

Le bouton "valider votre rponse" vous permet de tester vos choix, la rponse
exacte si vous ne l'avez pas obtenue de par vous-mme se dclenche avec le bouton
"voir solution"

Exemple de rponse fausse


var
Fichier : file of char ;
Car : char ;
begin
AssignFile ( F ,'C:\FicheCarac') ;

end.

Les icnes du mode ajout de lignes autorisent le remplacement, l'insertion,


l'ajout la fin et la suppression d'une ligne de la liste de vos instructions de code
source en cours de composition :

3. Les fichiers accs direct


et leurs traitements en pascal
3. Fichiers accs direct
3.1 Instructions Pascal/Delphi
3.2 Exercice sur l'accs direct
3.3 Fonctionnement de l'assistant
Retour au thme fichiers

3. Fichiers accs direct

ans un fichier accs direct, les enregistrements logiques sont


accessibles immdiatement grce une clef. Il y a similitude avec la structure de
tableau en mmoire centrale dans ce dernier cas la clef est l'indice de la cellule du
tableau).
Nous disposerons gnralement d'une fonction permettant de "transformer" un
champ de l'enregistrement en une clef positionnant le pointeur de fichier
directement sur la case physique associe.

3.1 Instructions Pascal/Delphi

n fichier de d'lments de type T en pascal s'crit : file of T. Les


procdures et des fonctions de base du Pasca/Delphi permettant de travailler avec
des fichiers squentiels sont toutes utilisables pour un fichier accs direct. Le
Pasca/Delphi dispose d'une procdure supplmentaire permettant de positionner le
pointeur de fichier.
Seek ( var F : file of T ;
N : longint )

positionne le pointeur sur l'enregistrement N (le premier


enregistrement est numrot 0).

3.2 Exercice sur l'accs direct

n propose un fichier de 9 enregistrements sur le disque


'C:\FicheCarac' :

Chaque enregistrement est de taille fixe (comportant 7 caractres), tous les


enregistrements ont le mme format : X / X // XX (o X est un caractre ASCII
quelconque).
Nous nous proposons pour dfinir une clef d'accs un enregistrement, d'utiliser le
troisime caractre de l'enregistrement (ce qui autorise un fichier d'au plus 256
enregistrements). Nous supposons pour limiter l'exemple peu de valeurs que les
caractres ne sont que des lettres (26 enregistrements au plus). Une clef d'accs
sera une chane de caractre contenant par exemple en troisime position le mme
caractre que celui de l'enregistrement.
Nous dcidons que la fonction de conversion de la clef (note AccesDirect) est
charge de fournir en pascal partir du troisime caractre de la clef, le numro de
l'enregistrement et de le passer la procdure Seek.
Si nous prenons l'enregistrement suivant ' a / t // u w', les
mots bateau, total, site, mythe, sont chacun d'entre eux des clefs permettant
d'accder ce mme enregistrement.

Plusieurs clefs peuvent adresser le mme enregistrement :


AccesDirect : bateau ---> n de l'enregistrement = k
AccesDirect : mythe ---> n de l'enregistrement = k
etc...

Remarques :
Si nous avions choisi une clef deux caractres nous aurions pu accder au
plus 256 = 65536 enregistrements etc...

L'accs direct est le mode d'accs le plus simple il se dnomme adressage


fonctionnel, il est intressant lorsqu'il possible de trouver une fonction
d'adressage bijective, ce qui dans la pratique, est rarement possible
(l'exemple prcdent est construit pour une telle utilisation pdagogique).
C'est l'adressage index qui est le moyen terme le plus utilis.

3.3

Fonctionnement de l'assistant

'assistant propose de simuler l'excution d'un programme pascal


du moins en ce qui concerne le mode d'accs direct. Ci-dessous se trouve un dtail
des icnes de l'interfaces de l'assistant.
1) Soit le programme pascal suivant comprenant une fonction AccesDirect de
conversion de clef de type string en un entier qui est le rang de l'enregistrement
asoci cette clef :

travaillant sur le fichier var Fichier : file of string :

2) Le logiciel propose par tirage alatoire d'accder grce au programme pascal


prcdent un enregistrement spcifique ( ici 'Q/G//BF', qui a pour rang 6 dans le
fichier).
3) Il vous est propos un choix parmi 7 clefs gnres alatoirement, une seule des
7 est bonne et permet un accs l'enregistrement 'Q/G//BF' :

4) vous choisissez la bonne clef dans la liste (ici, c'est la chane qui contient le
caractre G en troisme position, en l'occurence) :

5) le logiciel vous averti par une approbation ou une dsapprobation sonore de la


justesse ou non de votre choix.
6) Afin de tester votre bonne comprhension du mcanisme il vous est possible
d'entrer des chanes dans la petite fentre bleu simulant
l'instruction readln(UneClef) ;

Si votre chane est une clef valide (ce qui est le cas ici) l'assistant vous indique
l'enregistrement auquel cette clef permet d'accder :

La saisie d'une clef invalide provoque l'affichage ci-dessous :

Utilisez l'assistant, qui engendre chaque fois une configuration totalement


diffrente de la prcdente.

4. Les fichiers accs index


et leurs traitements en pascal
4. Fichiers accs index
4.1 Instructions Pascal/Delphi
4.2 Exercice sur l'accs direct
4.3 Fonctionnement de l'assistant
Retour au thme fichiers

4. Fichiers accs index

'est un mode d'accs semi-direct dans lequel l'on recherche en


premier la valeur de la clef dans une table (nomme table d'index), puis ensuite on
accde directement l'enregistrement.

Par rapport l'accs direct ou nous disposons d'une fonction permettant de calculer
immdiatement (directement) la position du pointeur de fichier, dans l'accs index
la fonction associe gnralement par une recherche dans la table d'index une clef
avec une valeur de position du pointeur de fichier. C'est pourquoi l'on
parle d'adressage associatif.

4.1 Instructions Pascal/Delphi

n Pasca/Delphi il n'existe pas de procdure spciale pour l'accs


index, il suffir d'utiliser une structure de tableau pour la table d'index, la fonction
d'adressage associatif implantera un algorithme de recherche dans cette table
(recherche squentielle, dichotomique si la table est trie, etc...).

4.2 Exercice sur l'accs direct

n propose un fichier de 9 enregistrements sur le disque


'C:\FicheCarac' :

Chaque enregistrement est de taille fixe (comportant 4 caractres), tous les


enregistrements ont le mme format : XYZT (o X,Y,Z,T est un caractre ASCII
quelconque).
Nous nous proposons pour dfinir une clef d'accs un enregistrement, d'utiliser le
premier caractre de l'enregistrement (ce qui autorise un fichier d'au plus 256
enregistrements). Nous supposons pour limiter l'exemple peu de valeurs que les
caractres ne sont que des lettres (26 enregistrements au plus). Une clef d'accs

sera une chane de caractre contenant par exemple en troisime position le mme
caractre que celui qui est le premier dans l'enregistrement.
Nous dcidons que la fonction de conversion de la clef (note RechercheIndex) est
charge de fournir en pascal partir du troisime caractre de la clef, le numro de
l'enregistrement et de le passer la procdure Seek.
Nous construisons une table d'index o par exemple nous mettrons ensembles dans
une mme cellule abstraite toutes les clefs rencontres ayant le mme troisime
caractre, l'autre cellule contiendra le numro de l'enregistrement associ :
Si nous prenons l'enregistrement suivant ' t o i t' de rang 20, les
mots bateau, total, site, mythe, sont chacun d'entre eux des clefs permettant
d'accder ce mme enregistrement.

4.3

Fonctionnement de l'assistant

'assistant permet de simuler la recherche et l'association dans une


table d'index par un click de souris dans une case contenant un clef (simulation de
la slection) et surlignage de l'enregistrement associ. Ci-dessous se trouve un
dtail des icnes de l'interfaces de l'assistant.
1) Soit le programme pascal suivant comprenant une
fonction RechercheIndex d'association d'une clef de type string en un entier qui est
le rang de l'enregistrement asoci cette clef :

travaillant sur le fichier var Fichier : file of string :

et proposant une table d'index dj construite :

2) Si vous voulez accder un des 9 enregistrements il vous suffit d'effectuer un


click simple sur l'une des cases bleues de la table d'index, l'index de la cl se situe
dans la case orange associe et le logiciel vous indique l'enregistrement concern
dans le fichier :

3) Afin de tester votre bonne comprhension du mcanisme, l'assistant autorise la


saisie d'une nouvelle clef dans une case bleue par un click simple prolong sur la
case (ci-dessous, on tente de remplacer la clef 'VYBNHLO' de l'enregistrement
n1 par une clef personnalise associe ce mme enregistrement) :

Si votre clef est correcte, elle est mmorise et utilisable maintenant dans la table
(simple click), dans le cas d'une saisie incorecte l'assistant vous signale que la clef

n'est pas du bon type (ci-dessous tentative de changement incorrece de la clef


'VYBNHLO' de l'enregistrement n1):

l'assistant vous indique comment construire une bonne clef (ici le troisime
caractre doit tre un 'B')

L'assistant engendre chaque fois une configuration totalement diffrente de la


prcdente.

5. Comparaison adressage fonctionnel


adressage associatif
5. Tableau
5.1 Squentiel index
Retour au thme fichiers

5. Tableau

ableau comparatif
type
d'adressage

Fonctionnel
(accs direct)

Avantages

Les cls ne sont pas


stockes,

Inconvnients
Il n'est pas vident de trouver une
fonction bijective permettant de relier
une cl un seul enregistrement

Les temps d'accs sont trs


rapides

la bijection entre la cl et le n de
Associatif
l'enregistrement est immdiate
(accs index) aprs parcours de la table

Limitations imposes par la place


en mmoire centrale,

Il faut un algorithme de parcours


de la table

5.1 Squentiel index

'est un cas particulier d'organisation indexe hybride avec un


parcours squentiel.
Il y a une table d'index, mais l'ensemble des cls est ordonn et partitionn en
plusieurs plages distinctes ne se recouvrant pas et ce sont ces plages de cls aui sont
entres dans la table. Chaque plage est associe un numro d'enregistrement
unique : celui de la premire cl (la borne infrieure de la plage).
Lorsque l'on entre une cl, l'algorithme consiste chercher dans quelle plage elle se
situe puis de rechercher cette plage dans la table d'index, enfin de positionner le
pointeur sur l'enregistrement de dpart (partie accs index). A partir de cet instant
la recherche continue squentiellement depuis la cl minimale jusqu' la cl
maximale.
Le schma ci-dessous rsume le fonctionnement :
Kpj est la clef entre dans la table d'index.
Une plage Kp1 .. Kpn est trouve contenant Kpj (Kp1 < Kpj < Kpn).
Cette plage est associe au bloc (enregistrement) Kp1
partir du bloc Kp1 la recherche se fait en squence jusqu' Kpj.

Afin de remdier aux limitations des aux trs grands fichiers (problme de taille
de la table d'index en mmoire centrale), le squentiel index partitionne la table
d'index en plusieures sous-tables. Une table principale nomme table d'index
principal qui permet d'accder un instant donn une sous-table de taille plus
petite (table d'index secondaire) qui rside en mmoire centrale. Les tables dans
les bases de donnes sont gnralement architectures autour de cette
configuration.
On partitionne l'intervalle de toutes les clefs et la table d'index principal ne contient
que la borne infrieure des intervalles, une table secondaire contient toutes les clefs
comprises entre deux bornes infrieures conscutives (toutes les clefs de
l'intervalle) et l'on peut ritrer ce partitionnement si ncessaire.

Un exemple d'un tel partionnement (d'autres sont possibles) :

3.3. Fichiers squentiels longueur variable

On dsire crer sur disque un fichier squentiel denregistrements


logiques, dont la taille est variable, parmi trois tailles possibles :
65% des enregistrements font 200 octets,
25% des enregistrements font 280 octets,
10% des enregistrements font 360 octets.
Les secteurs du disque font 1024 octets, le temps daccs s
secteurs conscutifs est 8+s millisecondes, pourvu que la suite
des oprations permette de ngliger les mouvements de bras.
A Dterminer la taille moyenne des enregistrements du fichier.
B Donner la structure de bloc physique permettant le
regroupement de plusieurs enregistrements logiques.

C tant donnes les caractristiques du disque, quelle taille de


bloc physique vous parat judicieuse? En dduire loccupation
despace disque.
D votre avis, quelles sont les conditions qui permettent de
ngliger les mouvements de bras? Sont-elles remplies ici, et si oui,
quel est le temps moyen de lecture ou dcriture par
enregistrements logique?

Solution de lexercice 3.3


3.3.1. Question A

Si on prend 100 enregistrements, 65 ont une longueur de 200, 25


une longueur de 280 et 10 ont une longueur de 360, le total est
donc de 23600, soit une longueur moyenne de 236.
3.3.2. Question B

Nous pouvons reprendre le raisonnement dj vu dans lexercice


prcdent, mais cette fois les enregistrements sont de longueur
variable, et il faut connatre la taille de chacun. Le choix dun
caractre spcial comme sparateur nest pas en gnral
acceptable, car cela implique de linterdire dans les
enregistrements eux-mmes, ce qui est une contrainte pour
lutilisateur. Lautre solution est de faire prcder chaque
enregistrement de sa taille. Dans beaucoup de systmes, la
structure est dfinie de faon standard et complte, pour
permettre de prendre en compte d'une part les enregistrements
de taille variable, les blocs de taille variable, ainsi que les
oprations de lecture arrire. Une certaine redondance est
prsente, pour permettre des contrles. La structure d'un bloc
physique pourrait tre la suivante:
numro_bloc2octets
long_bloc
2octets
long_enrg
2octets
enregistrement poctets
nfois
long_enrg
2octets
long_bloc
2octets
numro_bloc2octets

La taille moyenne dun bloc physique est donc 8 + 240 n.


3.3.3. Question C

Un bloc physique doit occuper un nombre entier de secteurs de


1024 octets. On peut donc tudier combien il est possible de
mettre denregistrements dans 1, 2, 3 ou 4 secteurs. Daprs la
question prcdente, si s est le nombre de secteur occups par le

bloc physique, n = (1024 s 8) div 240. Le tableau donne les


diffrents cas :
s

Taille bloc Perte en %

968

5,5

1928

5,9

12

2888

6,0

17

4088

0,2

Si on cherche optimiser la place disque, il semble bien que des


blocs physiques de 4 secteurs donnent le minimum de perte.
Notons que le nombre denregistrements par bloc est un nombre
moyen, mais que plus ce nombre augmente, plus la rpartition
entre les tailles denregistrements se rapprocheront de la
rpartition de lensemble du fichier, ce qui milite galement pour
des blocs de 4 secteurs.
3.3.4. Question D

Si lallocation des blocs physiques est contigu et que lon fait un


parcours squentiel des enregistrements du fichier, il ny aura pas
de mouvement de bras entre deux lectures ou critures de blocs
physiques, et ils peuvent donc tre ngligs. Dans ce cas, la
lecture dun bloc demandera, pour des blocs de 4 secteurs,
8 + 4 = 12 ms. Notons que ceci veut dire une moyenne de 0,7 ms
par enregistrement logique du fichier.

La gestion physique des fichiers


Le concept de fichier nest pas propre linformatique, il peut tre dfinie comme un
un ensembleorganis de donnes de mme nature ayant des formats identiques, des relations
logiques et susceptibles dtre traites de faon itrative.
Le dveloppement de linformatique a conduit a dvelopp des applications dont les donnes
sont issues ou les rsultats sont stocks dans des fichiers. Dun point de vue informatique, un
fichier est un ensemble denregistrements de mme type.
Un enregistrement, ou enregistrement logique, est un ensemble de champs "connexes"
(caractrisant un mme objet) ; le fichier est donc un ensemble denregistrements.
Le traitement informatique dun fichier ncessite de distinguer dune part lorganisation
logique du fichier et, dautre part, son organisation physique. Cet article dcrit dune part
lorganisation physique des fichiers et elle prsente ensuite les principaux types de fichiers
existants.

Organisation physique des fichiers

Dun point de vue physique, les fichiers sont stocks sur des mmoires auxiliaires. Toute
mmoire auxiliaire est organise en units physiques de lecture-criture.
Une unit physique de lecture-criture, ou bloc, est une suite doctets qui sont lus ou crits
"en bloc" lors dune opration physique lmentaire dchange entre la mmoire auxiliaire et
la mmoire centrale.
Un bloc peut contenir plusieurs enregistrements logiques mais un enregistrement logique peut
aussi tre stock sur plusieurs blocs. Dans certains cas, un bloc peut ne pas tre rempli.
La lecture ou lcriture dun enregistrement logique implique donc le transfert du (ou des)
bloc(s) entier(s) le contenant. Pour un accs rapide, on pourrait donc envisager de dfinir des
blocs de grande taille. Cependant, si les fichiers sont de petite taille, ils sont stocks sur un
bloc au minimum. Par consquent, un disque contenant beaucoup de fichiers de petite taille
aura un espace gaspill important si les blocs sont de grande taille. La taille des blocs est
dfinie soit pour un fichier donn, soit pour tous les fichiers dune mme mmoire. Dans ce
cas, la taille est dfinie au moment du formatage du support physique.

Chaque disque conserve, dans un ou plusieurs blocs spcifiques, un certain nombre


dinformations de fonctionnement, telles par exemple que le nombre de ses blocs, leur taille,
etc. Chaque disque mmorise galement lensemble de ses blocs ainsi que leur tat dans une
table. Si cette table est binaire, un disque de n blocs devra alors rserver une table de n bits;
la position de chaque bit indiquant si le bloc est libre ou sil est utilis par un fichier, par
exemple, 0 pour un bloc occup et 1 pour un bloc libre.
Lorsquil est stock sur une mmoire auxiliaire, un fichier se compose de blocs, parfois munis
dun en-tte de bloc, qui regroupe des enregistrements logiques, parfois pourvus dun entte. Il comporte galement une tiquette didentification et, ventuellement, une tiquette de
fin (Cette tiquette est gnralement rserve aux fichiers enregistrs sur bande
magntique).

Ltiquette didentification label, contient les lments didentification du fichier : nom


physique, date de cration, nombre de blocs,
Gnralement, ltiquette didentification se trouve dans la table dallocation de fichiers du
rpertoire. Lorsque les fichiers sont enregistrs sur une mmoire adressable accs direct,
lallocation des blocs qui le composent est en gnral non contigu et les blocs sont rpartis
de faon alatoire sur le disque. Dans ce cas, len-tte de bloc contient alors un "pointeur" qui
prcise ladresse du bloc suivant.

Lorsque les enregistrements logiques possdent un en-tte, il contient des renseignements


sur la longueur de lenregistrement, sa cl, etc.

Type de fichiers
Il existe quatre types de fichiers :

Le fichier organisation squentielle regroupe un ensemble denregistrements


logiques qui sont rangs les uns derrire les autres dans des blocs conscutifs. Les blocs
sont physiquement conscutifs ou rendus conscutifs par chanage. Dans mode
dorganisation, laccs au fichier est ncessairement squentiel.

Le fichier organisation relative regroupe des enregistrements logiques qui ont


une taille fixe et chaque enregistrement possde un numro qui prcise son ordre de
rangement dans le fichier. Le numro peut servir de cl. Dans ce mode dorganisation,
laccs est squentiel ou direct.

Le fichier rangement calcul regroupe des enregistrements logiques qui ont une
taille fixe mais chaque enregistrement dispose dune cl (autre que son numro). Cette
organisation ncessite une fonction dadressage programme, elle est surtout conue
pour un accs direct mais laccs squentiel reste possible.

Un fichier rangement index regroupe des enregistrements logiques tels que la


cl est quelconque. Cette organisation ncessite une table dindex qui associe un numro
denregistrement chaque cl. Ladressage est ralis automatiquement par
le systme de gestion de fichiers en fonction de la table dindex. Ce type dorganisation
autorise un accs direct et un accs squentiel dans lordre des cls (croissant ou
dcroissant).

Accs un enregistrement logique


Le systme de gestion de fichiers a pour fonction dassurer laccs aux enregistrements
logiques stocks dans les blocs dun fichier. Le fonctionnement de ce systme sappuie sur une
zone de la mmoire centrale, dsigne mmoire tampon buffer, qui a une taille suprieure
ou gale celle dun bloc.

Accs squentiel
Le stockage des enregistrements dans un fichier squentiel seffectue au fur et mesure de
leur cration. Laccs un enregistrement ne peut seffectuer quaprs lecture des prcdents
(les enregistrements sont repris ncessairement dans lordre o ils ont t crs). Ce type de
fichiers est principalement utilis sur des supports mmoires non adressables accs
squentiel.

Considrons une application qui doit effectuer un traitement sur tous les enregistrements dun
fichier (impression, par exemple) ; chaque bloc du fichier contient n enregistrements logiques.
Lors de la premire lecture, le premier bloc est transfr en entier dans la mmoire
tampon et le premier enregistrement logique est recopi dans la zone de mmoire centrale
correspondant au traitement en cours. Suite au traitement, le second enregistrement logique
est charg en mmoire centrale. Cette opration est rpte pour les n enregistrements du
bloc ou jusqu la dtection de ltiquette de fin. Une fois le premier bloc trait, le second bloc
est transfr dans la mmoire tampon et laccs aux enregistrements logiques est identique.
Lorsquil sagit dune criture, le fonctionnement est similaire. Lenregistrement logique est
transfr de la mmoire centrale vers la mmoire tampon et lorsquun bloc est complet, il est
transfr sur la mmoire auxiliaire. Quand le traitement sur le fichier est termin, une
tiquette de fin est ajoute dans le dernier bloc trait (avant le transfert sur la mmoire
auxiliaire).

Accs direct
Les fichiers accs direct ncessitent lusage de mmoires adressables accs direct.
Pratiquement, laccs un enregistrement seffectue par la connaissance dun numro qui
rfrence ladresse physique de lenregistrement sur la mmoire auxiliaire. Dans ce cas,
lintroduction dun nouvel enregistrement peut modifier ladresse de certains enregistrements.
Face ce problme, il convient de dissocier lidentification et les enregistrements par la
cration dun fichier particulier qui associe lidentification logique de chaque enregistrement
son adresse physique. Ce fichier dindex est tel que sa consultation, mme squentielle, est
rapide.
Les fichiers accs index ncessitent galement lusage de mmoires adressables accs
direct. Ils sappuient sur un fichier dindex dont la gestion est assure par le systme de
gestion de fichiers. De ce fait, la gestion des adresses physiques des enregistrements est
transparente pour les utilisateurs car ces derniers ne font rfrence qu lidentification
logique des enregistrements.
Considrons maintenant une application
enregistrement logique partir de la cl.

qui

doit

effectuer

un

traitement

sur

un

A partir de la cl, le systme de gestion de fichiers sappuie sur son mcanisme dadressage,
la table dindex dans le cas dun fichier rangement index, pour trouver ladresse du bloc
contenant lenregistrement logique. Le bloc est ensuite entirement transfr dans la
mmoire tampon et lenregistrement logique concern est transfr dans la mmoire centrale.
Suite au traitement, lenregistrement est transfr dans la mmoire tampon et le bloc est
copi sur la mmoire auxiliaire.

Oprations sur les fichiers


Le systme de gestion de fichiers fournit diffrentes oprations pour manipuler les fichiers.
Attribution dun nom : un fichier est identifi par deux noms :

le nom logique : nom du fichier au sein dune application,

le nom physique : nom du fichier sur la mmoire auxiliaire.

Ouverture dun fichier : mise en correspondance des noms (logique et physique) et


rservation de la mmoire tampon.

Fermeture dun fichier : libration de la mmoire tampon et rupture de la liaison


entre les noms.

Suppression dun fichier : suppression physique du fichier ou suppression dans la


table dallocation (suppression logique).

Lecture dun enregistrement : recherche de lenregistrement et copie en mmoire


centrale via la mmoire tampon.

Ecriture dun enregistrement : transfert de la mmoire centrale vers la mmoire


tampon et copie sur la mmoire auxiliaire.

Suppression dun enregistrement : suppression physique de lenregistrement ou


marquage de lenregistrement (suppression logique)

L'unit centrale
Lunit centrale est un ensemble de circuits lectroniques permettant de manipuler des
donnes sous forme binaire (reprsentes par des variations de signaux lectriques).
Elle est compose des deux organes suivants :

le processeur,

la mmoire centrale.

Le processeur
Le processeur, composant essentiel d'un ordinateur, excute un programme (ensemble fini
dinstructions) pour raliser une squence dfinie de traitements. Les instructions, souvent
dcomposes en micro-instructions, sont exprimes en code binaire ; chaque processeur
dispose de son propre langage. De par sa fonction, le processeur doit assurer dune part une
fonction de contrle et de coordination et, dautre part, une fonction de calcul.
Le processeur est compos des lments suivants :
une unit arithmtique et logique qui prend en charge les calculs et les tests,

une unit de contrle, cadence par une horloge, qui dcompose de linstruction
traiter en une suite de micro-instructions et qui synchronise leur excution,

les registres, qui sont des mmoires spcialises daccs rapide (stockage de
donnes, dadresses ou dinstructions). Un certain nombre de registres sont communs
la plupart des processeurs, parmi lesquels :

le compteur dinstruction contient


dexcution,

ladresse

mmoire

de

linstruction

en

cours

l'accumulateur stocke les oprandes et le rsultat de lopration excute par lUAL,

le registre dadresse contient ladresse de la prochaine instruction excuter,

le registre dinstruction contient linstruction en cours de traitement,

le registre dtat stocke le contexte du processeur (des indicateurs, ou flags, dcrivent


le rsultat de la dernire instruction excute),

le squenceur synchronise les diffrents lments du processeur : il initialise les


registres lors du dmarrage de la machine et il gre les interruptions,

lhorloge synchronise toutes les actions de lunit centrale, sa cadence est exprime en
Hertz (Hz),

l'unit dentre-sortie gre la communication avec la mmoire de lordinateur et avec


les priphriques, la transmission des ordres aux processeurs spcialiss.

Le traitement dune instruction par le processeur seffectue en quatre tapes :

acquisition : linstruction excuter est lue dans la mmoire par lunit de contrle,

dcodage : lunit de contrle dcode linstruction, lit dans la mmoire les donnes
ncessaires son excution et identifie linstruction suivante,

excution : lunit arithmtique et logique excute linstruction,


stockage : lunit de contrle stocke les rsultats obtenus dans la mmoire ou dans
les registres.

Certaines units centrales sont capables de raliser un chevauchement entre ces diffrentes
tapes pour de diminuer les temps de traitement ; ce type de structure est dsigne
architecture pipeline (le processeur Pentium utilise cette technologie).
Un processeur est caractris par :

la capacit d'adressage,

la cadence dhorloge exprime en MHz (mga hertz) ou GHz (giga hertz),

la taille de ses registres (8, 16, 32, 64, 128 bits),

le jeu dinstruction de base (langage machine).

Le jeu dinstructions dfinit la famille du processeur. Citons, par exemple :

CISC : instructions aussi proches que possible d'un langage de haut niveau,

RISC : instructions simples permettant une excution trs rapide.

Il existe maintenant des architectures multiprocesseurs qui permettent une machine


dutiliser, de faon simultane, plusieurs processeurs. Il est possible de distinguer deux types
darchitecture multiprocesseur :

larchitecture symtrique qui utilise plusieurs


daugmenter la puissance de calcul de la machine,

processeurs

identiques

afin

larchitecture asymtrique qui adjoint au processeur central des processeurs


spcialiss (par exemple, contrle des priphriques, traitement dimages ou de sons).

Ces architectures ont pour objectif de partager ou rpartir les traitements et obtenir une
puissance de traitement plus importante. Parmi les processeurs spcialiss, citons le
processeur de calcul en virgule flottante qui permet dacclrer les calculs sur les nombres
rels.

La mmoire
La mmoire est un composant qui stocke, dans un format binaire, les lments ncessaires
lexcution dun programme par le processeur.
Il est ncessaire de distinguer deux types de mmoire :

la mmoire morte - ROM,

la mmoire vive -RAM.

Les caractristiques dune mmoire sont sa capacit et les temps daccs.


La mmoire morte est une mmoire non volatile qui conserve les donnes lorsque
l'alimentation lectrique est coupe. Cette mmoire est principalement utilise pour stocker
les informations ncessaires au dmarrage dun ordinateur ; seule la lecture des donnes est
autorise sur ce type de mmoire. Il existe diffrents types de ROM en fonction de la
possibilit de les programmer ou de les effacer :

ROM : contenu est dfini lors de la fabrication,

PROM : programmable une seule fois par l'utilisateur,

EPROM : programmable par l'utilisateur et effaable par une machine spciale,

EEPROM : programmable par l'utilisateur et effaable lectriquement,

UVPROM : programmable par l'utilisateur et effaable par bombardement d'ultra


violet.

La mmoire vive est une mmoire accs alatoire qui est volatile : toutes les donnes sont
perdues en labsence dalimentation lectrique. Cette mmoire stocke lensemble des donnes
et le programme ncessaires la ralisation dun traitement. Cette mmoire a la particularit
de pouvoir tre accde en lecture et en criture. Les donnes peuvent tre organises en
octets (8 bits).
La plupart du temps, le processeur dispose dune mmoire cache. La mmoire cache est une
mmoire tampon utilise pour acclrer les traitements en diminuant les accs la mmoire
vive. Cette mmoire est daccs plus rapide que la mmoire vive.

Les mmoires de masse


Les mmoires de masse, galement dsignes mmoires auxiliaires, sont des systmes de
stockage de donnes auxquels un ordinateur a accs. Les formats et les capacits des
mmoires de masse voluent sans cesse (elles sont actuellement de l'ordre du teraoctet),
nous nous contenterons donc de prsenter les principales caractristiques lies aux diffrents
types de mmoire existants.
Il existe diffrents types de support pour la mmoire de masse :

support magntique : bande magntique, disquette et disque dur

support optique : disque optique,

support lectronique : mmoire flash et cl USB.

Outre les diffrents types de support, il faut distinguer les mmoires accs squentiel ou les
mmoires accs direct.

Les supports magntiques


La bande magntique, utilise ds le dbut de linformatique, est un support magntique
permettant lenregistrement de donnes analogiques ou numriques.
Les bandes magntiques sont galement utilises pour stocker des supports audio et vido.
Dans le cadre de cette prsentation, nous nous limitons lutilisation dans un
cadre informatique.
Les donnes sont stockes de faon contigu du dbut la fin de la bande. Elles sont
stockes dans des blocs spars par des intervalles. A lheure actuelle, les bandes
magntiques ne sont plus utilises que pour larchivage et la sauvegarde mais le bon rapport
prix/densit des bandes magntiques en font toujours un support de choix.
La disquette est un priphrique de stockage magntique compos dun support souple
capable de stocker des donnes qui sont lues ou modifies par une tte de lecture-criture
positionne sur un bras. Les disquettes sont amovibles mais leur faible capacit de stockage
fait que ce support nest plus utilis actuellement.
Le disque dur est un priphrique de stockage magntique compos de plateaux capables de
stocker des donnes qui sont lues ou modifies par une tte de lecture-criture positionne
sur un bras. Chaque surface dun disque est compose de pistes concentriques. Les pistes
situes un mme diamtre forment un cylindre. Sur une piste, les donnes sont dlimites
en secteurs, aussi appels blocs. Il faut donc trois coordonnes pour accder un bloc :

le numro de la tte (choix de la surface),

le numro de la piste (dtermine le dplacement de la tte),

le numro du bloc sur cette piste (dtermine partir de quand il faut commencer
lire les donnes).

Les deux principaux facteurs de performance dun disque dur sont son temps daccs aux
donnes et sa capacit. Cette dernire a gnralement augment plus rapidement que le

temps daccs qui est contraint pas des aspects mcaniques. Les principaux facteurs utiliss
pour mesurer le temps daccs sont :

le temps de latence : temps pour positionner un secteur sous la tte de lecture (ce
temps dpend de la vitesse de rotation des plateaux,
le temps de recherche : temps pour positionner la tte de lecture sur une piste,
le temps de transfert : temps pour transfrer les donnes entre le disque dur et
l'ordinateur.

Face lutilisation croissante de linformatique dans les diffrents secteurs de lentreprise, il


est important de disposer dune architecture matrielle rapide, sre et bon march.
Larchitecture RAID est base sur la multiplication des disques durs et elle propose diffrentes
organisations du stockage de donnes sur les disques. Par exemple, larchitecture RAID 0
rpartit les donnes sur les diffrents disques et larchitecture RAID 1 utilise des disques
redondants. Ce type darchitecture soppose larchitecture SLED o toutes les donnes sont
stockes sur un seul disque de prix lev.

Les supports optiques


Depuis plusieurs annes, les supports magntiques amovibles sont remplacs par des disques
optiques. Le disque optique est un priphrique de stockage optique compos dun support
rigide capable de stocker des donnes qui sont lues ou modifies par une tte de lecturecriture optique. Les CD-ROM et DVD sont des priphriques amovibles qui ncessitent une
mthode de lecture optique ; un rayon laser vient frapper le disque en rotation et les
irrgularits (cavits) dtectes sur la surface rflchissante produisent des variations
binaires. Les premiers supports apparus sur le march sont les disques compacts CDROM. N en 1995, le DVD sest impos la place du CD-ROM pour les raisons suivantes car la
capacit de stockage est plus importante.

Les mmoires flash et les cls USB


La mmoire flash est une mmoire semi-conducteurs, non volatile et rinscriptible, c'est-dire une mmoire possdant les mmes caractristiques qu'une mmoire vive mais les
donnes ne disparaissent pas lors d'une mise hors tension. Ce type de mmoire est utilis
dans de nombreuses applications : appareils photos numriques, tlphones cellulaires,
imprimantes, assistants personnels (PDA), ordinateurs portables ou dispositifs de lecture et
d'enregistrement sonore comme les baladeurs. De plus, ce type de mmoire ne possde pas
d'lments mcaniques, ce qui lui confre une bonne rsistance aux chocs.
Une cl USB est un petit priphrique de stockage de donnes qui utilise une mmoire flash
et un connecteur USB. Les cls USB sont alimentes en nergie par la connexion USB d'un
ordinateur sur lequel elle est branche. Une cl USB ne contient donc pas de batterie. Elles
sont insensibles la poussire et aux rayures, contrairement d'autres supports tels que le
CD-ROM ou le DVD, ce qui leur donne un indniable avantage au niveau de la fiabilit.
Ces mmoires sont actuellement utilises pour remplacer les disques durs magntiques dans
les ordinateurs portables.

Les priphriques
Un priphrique informatique est un terme gnrique donn aux composants assurant une
communication entre lunit centrale et le monde extrieur.
Il existe trois types de priphrique :

les priphriques d'entre : saisie des donnes,

les priphriques de sortie : affichage des rsultats

les priphriques d'entre-sortie : communication bi-directionnelle.

La plupart des priphriques sont amovibles, c'est--dire qu'ils peuvent tre dconnects de
l'unit centrale sans empcher celle-ci de fonctionner. Parmi les priphriques dentre-sortie,
nous distinguons les priphriques de communication qui traite des changes de donnes
entre plusieurs ordinateurs.
Les principaux priphriques d'entre sont :

le clavier,

les dispositifs de pointage : souris, trackball, tablette graphique,

la manette de jeu,

les dispositifs dacquisition numrique : crayon


numrique, appareil photo numrique, webcam,

optique,

scanner, camscope

les dispositifs dacquisition sonore : microphone.

Les principaux priphriques de sortie sont :

l'cran,

limprimante,

la table traante,

synthtiseur de parole.

Les principaux priphriques dentre-sortie sont les crans tactiles et les lecteurs de supports
de mmoire de masse amovibles (disquette, mmoire flash, cl USB, etc.).

3.1. Comparaisons d'implantation de fichiers


On considre les quatre reprsentations suivantes de la localisation d'un fichier,
reprsentations vues dans le chapitre 8.
a) Un couple <numro du premier bloc, nombre de blocs>
b) Un couple <numro du premier bloc, numro du dernier bloc> avec chanage des
blocs entre eux.
c) Un ensemble de 24 couples <numro de bloc, nombre de blocs>
d) Un ensemble de 13 numros de blocs:
- 10 numros de blocs contenant des donnes,
- 1 numro de bloc contenant des numros de blocs contenant des donnes,
- 1 numro de bloc contenant des numros de blocs contenant des numros de blocs
contenant des donnes,
- 1 numro de bloc contenant des numros de blocs contenant des numros de blocs
contenant des numros de blocs contenant des donnes,
Donner pour chacune de ces reprsentations, celles des propositions suivantes qui
sont vrifies, en justifiant brivement votre rponse.
1. La taille totale du fichier doit tre connue lors de sa cration.
2. Aucune information de taille n'est ncessaire lors de la cration.

3. Il est possible que le fichier ne puisse tre cr alors que l'espace libre est
suprieur la taille du fichier.
4. L'accs alatoire un bloc quelconque du fichier demande un seul accs
disque.
5. L'accs alatoire un bloc quelconque du fichier demande au plus 4 accs
disque.
6. L'allocation d'espace peut se faire par blocs individuels.

Solution de lexercice 3.1


La rponse peut se rsumer par le tableau suivant:
a
b
c
d

1
x

3
x

4
x

5
x

x
x

x
x

Justification des colonnes 1, 2, 3 et 6:


Dans le cas a, l'espace allou forme un seul groupe de blocs contigus, sa
taille doit donc tre connue la cration, il est possible qu'un tel espace
n'existe pas ce moment. Par ailleurs, l'allocation ne peut se faire par blocs
individuels, car on ne peut les reprer.
Le cas c est voisin de a, si ce n'est que la prsence de 24 groupes possibles
permet de ne pas connatre exactement la taille du fichier la cration, mais
seulement une ide du minimum et du maximum.
Dans les cas b et d, les blocs peuvent tre ajouts au fur et mesure des
besoins, suivant une allocation par blocs individuels. On n'a donc besoin
d'aucune information sur la taille du fichier lors de la cration.
Justification des colonnes 4 et 5:
Les cas a et c permettent un calcul de l'adresse physique d'un bloc
directement partir de la reprsentation de la localisation du fichier. Il y aura
donc un seul accs disque, et donc au plus 4.
Le cas b demande parcourir les liens de chanage entre blocs. On ne peut
donc a priori limiter le nombre des accs disque ncessaires.
Le cas d demande entre 0 et 3 accs, pour parcourir les blocs contenant des
numros de blocs, donc au plus 4 accs disque.

3.2. Reprsentation des fichiers squentiels

On tudie dans cet exercice diverses reprsentations d'un fichier


dont les enregistrements logiques sont de 50 octets.
A- On dispose d'un lecteur de bandes magntiques 1600 BPI
(Bytes Per Inch). On suppose que l'espace interbloc est de 3/4
inch. Le temps de lecture ou d'criture d'un bloc physique de T
octets est 10 + 0.008 * T ms.
A.1- On place un enregistrement logique du fichier par bloc
physique. Donner le coefficient d'utilisation de la bande ainsi que
le temps de lecture/criture d'un enregistrement logique.
A.2- Pour amliorer cette utilisation, proposer une structure d'un
bloc physique permettant le regroupement de plusieurs
enregistrements logiques dans un mme bloc. Dcrire brivement
l'algorithme de lecture, ainsi que l'algorithme d'criture des
enregistrements logiques du fichier.
A.3- Donner, dans les hypothses de A.2, la taille d'un bloc en
fonction du nombre n d'enregistrements logiques qu'il contient.
Donner le coefficient d'utilisation de la bande et le temps moyen
de lecture/criture d'un enregistrement logique, lorsque n = 20
ou n = 50.
B- On dispose d'un disque dont les secteurs sont de 1024 octets.
On suppose que le temps moyen de lecture/criture de s secteurs
conscutifs est 8 + s ms (On ne prend pas en compte le
mouvement du bras, car on suppose le bras bien plac au
moment de l'opration).
B.1- On place un enregistrement logique du fichier par secteur.
Donner le coefficient d'utilisation du disque ainsi que le temps
d'excution de lecture/criture par enregistrement logique, lors
d'un accs squentiel au fichier.
B.2- On applique la mthode de regroupement vue en A.2. Donner
le coefficient d'utilisation de la bande et le temps moyen de
lecture/criture d'un enregistrement logique, lorsque n = 20
ou n = 50.
B.3- Donner la valeur de n qui utilise au mieux les blocs physiques
sur 1 secteur; donner dans ce cas le coefficient d'utilisation du
disque ainsi que le temps moyen de lecture/criture d'un

enregistrement logique dans ce cas. Mme question lorsque les


blocs occupent 2, puis 3 secteurs.
C- Le disque comporte 16 secteurs par piste, 20 faces, et 900
cylindres.
C.1- Proposer une numrotation linaire de l'ensemble des
secteurs, ainsi que l'algorithme associ permettant de retrouver
partir d'un numro virtuel de secteur ses numros de secteur,
face, cylindre.
C.2- L'espace attribu au fichier est une collection d'au plus 24
groupes de secteurs virtuels contigus, le premier groupe tant de
taille s, et les suivants tant de taille i. Proposer une
reprsentation de l'espace allou un fichier. Dfinir les
algorithmes de lecture et d'criture squentielle d'un
enregistrement logique, en supposant les enregistrements
regroups par bloc de 1 secteur comme prcis en B.3.
C.3- valuer le nombre d'enregistrements logiques du fichier
suivant les valeurs des paramtres s et i. Donner les critres de
choix qui permettraient de dterminer ces paramtres.
C.4- Application numrique, d'une part au cas o l'on sait que le
fichier contiendra exactement 500000 enregistrements logiques,
d'autre part au cas o le fichier contiendra entre 300000 et
1000000 enregistrements.

Solution du problme 3.2


3.2.1. Question A

3.2.1.1. Question A.1


L'espace interbloc reprsente 3/4 * 1600 octets, soit 1200 octets.
L'occupation est donc de 50 / 1250, soit 4 %. Le temps de
lecture/criture est de 10 + 0.008 * 50, soit 10.4 ms.
3.2.1.2. Question A.2
Lorsque les enregistrements sont de taille fixe, la structure la plus
simple est de les mettre les uns derrire les autres, charge pour
les sous programmes de lecture et dcriture de ces
enregistrements de dcouper le bloc physique selon la taille
connue des enregistrements logiques. Lorsquils sont de taille
variable, il faut connatre la taille de chacun. Le choix dun
caractre spcial comme sparateur nest pas en gnral
acceptable, car cela implique de linterdire dans les

enregistrements eux-mmes, ce qui est une contrainte pour


lutilisateur. Lautre solution est de faire prcder chaque
enregistrement de sa taille. Dans beaucoup de systmes, la
structure est dfinie de faon standard et complte, pour
permettre de prendre en compte d'une part les enregistrements
de taille variable, les blocs de taille variable, ainsi que les
oprations de lecture arrire. Une certaine redondance est
prsente, pour permettre des contrles. La structure d'un bloc
physique pourrait tre la suivante:
numro_bloc2octets
long_bloc
2octets
long_enrg
2octets
enregistrement poctets
nfois
long_enrg
2octets
long_bloc
2octets
numro_bloc2octets

Pour raliser les oprations de lecture et d'criture, on doit


disposer d'un tampon de au moins T octets, et de trois
variables numro donnant le numro du bloc en
cours, long reprant la longueur du bloc courant
et position reprant la position dans le bloc du prochain
enregistrement lire (ou crire). Nous ne nous proccupons ici
que de la lecture avant, laissant au lecteur le soin de raliser
l'opration de lecture arrire. Les procdures pourraient tre
comme suit:
procdurelire_enrg(varenregistrement:tableau_octets;varl_enrg:
entier);
dbutsiposition>=long4alors
numro:=numro+1;lire_bloc;{lecturephysiquedansle
tampon[0..T1]}
sitampon[0..1]?numroalorserreur("numrodebloc
erron")finsi;
long:=tampon[2..3];position:=4;
finsi;
l_enrg:=tampon[position..position+1];
enregistrement:=tampon[position+2..position+1+l_enrg];
position:=position+4+l_enrg;
fin;
procdurecrire_enrg(enregistrement:tableau_octets;l_enrg:entier);
dbutsiposition+l_enrg+8>taille_maxalors
numro:=numro+1;
{finde
prparationdubloc}
tampon[0..1]:=numro;
tampon[2..3]:=position+4;
tampon[position..position+1]:=position+4;
tampon[position+2..position+3]:=numro;
crire_bloc;
{criture
physiquedutampon}
position:=4;

finsi;
tampon[position..position+1]:=l_enrg;
tampon[position+2..position+1+l_enrg]:=enregistrement;
tampon[position+2+l_enrg..position+3+l_enrg]:=l_enrg;
position:=position+4+l_enrg;
fin;

3.2.1.3. Question A.3


La taille d'un bloc est T = 8 + n * ( p + 4 ), soit dans notre cas, T
= 8 + n * 54. On peut mesurer l'utilisation de deux faons, soit en
prenant l'ensemble des informations crites, soit en ne
considrant que les enregistrements seuls. On a donc:
n

utilisation util. stricte

temps

8+n(4+p)

T/
np/
(T+1200) (T+1200)

(10+8103
T)/n

20

1088

48 %

44 %

0.94 ms

50

2708

69 %

64 %

0.63 ms

3.2.2. Question B

3.2.2.1. Question B.1


En prenant 1 secteur par enregistrement logique, le coefficient
d'utilisation du disque est de 50 / 1024, soit environ 4.9 %. Le
temps d'une opration est de 9 ms par enregistrement logique.
3.2.2.2. Question B.2
Avec la mthode de regroupement dfinie en A.2, comme il faut
un nombre entier de secteurs par bloc, on a donc:
n

8+n(4+p) T/1024

utilisation

util.
stricte

temps

T/1024s

np/1024s

(8+s)/n

20

1088

53 %

49 %

0.5 ms

50

2708

88 %

81 %

0.22 ms

3.2.2.3. Question B.3


En conservant la mthode de A.2, la valeur optimale de n pour un
bloc de s secteurs est la partie entire de (1024 * s - 8) / (p + 4).
On a donc:
s

n
(1024s-8)/
(p+4)

18

utilisation

8+n(4+p) T/1024s
980

96 %

util.
stricte

temps

np/1024s

(8+s)/n

88 %

0.5 ms

37

2006

98 %

90 %

0.27 ms

56

3032

98.7 %

91 %

0.2 ms

3.2.3. Question C

3.2.3.1. Question C.1


Une numrotation linaire possible est nv = ns + 16 * (nf + 20 *
nc). Cette numrotation permet de donner des numros
conscutifs tous les secteurs d'un mme cylindre, et donc
d'viter les mouvements de bras entre secteurs virtuels voisins.
L'algorithme permettant de retrouver les numros de secteur,
face, cylindre d'un secteur virtuel est le suivant:
ns := nv mod 16;
nf := (nv % 16) mod 20;
nc := (nv % 16) % 20;
3.2.3.2. Question C.2
L'espace allou au fichier peut tre reprsent par la structure
suivante:
espace=articles,i:entier;
{taille1ergroupeet
suivants}
nbg:entier;
{nombredegroupes
effectifsdufichier}
tab:tableau[0..23]deentier;
{tab[i]estlenumrovirtueldupremier
secteurdugroupei}
finarticle;

Cette structure est contenue dans le descripteur du fichier. Elle est


retrouve depuis le disque lors de l'ouverture du fichier, et sera
ventuellement rcrite sur disque en cas de modification
(nouvelle allocation). Pour permettre de parcourir le contenu du
fichier, on dispose d'une variable supplmentaire nsf qui repre le
numro logique du secteur correspondant au bloc actuellement
dans le tampon. Ce numro varie depuis 0 jusqu' N-1, si N est le
nombre total de secteurs du fichier. L'algorithme de lecture d'un
enregistrement logique est le mme que prcdemment. Nous
n'avons qu' prciser l'opration de lecture des blocs physiques.
procdurelire_bloc;
dbutnsf:=nsf+1;
sinsfespace.salorsnv:=espace.tab[0]+nsf;{premier
groupe}
sinonng:=(nsfespace.s)%espace.i+1;{groupes
suivants}

sing?espace.nbgalorserreur("nonallou");finsi;
nv:=espace.tab[ng]+(nsfespace.s)modespace.i;
finsi;
ns:=nvmod16;nf:=(nv%16)mod20;nc:=(nv%16)%20;
lire_secteur(tampon,ns,nf,nc);
fin;

De mme, l'algorithme d'criture d'un enregistrement logique est


le mme que prcdemment, et c'est mme ce qui justifie de
prendre la mme structure de bloc. Nous n'avons qu' dfinir la
procdure d'criture des blocs physiques.
procdurecrire_bloc;
dbutsinsfespace.salorsnv:=espace.tab[0]+nsf;{premiergroupe}
sinonng:=(nsfespace.s)%espace.i+1;{groupes
suivants}
tantqueng?espace.nbgfaire
siespace.nbg=24alorserreur("tropdegroupes");
finsi;
demande_allocation(espace.tab[espace.nbg],
espace.i);
espace.nbg:=espace.nbg+1;
fait;
nv:=espace.tab[ng]+(nsfespace.s)modespace.i;
finsi;
ns:=nvmod16;nf:=(nv%16)mod20;nc:=(nv%16)%20;
crire_secteur(tampon,ns,nf,nc);
nsf:=nsf+1;
fin;

3.2.3.3. Question C.3


La rponse B.3 prcise qu'il y a 18 enregistrements logiques par
secteur. Le nombre de secteurs allous au fichier est
s + (nbg - 1) * i. Donc le nombre d'enregistrements logiques du
fichier est 18 * (s + (nbg - 1) * i) au plus, pour un nombre fix de
groupes. Si tous les groupes sont allous, le nombre
d'enregistrements peut atteindre 18 * (s + 23 * i). Par ailleurs,
toujours pour un nombre de groupes fix, il en contient:
nbg

nombre minimal
d'enregistrements

nombre maximal
d'enregistrements

18 * s

>1

18 * (s + (nbg - 2) * i)) + 1

18 * (s + (nbg - 1) * i))

Cependant, le dernier groupe allou ne sera occup en moyenne


qu' 50 %. La perte sera donc de 9 * s ou de 9 * i suivant les cas.
Ceci permet d'noncer quelques critres de choix:
a) Si le nombre d'enregistrements logiques du fichier, disons N,
est connu lors de la cration, et ne doit pas varier, un seul groupe

permet de diminuer les mouvements de bras, puisque l'espace


allou est contigu, donc occupe des cylindres conscutifs. Mais
encore faut-il trouver un espace de s = N / 18 secteurs conscutifs
libres.
b) Si le nombre N n'est connu que par sa limite infrieure N1 et sa
limite suprieure N2, on doit avoir s + 23 * i ? N2 / 18. Pour
minimiser la perte d'espace pour non utilisation, on peut prendre
i = (N2 - N1 ) / (18 * 24) et s = N1 / 18 + i. La perte d'espace sera
alors en moyenne quivalente 9 * i enregistrements logiques du
fichier. Mais encore faut-il trouver un espace libre contigu d'au
moins s secteurs.
c) Il est toujours possible de diminuer s, pour faciliter l'allocation
du premier groupe, mais il faut alors augmenter i en consquence.
Cependant, si l'allocation du premier groupe est impossible dans
ce cas, il est inutile de prendre s < i, car l'allocation des groupes
suivants sera de toute faon impossible. On peut donc en dduire
que s ? N2 / (18 * 24). Par ailleurs, on doit avoir
i ? ((N2 / 18) - s) / 23, pour pouvoir ranger les N2enregistrements.
3.2.3.4. Question C.4
Dans le cas o N = 500000, de a) ci-dessus, on en dduit que l'on
peut prendre s = 500000 / 18 = 27778 secteurs. Ceci reprsente
10 % de l'espace total du disque, qu'il faut trouver de faon
contigu. Si ceci n'est pas possible, de c) ci-dessus, on en dduit
que s ? 500000 / (18 * 24) = 1158 secteurs, et i ? (27778 - s) / 23.
Dans le cas o N1 = 300000 et N2 = 1000000, de b) ci-dessus, on
en dduit que l'on peut prendre i = 700000 / (18 * 24) = 1621, et
s = 16667 + 1621 = 18288. Notons que en vertu de c) ci-dessus,
on doit avoir s 2315, et i (55560 - s) / 23.
3.3. Fichiers squentiels longueur variable

On dsire crer sur disque un fichier squentiel denregistrements


logiques, dont la taille est variable, parmi trois tailles possibles :
65% des enregistrements font 200 octets,
25% des enregistrements font 280 octets,
10% des enregistrements font 360 octets.

Les secteurs du disque font 1024 octets, le temps daccs s


secteurs conscutifs est 8+s millisecondes, pourvu que la suite
des oprations permette de ngliger les mouvements de bras.
A Dterminer la taille moyenne des enregistrements du fichier.
B Donner la structure de bloc physique permettant le
regroupement de plusieurs enregistrements logiques.
C tant donnes les caractristiques du disque, quelle taille de
bloc physique vous parat judicieuse? En dduire loccupation
despace disque.
D votre avis, quelles sont les conditions qui permettent de
ngliger les mouvements de bras? Sont-elles remplies ici, et si oui,
quel est le temps moyen de lecture ou dcriture par
enregistrements logique?

Solution de lexercice 3.3


3.3.1. Question A

Si on prend 100 enregistrements, 65 ont une longueur de 200, 25


une longueur de 280 et 10 ont une longueur de 360, le total est
donc de 23600, soit une longueur moyenne de 236.
3.3.2. Question B

Nous pouvons reprendre le raisonnement dj vu dans lexercice


prcdent, mais cette fois les enregistrements sont de longueur
variable, et il faut connatre la taille de chacun. Le choix dun
caractre spcial comme sparateur nest pas en gnral
acceptable, car cela implique de linterdire dans les
enregistrements eux-mmes, ce qui est une contrainte pour
lutilisateur. Lautre solution est de faire prcder chaque
enregistrement de sa taille. Dans beaucoup de systmes, la
structure est dfinie de faon standard et complte, pour
permettre de prendre en compte d'une part les enregistrements
de taille variable, les blocs de taille variable, ainsi que les
oprations de lecture arrire. Une certaine redondance est
prsente, pour permettre des contrles. La structure d'un bloc
physique pourrait tre la suivante:
numro_bloc2octets
long_bloc
2octets
long_enrg
2octets
enregistrement poctets
nfois
long_enrg
2octets
long_bloc
2octets

numro_bloc2octets

La taille moyenne dun bloc physique est donc 8 + 240 n.


3.3.3. Question C

Un bloc physique doit occuper un nombre entier de secteurs de


1024 octets. On peut donc tudier combien il est possible de
mettre denregistrements dans 1, 2, 3 ou 4 secteurs. Daprs la
question prcdente, si s est le nombre de secteur occups par le
bloc physique, n = (1024 s 8) div 240. Le tableau donne les
diffrents cas :
s

Taille bloc Perte en %

968

5,5

1928

5,9

12

2888

6,0

17

4088

0,2

Si on cherche optimiser la place disque, il semble bien que des


blocs physiques de 4 secteurs donnent le minimum de perte.
Notons que le nombre denregistrements par bloc est un nombre
moyen, mais que plus ce nombre augmente, plus la rpartition
entre les tailles denregistrements se rapprocheront de la
rpartition de lensemble du fichier, ce qui milite galement pour
des blocs de 4 secteurs.
3.3.4. Question D

Si lallocation des blocs physiques est contigu et que lon fait un


parcours squentiel des enregistrements du fichier, il ny aura pas
de mouvement de bras entre deux lectures ou critures de blocs
physiques, et ils peuvent donc tre ngligs. Dans ce cas, la
lecture dun bloc demandera, pour des blocs de 4 secteurs,
8 + 4 = 12 ms. Notons que ceci veut dire une moyenne de 0,7 ms
par enregistrement logique du fichier.
3.4. tude de la structuration d'un disque

On se propose d'tudier une structuration pour des disques dont


la capacit est comprise entre 100 Mo. et 2 Go., les secteurs tant
de 4096 octets.
Les machines pour lesquelles ils sont destins manipulent des
octets, des entiers sur 16 bits ou des entiers sur 32 bits.

Les concepteurs du systme de gestion de fichiers ont dcid de


diviser chaque unit de disque (amovible ou non) de la faon
suivante:
le descripteur du disque, qui contient tous les
renseignements ncessaires son identification, les
paramtres variables de la structure, et une table donnant
accs aux fichiers.
la table d'allocation de l'espace, reprsentant l'espace libre
sur le disque.
la zone des fichiers, qui contient les descripteurs de fichiers
et l'espace de donnes de ces fichiers.
Un fichier est constitu de deux parties:
le descripteur de fichier qui contient toutes les informations
ncessaires sa localisation, et qui seront dtailles cidessous.
l'ensemble des zones physiques, qui contiennent les
donnes du fichier. Pour un fichier, toutes les zones
physiques du fichier ont la mme taille, et sont constitues
d'un nombre entier de secteurs contigus. Par contre les
diffrentes zones d'un mme fichier ne sont pas
ncessairement contigus.
A. tude des descripteurs de fichiers.

Les descripteurs de fichiers doivent reprer l'ensemble des zones


du fichier. Pour permettre un fichier de contenir un nombre
quelconque de zones, tout en ayant des descripteurs de taille fixe,
les descripteurs sont dcomposs en une partie principale
(obligatoire) et des parties extensions (optionnelles). Les parties
extensions ventuelles ont la mme structure que les parties
principales, les informations inutilises tant simplement mises
0 dans ce cas. Par la suite nous appellerons descripteur cette
structure, qu'elle soit utilise comme partie principale ou comme
extension. Les descripteurs de fichiers sont regroups dans des
secteurs du disque. Ces secteurs sont chans entre eux, pour
permettre la recherche des fichiers. Un descripteur de fichier a la
structure suivante:

le nom du fichier sur 16 octets,


des informations diverses sur 12 octets,
la longueur du fichier, c'est--dire le nombre total d'octets du
fichier,
le nombre total de zones du fichier,
la taille des zones en nombre de secteurs,
l'adresse de l'extension suivante (numro de secteur et
position dans le secteur),
l'adresse de la dernire extension du fichier,
la table des numros de premiers secteurs des premires zones.
A.1- En considrant que tout entier sur disque a la mme
reprsentation qu'en mmoire centrale, c'est--dire 16 ou 32 bits,
dterminer la taille en octets ncessaire la reprsentation de
chacune des informations suivantes:
un numro de secteur,
la longueur du fichier, c'est--dire le nombre total d'octets du
fichier,
le nombre total de zones du fichier,
la taille des zones en nombre de secteurs,
l'adresse d'une extension (numro de secteur et position dans
le secteur).
A.2- Dterminer la taille d'un descripteur en fonction du nombre
d'entres q de la table des premiers secteurs de zones dans un
descripteur. En dduire la valeur maximale du nombre r de
descripteurs dans les secteurs du disque qui les contiennent, en
fonction de q, et la perte qui rsulte d'un choix donn de r et q
compatibles.
A.3- tudier en particulier les cas o ce nombre q prend les
valeurs 31, 32 et 33. Calculer la perte d'espace dans chaque cas.
Commenter le choix de 32.
A.4- Expliquer l'intrt des diffrentes informations (autres que
diverses) qui sont prsentent dans la partie principale d'un

descripteur. On distinguera celles qui sont ncessaires et celles


qui sont redondantes, et on justifiera cette redondance. Montrer
que l'on peut dduire de ces informations le nombre d'extensions
du descripteur de fichier.
B. tude des descripteurs de disque

Nous avons dj dit que les descripteurs de fichiers taient


regroups dans des secteurs du disque, chans entre eux. Pour
minimiser le parcours de ces secteurs lors de la recherche d'un
fichier, on partitionne les descripteurs en p ensembles disjoints
par un calcul sur le nom du fichier, H(nom), qui dlivre un entier
entre 1 et p. Le descripteur du disque contient une table qui, pour
chacune des valeurs entre 1 et p, indique le numro du premier
secteur contenant les descripteurs des fichiers dont le
calcul H(nom) donne cette valeur (fonction de hachage). Le
descripteur du disque, qui doit tenir dans un seul secteur du
disque, est donc dfini comme suit:
le nom du disque sur 32 octets,
le nombre total de secteurs du disque,
le nombre de secteurs occups,
le nombre de fichiers existants sur le disque,
le nombre de descripteurs de fichiers par secteurs,
le nombre d'entres de la table de hachage,
la table de hachage, donnant pour chaque valeur de hachage le
numro du premier secteur des descripteurs de fichiers.
B.1- En considrant que tout entier sur disque a la mme
reprsentation qu'en mmoire centrale, c'est--dire 16 ou 32 bits,
dterminer la taille en octets ncessaire la reprsentation de
chacune des informations suivantes:
le nombre de fichiers existants sur le disque,
le nombre de descripteurs de fichiers par secteurs,
le nombre d'entres de la table de hachage,
B.2- Le descripteur du disque devant tenir dans un seul secteur,
combien peut-il y avoir au plus d'entres dans la table de

hachage? quel endroit convient-il de mettre ce secteur sur le


disque?
B.3- Expliquer l'intrt des diffrentes informations qui sont
prsentent dans le descripteur du disque. On distinguera celles
qui sont ncessaires et celles qui sont redondantes, et on justifiera
cette redondance.
B.4- Comment jugez-vous ce systme? Quels avantages ou
inconvnients y voyez-vous?
B.5- Dfinir la procdure d'ouverture d'un fichier, ainsi que la
procdure de lecture d'un octet quelconque de ce fichier dfini par
sa position relative au dbut du fichier.

Solution de lexercice 3.4


3.4.1. Question A

3.4.1.1. Question A.1


numro de secteur. Un disque peut contenir jusqu'
2*230 / 4*210 = 219 secteurs. Il faut donc au moins 19 bits pour
reprsenter un numro de secteur, soit un entier sur 32 bits,
ou 4 octets.
longueur du fichier. Un fichier ne peut dpasser la taille
maximale d'un disque, donc 2 * 230 = 231 Il faut donc des
entiers sur 32 bits, soit 4 octets pour reprsenter le nombre
d'octets utile d'un fichier.
nombre total de zones et taille des zones. En l'absence de
contrainte, une zone physique d'un fichier doit tre d'au
moins 1 secteur, mais pouvoir atteindre presque le disque
complet ( l'exception des informations structurelles). Un
fichier peut donc avoir 219 zones de 1 secteur; il faut donc 32
bits ou 4 octets pour reprsenter le nombre total de zones du
fichier. De mme, un fichier peut avoir 1 zone de 219secteurs;
il faut donc 32 bits ou 4 octets pour reprsenter la taille des
zones du fichier. Notons qu'il ne serait pas trs contraignant
et sans doute assez logique de limiter chacune de ces
quantits 216, permettant ainsi d'utiliser des entiers sur 16
bits ou 2 octets, puisque ceci nous donne de toute faon
232 secteurs, valeur nettement suprieure au nombre
maximal de secteurs d'un disque.

adresse d'une extension. L'adresse d'une partie extension


d'un descripteur doit permettre de dsigner d'une part le
numro de secteur disque o la partie extension est place
(19 bits), et d'autre part, sa position dans ce secteur. Celle-ci
peut tre dfinie simplement par le numro de son premier
octet (12 bits), donnant ainsi un total de 31 bits. Cette
position peut aussi tre le numro d'ordre du descripteur
dans le secteur, puisque tous les descripteurs sont de mme
taille. Par exemple, s'il y a au plus 32 descripteurs par
secteur, 5 bits suffiront alors pour ce numro, et une adresse
de partie extension ncessitera 24 bits. Enfin, en suivant la
politique de reprsentation des entiers en 16 ou 32 bits, on
constate alors qu'il faut 32 bits ou 4 octets dans tous les cas.
3.4.1.2. Question A.2
Pour dterminer le nombre de descripteurs de fichiers par secteur,
il faut dterminer la taille d'un descripteur. Nous reprenons les
donnes numriques de la question A.1, et les notons devant les
informations du descripteur de fichier:
16

le nom du fichier sur 16 octets,

12

des informations diverses sur 12 octets,

le nombre total d'octets du fichier,

le nombre total de zones du fichier,

la taille des zones en nombre de secteurs,

l'adresse de l'extension suivante (numro de secteur


et position dans le secteur),

l'adresse de la dernire extension du fichier,

4*q

la table des numros de premiers secteurs des


premires zones.

Il s'ensuit que le descripteur occupe 48 + 4 * q octets, o q est le


nombre d'entres de la table des premiers secteurs de blocs d'un
descripteur. Les secteurs contenant des descripteurs tant
chans entre eux, le lien de chanage occupe 4 octets, laissant
libres 4092 octets pour r descripteurs, et il s'ensuit que
r ? 4092 / (48 + 4 * q). Pour une valeur de r compatible avec q, la
perte est 4092 - r * (48 + 4 * q).
3.4.1.3. Question A.3
Nous avons les valeurs suivantes:

r
maximum

perte

31

23

136

32

23

44

33

22

132

Le choix de 32 est le plus optimal, puisqu'il correspond la plus


petite perte. Cependant, mme s'il induisait une perte suprieure
aux autres, il pourrait tre conserv car il a l'avantage de
permettre de reprsenter, dans chaque descripteur, qu'il soit
partie principale ou extension, un nombre de zones qui est une
puissance de 2.
3.4.1.4. Question A.4
Le nom du fichier est ncessaire pour distinguer les fichiers entre
eux, et permet l'utilisateur de dsigner ce fichier par une chane
de caractres. La longueur du fichier N est la seule information de
taille qui permette de savoir exactement quels sont les octets de
l'espace allou au fichier qui en font partie. La taille des zones T
est ncessaire pour dterminer la taille des zones allouer au fur
et mesure des besoins au fichier; elle permet galement de
dterminer quelle zone appartient le nime secteur du fichier.
L'adresse de l'extension suivante est ncessaire pour parcourir les
extensions du descripteur. La table des numros de premiers
secteurs permet de savoir o commence chaque zone sur disque,
et donc dtermine l'espace allou au fichier.
Le nombre total de zones du fichier est une information
redondante, en ce sens qu'elle peut tre reconstruite partir des
autres. En effet, le nombre de secteurs S est gal (N1)%4096+1, o % dsigne la division entire. partir de la taille
des zones T, on peut dduire le nombre de zones B = (S-1)%T+1.
Elle vite de refaire ce calcul en particulier pour dterminer la
taille de l'espace occup par le fichier sur le disque. Enfin
l'adresse de la dernire extension du fichier est galement une
information redondante, puisqu'elle peut tre connue en
parcourant les extensions successives. Elle est utile car l'allocation
d'une nouvelle zone lors d'un allongement du fichier, entrane la
modification de cette extension.
Par ailleurs (B-1)%32 nous donne le nombre d'extensions du
fichier.

3.4.2. Question B

3.4.2.1. Question B.1


nombre de fichiers. Le nombre maximum de fichiers que l'on
peut avoir s'obtient en divisant la taille maximale du disque
par la taille minimale occupe par un fichier. Si les fichiers
contiennent au moins 1 octet (pas de fichiers vides), l'espace
qu'ils occupent est alors au moins de 1 secteur, donc il y en
a alors au plus 219. Si on admet que tous les fichiers peuvent
tre vides (hypothse d'cole!), leur nombre est limit au
nombre de descripteurs pouvant exister, et la taille
ncessaire la reprsentation du nombre de fichiers
existants sur le disque est la mme que celle des adresses
de descripteurs, calcule ci-dessus. La politique de
reprsentation des entiers conduit donc prendre 32 bits ou
4 octets. Remarquons que ceci est tout thorique, et que
sans doute 16 bits ou 2 octets seraient amplement
suffisants. Nanmoins, tant donn que cette valeur ne se
retrouve que dans le descripteur du disque, la perte de 2
octets est vraiment ngligeable.
nombre de descripteurs par secteurs. Le nombre de
descripteurs de fichiers par secteur, dpend de la taille d'un
descripteur. Comme un tel descripteur contient au moins 16
octets (le nom), il y en a donc au plus 256 par secteur. Un
octet peut suffire. Comme il s'agit d'un entier, nous devons
prendre 16 bits ou 2 octets pour sa reprsentation.
nombre d'entres de la table de hachage. La table de
hachage tant incluse dans le descripteur du disque, luimme devant tenir dans un seul secteur, le nombre de ses
entres est donc au plus gal la taille d'un secteur divis
par la taille de l'une de ses entres. Comme nous avons fix
plus haut 4 octets la reprsentation des numros de
secteur du disque, il y a donc au plus 1024 entres, ce qui
ncessite 16 bits ou 2 octets.
3.4.2.2. Question B.2
Nous reprenons les donnes numriques des questions A.1 et B.1,
et les notons devant les informations du descripteur du disque:
32

le nom du disque sur 32 octets,

le nombre total de secteurs du disque,

le nombre de secteurs occups,

le nombre de fichiers existants sur le disque,

le nombre de descripteurs de fichiers par secteurs,

le nombre d'entres de la table de hachage,

4*p

la table des premiers secteurs de descripteurs de


fichiers.

Il s'ensuit que le descripteur occupe 48 + 4 * p octets. Comme il


doit tenir dans un secteur, il s'ensuit que p (4096 - 48) / 4 =
1012.
Le systme doit tre capable de trouver le descripteur d'un disque
quelconque, avant d'avoir aucune information sur sa structure. Ce
descripteur doit donc tre dans un secteur fixe pour tous les
disques. Il est alors logique de le mettre dans le secteur 0, c'est-dire, secteur 0 de la face 0 du cylindre 0.
3.4.2.3. Question B.3
Le nom du disque permet d'attacher un label au volume ainsi
structur. Les utilisateurs pourront utiliser cette chane de
caractres pour demander au systme de contrler qu'il s'agit du
bon volume. Le nombre total de secteurs permet de connatre la
taille du disque lui-mme. Cette information est parfois
redondante, si le matriel impose le nombre de secteurs par piste,
le nombre de faces et le nombre de cylindres, mais ce n'est pas
toujours le cas. Le nombre de descripteurs de fichiers par
secteurs est ncessaire si le SGF admet que ce nombre varie d'un
volume l'autre. Cette paramtrisation a l'avantage de faciliter
l'adaptation de la structure aux besoins des utilisateurs plutt que
de l'imposer en tant que constante interne au systme.
Le nombre d'entres de la table de hachage permet d'adapter
cette valeur la capacit du disque et au nombre de fichiers que
l'on prvoit d'y mettre.
Le nombre de secteurs occups est une information redondante,
puisqu'il suffit de parcourir l'ensemble de tous les descripteurs de
fichiers pour la retrouver. Le nombre de fichiers existants est
galement une information redondante, puisque ce nombre peut
tre obtenu par parcours des descripteurs de fichiers. La
conservation de ces valeurs vite ce parcours lorsqu'on dsire
savoir quel est le taux d'occupation du disque, le nombre de
fichiers, la taille moyenne des fichiers, etc...

3.4.2.4. Question B.4


La dsignation des fichiers dans ce systme est assez pauvre,
puisque tous les fichiers sont dsigns par un nom sur 16 octets,
et qu'il y a un rpertoire unique pour l'ensemble des fichiers du
disque: il n'y a pas de structure arborescente. Cet inconvnient
peut tre particulirement important si les fichiers sont de petite
taille, et le disque de grosse capacit (500000 fichiers de 4Ko. par
exemple). La prsence de la table de hachage peut amliorer
nettement l'efficacit de la recherche d'un fichier, puisqu'elle
implique un partitionnement de l'ensemble des noms de fichiers
en 1000 groupes environ. Cependant, il n'en reste pas moins
qu'un tel rpertoire plat est dsagrable pour les utilisateurs dans
leur construction et manipulation des noms de fichiers.
Ce systme permet de prendre en compte des fichiers de taille
quelconque. Si l'utilisateur fixe correctement la taille des zones de
son fichier, et que les allocations contigus de cette taille sont
possibles, le comportement peut se rapprocher de celui des
systmes nombre fixe maximum de zones, puisque alors son
descripteur de fichier peut n'avoir qu'une partie principale, sans
extension. Si par contre, l'utilisateur fixe une taille de zones gale
1 secteur, il a la garantie de pouvoir crer un fichier de taille
quelconque, dans la limite de l'espace rellement disponible, au
prix d'une certaine perte d'efficacit due au nombre de ses
extensions si son fichier est de taille importante. Notons
cependant que les fichiers dont la taille est infrieure ou gale
128 Ko n'ont jamais besoin d'une extension, s'il y a 32 entres
dans la table des numros de premiers secteurs d'un descripteur.
Notons qu'un disque de 100 Mo offre ici 25000 secteurs, alors
qu'un disque de 2 Go en offre 500000. Dans ce dernier cas,
l'allocation au niveau du secteur peut tre juge lourde et
inefficace. Une mthode courante pour diminuer cette difficult
est de considrer que l'unit minimum d'allocation est de
plusieurs secteurs. Le seul changement apporter la structure
est de mmoriser dans le descripteur du disque cette unit
d'allocation en nombre de secteurs. Lors de la cration d'un
fichier, la taille effective des zones est alors force au multiple de
cette unit d'allocation immdiatement suprieure ou gale
celle demande par l'utilisateur, sans qu'il ait se proccuper de
la valeur de cette unit d'allocation.

3.4.2.5. Question B.5


Donnons tout d'abord les structures manipules dans un langage
la Pascal.
typet_descripteur:article
{reprsentationd'undescripteur}
nom:chane[16];
info:chane[12];
longueur:entier;
nb_zone:entier;
taille_zone:entier;
ext_suivante,dernire_ext:entier;
def_zone:tableau[0..31]deentier;
finarticle;
typet_sect_descr:article
{reprsentationd'unsecteurde
descripteurs}
descr:tableau[0..22]det_descripteur;
suivant:entier;
finarticle;

Nous supposons que la table de hachage du disque est dj


prsente en mmoire centrale. La procdure suivante d'ouverture
de fichier initialise le descripteur de fichier qui lui est pass en
paramtre avec la partie principale si elle a t trouve, ou avec
un descripteur invalide sinon.
vartab_hachage:tableau[1..p]deentier;
{supposdjaen
mmoire}
procdureouvrir(nom:chane[16];vardescr:t_descripteur);
varsect_descr:t_sect_descr;
s,i:entier;
non_trouv:boolen;
dbutnon_trouv:=vrai;
s:=tab_hachage[H(nom)];
tantques?0etnon_trouvfaire
lire_disque(sect_descr,s);
i:=0;
tantquei<23etnon_trouvfaire
sisect_descr.descr[i].nom=nomalors
non_trouv:=faux
sinoni:=i+1finsi;
fait;
s:=sect_descr.suivant;
fait;
sinon_trouvalorsdescr:=descripteur_invalide
sinondescr:=sect_descr.descr[i];finsi;
fin;

Cette procdure pourrait tre complte par la lecture des


extensions du fichier. Comme le nombre de zones du fichier est
mmoris dans la partie principale, il serait alors possible de
constituer un tableau unique avec tous les numros de premier
secteur de toutes les zones du fichier. Cependant si le fichier fait
l'objet d'allongement (criture au bout), ceci peut conduire
augmenter la taille de cette table au cours de l'excution du

programme, moins de la surdimensionner initialement pour


rduire l'ventualit de cet allongement.
La procdure de lecture d'un octet situ une position donne,
peut se dfinir comme suit:
procdurelire(descr:t_descripteur;position:entier;varc:octet);
varsect_descr:t_sect_descr;
sect_donne:tableau[0..4095]deoctets;
num_ext,num_zone,num_sect,num_oct:entier;
s,i:entier;
dbutnum_oct:=positionmod4096;
{positiondanslesecteurde
donnes}
position:=position%4096;
{numrorelatifdesecteurdu
fichier}
num_sect:=positionmoddescr.taille_zone;{numrodusecteurdansla
zone}
position:=position%descr.taille_zone;{numrorelatifdezonedu
fichier}
num_zone:=positionmod32; {numrodezonedansl'extension}
num_ext:=position%32;
sinum_ext=0alorss:=descr.def_zone[num_zone]
sinon{lecturedel'extensionsicen'estpasfaitlorsdel'ouverture}
s:=descr.ext_suivante;
tantquenum_ext?0faire
i:=smodnb_descr_par_secteur;
s:=s%nb_descr_par_secteur;
lire_disque(sect_descr,s);
s:=sect_descr.descr[i].ext_suivante;
num_ext:=num_ext1;
fait;
s:=sect_descr.descr[i].def_zone[num_zone];
finsi;
lire_disque(sect_donne,s);
c:=sect_donne[num_oct];
fin;

3.5. Autre structuration d'un disque

On dispose de disques de 1500 cylindres, 12 faces, 16 secteurs de


2 Ko par piste. La vitesse de rotation est de 3600 tours/mn, et le
temps moyen de dplacement du bras est de 20 ms. Ce disque
comporte de plus 32 cylindres indpendants des prcdents, dont
chaque piste dispose de sa propre tte, qui est donc fixe, et
contient galement 16 secteurs de 2 Ko.
Le systme implante une technique d'allocation par zone avec
extensions: l'espace allou un objet externe est constitu d'une
zone primaire, et de 0 16 zones secondaires.
La notice du systme prcise que la zone primaire n'est utilise
que pour les fichiers squentiels indexs, et qu'elle contient alors
les tables dindex. S'il y a de la place, la zone primaire est alloue

de prfrence dans les cylindres tte fixe; s'il n'y a pas de place,
elle est alloue dans les cylindres bras mobile. Si cette zone
primaire n'est pas suffisante pour contenir ces tables, celles-ci
dbordent dans les zones extensions. Les zones extensions sont
toujours alloues dans les cylindres bras mobile et, quelle que
soit l'organisation, les enregistrements sont rangs dans les zones
extensions qui sont alloues au fur et mesure des besoins.
A- L'ingnieur systme a fix une taille de quantum gale 32 Ko.
Trouvez-vous cette valeur adapte? Pourquoi faut-il grer
sparment l'espace des cylindres tte fixe et celui des
cylindres bras mobile? Combien y a-t-il de quanta dans chacun
de ces espaces?
B- Lorsqu'on cre un objet externe, on doit prciser quel est son
type. Expliquez pourquoi? Dans le cas d'un fichier squentiel
index, quelles autres informations vous paraissent devoir
galement tre fournies? Quelles sont celles qui font parties de la
dfinition du lien et celles qui se dduisent du programme source?
C- A votre avis, qu'est-ce qui a justifi de ne pas utiliser la zone
primaire pour les fichiers squentiels ou les fichiers accs
alatoire par numro?
D- La notice du systme suggre de dfinir, pour un fichier
squentiel index, les valeurs suivantes de taille de partie
primaire P et des extensions I:
P=

quantas, et I =

quantas

o c est la longueur en octets de la cl, e la taille moyenne d'un


enregistrement, N le nombre maximum d'enregistrements du
fichier et Q la taille d'un quantum. Qu'en pensez-vous?
E- On dsire crer un fichier squentiel index d'au plus 300 000
enregistrements, dont les enregistrements font en moyenne 300
octets, et la cl fait 10 octets. Calculez les tailles de parties
primaire et extension. Pensez-vous que ces valeurs soient
compatibles avec les espaces disques? La cration sera-t-elle
toujours possible?
F- Un outil d'analyse du systme vous informe que d'une part, le
fichier cr en E est une indexation sur 3 niveaux et que d'autre

part, les deux premiers niveaux d'indexation occupent moins de


100 Ko et le dernier 5 Mo.
F.1- Calculez le temps d'attente d'entres-sorties pour accder
un enregistrement de cl donne, suivant que la partie primaire
est dans l'espace des cylindres tte fixe ou dans l'espace des
cylindres bras mobile.
F.2- Mme question si on suppose que le systme conserve
maintenant les deux premiers niveaux en mmoire centrale.
F.3- Quelles conclusions tirez-vous de ces deux dernires
questions?
G- Si on dispose de disques tte fixe spars des disques bras
mobile, peut-on appliquer la technique ci-dessus? Quels seront les
avantages et les inconvnients?

Solution de l'exercice 3.5


3.5.1. Question A

La taille de 32 Ko pour un quantum correspond exactement une


piste (16 secteurs de 2 Ko). Un quantum multiple d'une piste ou
diviseur d'une piste vite qu'une unit d'allocation lmentaire
soit cheval sur deux pistes, et devrait donc minimiser les
mouvements de bras pour un fichier donn. Une taille de 4 Ko, 8
Ko ou de 16 Ko permet sans doute d'avoir plus de petits fichiers,
mais conduit un nombre plus grand d'units allouables. Une
taille de 64 Ko ou plus conduirait une perte place pour ces petits
fichiers, mais permettrait un nombre plus faible d'units
allouables. La taille de 32 Ko donne 12 * 1500 = 18000 units
allouables, ce qui parat tre un bon compromis si le disque est
destin recevoir surtout des fichiers de taille moyenne ou
grosse.
tant donn que les zones primaires sont alloues de prfrence
dans l'espace des cylindres tte fixe, contrairement aux zones
secondaires, la gestion de cet espace doit tre spar de l'espace
des cylindres bras mobiles.
L'espace tte fixe contient 12 * 32 = 384 quanta, alors que
l'espace bras mobile en contient 18000.

3.5.2. Question B

Lorsqu'on cre un objet externe, il faut structurer l'espace qui lui


est allou conformment au type de fichier qui est dsir. Tant
que cet espace n'est pas structur, les oprations d'accs ne
peuvent mmoriser ou retrouver les informations dans cet objet. Il
est donc naturel que le type soit prcise lors de la cration. Par
ailleurs, dans ce problme, la connaissance du type permet de
savoir s'il faut ou non allouer une zone primaire.
Il est vident que lorsque l'on cre un objet externe, il faut dfinir
la taille des zones extensions, ainsi que la taille de la zone
primaire pour les fichiers squentiels indexs. Ces informations
doivent faire partie de la dfinition du lien et ne peuvent tre
dduites du programme, puisque celui-ci devrait tre capable de
traiter aussi bien les petits que les gros fichiers.
Si le fichier est squentiel index, cela veut dire que les
enregistrements contiennent tous une cl qui doit tre mmorise
dans les tables utilises pour les retrouver. Il est donc ncessaire
que le systme puisse localiser la cl dans les enregistrements,
c'est--dire savoir quelle est sa position et quelle est sa longueur.
Cette longueur lui permet de plus de structurer l'espace des
tables et, en particulier, les blocs physiques qui doivent les
contenir. Ces informations peuvent tre dduites du programme
source qui est cens connatre les informations qu'il manipule.
Il peut tre utile de savoir si les enregistrements sont en longueur
fixe, et quelle est alors leur longueur, ou si les enregistrements
sont en longueur variable, et quelle est alors la longueur
maximum. Cette information est utile pour la structuration de
l'espace qui doit contenir ces enregistrements et, en particulier,
les blocs physiques qui doivent les contenir. Ces informations
peuvent souvent tre dduites du programme source, sauf s'il ne
manipule qu'une partie des informations que doit contenir le
fichier au cours du temps; c'est le cas, par exemple, lorsque l'on
cre le fichier avec des enregistrements de mme taille initiale,
mais pouvant tre rallongs par la suite.
3.5.3. Question C

Tout d'abord, il est dit que les enregistrements eux-mmes sont


toujours dans les zones extensions, la zone primaire ne pouvant
contenir que les tables dindex des fichiers squentiels indexs.
Cela permet une homognit avec les fichiers squentiels et

facilitant leur lecture squentielle. Par ailleurs cela permet de


rserver l'espace tte fixe aux tables dindex pour amliorer les
accs.
3.5.4. Question D

On peut dduire des formules que le systme rserve 5 octets


d'informations internes de gestion (pointeur) pour chaque cl.
L'expression (c +5)*N est alors la taille totale en octets pour les
tables. En divisant par Q, on obtient la taille ncessaire en quanta.
Le coefficient de 1.4 permet de prendre en compte un remplissage
partiel moyen des blocs physiques environ 70%, soit par
construction pour permettre l'augmentation par la suite du
nombre de cls par bloc, soit parce que le systme utilise une
partie de ces blocs pour leur gestion propre (en-tte de bloc par
exemple).
De mme on voit que le systme rserve 10 octets par
enregistrement pour sa gestion interne. La taille minimale en
octets est alors de (e+ 10)*N. En divisant par Q, on obtient la taille
totale en quanta. En divisant de nouveau par 16, on obtient la
taille minimale de chaque extension. Le coefficient de 1.2 permet
de prendre en compte un remplissage partiel moyen de 83% des
blocs disques.
Remarquons que le systme, connaissant les valeurs de c et
de e (question B), peut avoir une estimation de la valeur de N, et
en tenir compte pour structurer les tables de la zone primaire.
3.5.5. Question E

Des valeurs numriques, on dduit P = 193 quanta, et I = 213.


Ces valeurs sont compatibles avec les espaces disques, puisque
l'espace tte fixe contient 384 quanta, et l'espace bras mobile
en contient 18000. Comme P est gal la moiti de l'espace
tte fixe, il n'est pas certain qu'un tel espace existe effectivement
de faon contigu dans les cylindres tte fixe. S'il n'existe pas, le
systme recherchera le mme espace dans les cylindres bras
mobile. Il est probable qu'il sera toujours capable de faire
l'allocation dans ce cas, puisque cela ne reprsente alors que 1%
du total. Si ce n'tait pas possible, cela voudrait dire que l'espace
libre du disque est trs morcel ou proche de la saturation.
Remarquons que l'impossibilit de cration ne peut tre la
consquence d'une saturation de l'espace tte fixe, mais de
celle de l'espace bras mobile.

3.5.6. Question F

La recherche d'un enregistrement partir de sa cl, demande 3


accs disque dans les tables, dus aux 3 niveaux, et un accs
disque en zone extension pour obtenir l'enregistrement lui-mme.
Commentaire: La proportion, 100 Ko pour les deux premiers
niveaux et 5 Mo pour le suivant, correspond environ 50 cls par
table au niveau 2 (5 Mo/100 Ko). S'il en est galement ainsi au
niveau 1, on voit que chaque table occupe 1 secteur disque (2 Ko)
ce qui finalement est assez logique. Notons que l'occupation
minimum de 50 cls dans les tables semble tre de
50 * (10 + 5) = 750. Dans ce cas les secteurs ne sont occups
qu' 37%, ce qui laisse une marge apprciable pour des
adjonctions. Il est probable que les tables de niveau 3 sont plus
occupes, mais on ne peut savoir sans connatre la valeur de N.
Notons que la zone primaire n'est occupe qu' 5/6 = 85%. Il
semble donc que la cration a t faite de faon garder des
possibilits assez larges de modifications sans ncessiter de
modifier le nombre de niveaux, et donc avec conservation des
performances.
3.5.6.1. Question F.1
Si la zone primaire est dans l'espace tte fixe, le temps d'attente
pour les tables est d uniquement au dlai rotationnel, c'est--dire
8.3 ms par accs. Le temps d'attente pour l'accs
l'enregistrement lui-mme est d au mouvement de bras auquel il
faut ajouter le dlai rotationnel, soit 28.3 ms. Au total, on obtient
3 * 8.3 + 28.3 = 53.2 ms.
Si la zone primaire est dans l'espace bras mobile, le temps
d'attente pour les tables est augment du mouvement de bras
ventuel, soit 28.3 ms par table. Nous aurons alors un temps total
de 4 * 28.3 = 113.2 ms. Cependant, si aucun autre accs pour le
compte d'un autre processus ne vient perturber la recherche, les
trois accs aux tables ont lieu pour la mme zone primaire de 193
pistes, qui occupe donc 193/12 = 16 cylindres conscutifs. Ceci
reprsentant moins de 1% des cylindres, on peut ventuellement
ngliger les dplacements du bras aprs le premier accs. On
obtient alors 28.3 ms pour l'accs au premier niveau, puis 2 fois
8.3 ms pour les accs aux niveaux suivants et enfin 28.3 ms pour
l'accs l'enregistrement proprement dit, soit un total de 73.2
ms.

3.5.6.2. Question F.2


Dans ce cas, seul le dernier niveau de tables entrane une attente
disque. Si la zone primaire est dans l'espace tte fixe, le temps
d'attente sera de 8.3 + 28.3 = 36.6 ms. Si la zone primaire est
dans l'espace bras mobile, le temps d'attente sera de
28.3 + 28.3 = 56.6 ms.
3.5.6.3. Question F.3
tte fixe

tout sur
disque

53.2

2 niv. en MC

36.6

bras mobile
optimal

avec
mvt.inter.

73.2

113.2
56.6

Sur le tableau qui rsume les rsultats, on constate qu'il y a un


rapport de 1 3 entre le minimum et le maximum. La prsence
des tte fixe permet de gagner entre 35 et 53% du temps, que les
deux niveaux soient ou non en mmoire centrale. Ce gain est
apprciable, mais il n'est pas toujours possible de l'obtenir, car
l'allocation dans l'espace tte fixe peut ne pas tre possible. Par
ailleurs, la conservation des deux premiers niveaux en mmoire
centrale permet d'obtenir un gain compris entre 31 et 50%. Ce
gain est ici encore apprciable, et ne demande que de la place en
mmoire centrale. Dans l'tat actuel de la technologie, 100 Ko de
mmoire centrale cote moins cher que 384 ttes magntiques
fixes avec leur lectronique de commande. On peut en conclure
que la premire amlioration doit tre obtenue par la mise en
mmoire des deux premiers niveaux. Si ce n'est pas suffisant, on
peut alors envisager la solution des ttes fixes.
Mettre tous les niveaux en mmoire centrale permettrait de
ramener le temps d'attente 28.3 ms. Mais cette fois la taille
mmoire centrale ncessaire devient trs importante. Nanmoins,
dans un systme dot de pagination la demande, il pourrait tre
intressant de plaquer l'ensemble des tables dans la mmoire
virtuelle du processus, et de laisser faire le mcanisme de
remplacement de page.
3.5.7. Question G

Si on dispose d'un disque tte fixe spar des disques bras


mobile, il est possible d'appliquer la mme technique. Les
avantages sont videmment les avantages de performance qui

ont t vus dans la question prcdente. Il est probable que dans


ce cas la capacit du disque sera plus grande, ce qui devrait
permettre plus facilement d'y allouer des zones primaires.
Ceci conduit des fichiers multi-volumes, puisque le fichier est
rparti sur plusieurs disques de natures diffrentes. Si le systme
ne supporte pas de tels fichiers, ce sera l'utilisateur de raliser
une partie du travail de partitionnement du fichier (un fichier de
tables et un fichier accs alatoire par numro). En dehors de
cet aspect, l'inconvnient essentiel est li la difficult de
garantir la cohrence entre donnes situes sur des volumes
diffrents: sauvegarde et restauration simultane. Ces
inconvnients seront ngligeables si le systme a t conu pour
supporter les fichiers multi-volumes.
3.6. Stratgies dallocation par zone

On considre un systme de gestion de fichiers qui fait de


lallocation par zone. Lensemble du disque est constitu de 100
blocs, numrots de 0 99. Trois fichiers existent sur le disque,
dfinis comme suit, le reste de lespace tant libre.
F1, Dbut = bloc 5, Taille = 20 blocs,
F2, Dbut = bloc 25, Taille = 5 blocs,
F3, Dbut = bloc 50 , Taille = 10 blocs.
Les trois questions sont indpendantes, cest--dire que dans
chaque cas, on part de la situation ci-dessus.
A- On veut rajouter 10 blocs au fichier F1. Quelles solutions
proposez-vous suivant que limplantation squentielle est simple
ou avec extensions. Justifiez votre raisonnement et valuez le cot
de ces solutions.
B- On veut crer un fichier F4 de 10 blocs. O proposez-vous de le
mettre, en justifiant votre raisonnement.
C- On veut crer un fichier F4 de 40 blocs. Quelles solutions
proposez-vous suivant que limplantation squentielle est simple
ou avec extensions. Justifiez votre raisonnement et valuez le cot
de ces solutions.

Solution de lexercice 3.6

3.6.1. Question A

Si limplantation est squentielle simple, un fichier ne peut avoir


quune seule zone. Or le fichier F1 se termine sur le bloc 24 et F2
commence en 25. Il ny a donc pas despace libre permettant de
le rallonger sans le dplacer. En gnral, comme le cot dun tel
dplacement est important, il nest pas fait automatiquement.
Cependant, tudions cette possibilit. Il faut alors trouver un
espace contigu de 30 blocs (20 + 10), ce qui peut se faire en 60,
derrire F3. Le dplacement lui-mme demande la lecture du
fichier et sa rcriture dans la nouvelle zone.
Si limplantation est squentielle avec extensions, il faut trouver
un espace libre de 10 blocs conscutifs correspondant une
nouvelle zone, puisquil nest pas possible de prolonger la
premire. On peut allouer en 30, derrire F2, en 40 devant F3, en
60 derrire F3 ou en 90 la fin. Il est cependant prfrable de
garder intacte la plus grande zone pour satisfaire des besoins
ultrieurs importants. Allouer derrire F2 empchera ce dernier de
stendre par prolongement, mais allouer devant F3 empchera
F1 dtendre ventuellement sa deuxime zone, et lobligera
recevoir une troisime zone. Enfin, on peut noter que les accs
lintrieur de F1 risquent dtre plus performant si les zones sont
les plus proches possibles, ce qui milite pour une allocation en 30.
3.6.2. Question B

Il faut trouver une zone de 10 blocs libre. Elle peut tre soit entre
30 et 49, soit entre 60 et 99. Le raisonnement ci-dessus indique
une prfrence pour la portion 30..49, de faon conserver la plus
grande portion intacte. Le choix est assez indiffrent, mme en
cas dimplantation squentielle simple, car il faut choisir lequel de
F2 ou de F4 sera autoris ventuellement stendre sur 10
blocs.
3.6.3. Question C

Il faut trouver cette fois une zone de 40 blocs, ce qui ne peut se


faire quentre 60 et 99. Notons que si on a une implantation
squentielle avec extensions, il est envisageable de morceler le
fichier F4 en plusieurs zones, ce qui nest pas possible dans le cas
de limplantation squentielle simple. Cependant, le gain
immdiat est nul, et, au contraire, les accs au fichier F4 seront
pnaliss dans ce cas, et le gain hypothtique venir est non
prvisible au moment de la cration de F4.

Vous aimerez peut-être aussi