1. Si on fait le compte pour la taille max de fichier, on a

Travaux dirigés N°4. - Mémoire secondaire ?. Exercice n° 1. On considère une
variante de Unix classique (pre-BSD 4.2) utilisant le système de fichiers s5fs ...

Part of the document


Travaux dirigés N°4
- Mémoire secondaire -



Exercice n° 1


On considère une variante de Unix classique (pre-BSD 4.2) utilisant le
système de fichiers s5fs (System V File System). L'information concernant
les blocs de données de chaque fichier est donc accessible à partir du i-
node de celui-ci. On supposera qu'un pointeur occupe 4 octets :
. Le système de fichiers utilise des blocs de données de taille fixe
1K (1024 octets), qui peuvent contenir jusqu'à 256 pointeurs ;
. Le i-node de chaque fichier (ou répertoire) contient 12 pointeurs
directs sur des blocs de données, 1 pointeur indirect simple, 1
pointeur indirect double et 1 pointeur indirect triple.


1. Quelle est la plus grande taille de fichier que ce système de fichiers
peut accommoder ?

2. On considère un fichier contenant 100.000 octets. Combien de blocs :
- de données sont nécessaire pour stocker les 100.000 octets ?
- au total sont-ils nécessaires pour représenter ce fichier sur
disque ?


Exercice n° 2

On considère un système fonctionnant sous une variante de Unix classique
(pré-BSD 4.2) disposant du système de fichiers 5sfs avec une taille de
blocs de données de 4K (4096 octets) et des adresses définies sur 4
octets.
On supposera que l'i-node de chaque fichier compte 12 pointeurs directs,
1 pointeur indirect simple, 1 pointeur indirect double et 1 pointeur
indirect triple.
On désire créer un fichier contenant un total de 20.000.000 caractères
(caractères de fin de ligne et de fin de fichier compris).


Quelle est la fragmentation interne totale sur le disque résultant de la
création de ce fichier ?

Exercice n° 3


On considère un système fonctionnant sous une variante d'Unix classique
(pré-BSD 4.2) disposant du système de fichiers 5sfs disposant des
caractéristiques suivantes :
. La taille des blocs est 2K.
. L'i-node contient 10 liens directs vers des blocs de données.
. Un lien vers un bloc (une adresse) est représenté sur 4 octets.


1. Quelles sont la taille minimale et la taille maximale pour un fichier
pour la représentation duquel exactement 500 blocs sont nécessaires
pour conserver des liens vers d'autres blocs?
2. On considère un fichier de texte contenant 2 500 000 caractères ASCII
(y-compris les caractères de fin de ligne et de fin de fichier). Suite
à un malencontreux accident, l'i-node de ce fichier est corrompu et la
valeur des pointeurs indirects double et triple est détruit. Quelle
proportion du contenu de ce fichier a-t-elle été perdue par suite de
cet accident ?


Un bloc contient 2048 octets. Il peut donc contenir jusqu'à 512 liens vers
d'autres blocs.

On parle d'un fichier pour lequel 500 blocs sont utilisés pour stocker des
liens.

On sait que le lien indirect simple pointe vers un bloc contenant des liens
directs vers des blocs de données.
De même, le lien indirect double pointe vers un bloc contenant des liens
vers des blocs contenant eux-mêmes des liens directs.
Par conséquent, il y a 498 blocs de liens supplémentaires (500 - 1bloc lien
ind simple - 1bloc lien ind double).
On a donc la structure suivante :




Si on fait le compte pour la taille max de fichier, on a :

10 blocs de données correspondant aux liens directs,
512 blocs de données correspondant au lien indirect simple (1 bloc de
liens),
498 *512 blocs de données correspondant au lien indirect double (1 + 498
bloc de liens). 1er bloc indirect simple
Au total, 255 498 * 2K = 510 996 K = 523 259 904 octets.

Si on fait le compte pour la taille min, on a :

10 blocs de données correspondant aux liens directs,
512 blocs de données correspondant au lien indirect simple (1 bloc de
liens),
497 *512 blocs de données correspondant au lien indirect double (1 + 497
bloc de liens),
Le dernier bloc de liens contient un seul lien (au lieu de 512), vers un
bloc de données ne contenant qu'un seul caractère (mais les blocs entiers
sont allouées).
Au total : (10 + 512 + 497*512) * 2K + 1(caractère=octet) = 522 211 329
octets.


On perd tous les blocs de données auxquels on accédait à travers les
liens indirects double et triple. Il ne nous reste donc plus que les
blocs obtenus par accès direct ou accès indirect simple, à savoir :

10 * 2048 + 512 * 2048 = 1 069 056 caractères.

On a donc perdu P = (2 500 000 - 1 069 056) / 2 500 000 = 57% du contenu du
fichier.



Exercice n° 4

L'algorithme PCTL (plus court temps de latence) traite les requêtes dans
l'ordre de défilement des secteurs concernés sous la tête, pour une piste
donnée, quel que soit leur ordre d'arrivée.
Supposons que chaque piste d'un disque soit divisée en 12 secteurs et que
la tête soit placée au-dessus du secteur 2, avec un sens de rotation
correspondant au défilement de secteurs par numéros croissants. Si les
requêtes pour les secteurs 11, 5, 8 et 7 sont en attente, quel serait
l'ordre de traitement dans le cas de l'algorithme PCTL.



Solution 5,7,8,11