• Aucun résultat trouvé

Exercice 2 – Gestion de la mémoire (6 points)

N/A
N/A
Protected

Academic year: 2022

Partager "Exercice 2 – Gestion de la mémoire (6 points)"

Copied!
4
0
0

Texte intégral

(1)

Info32B – Systèmes d’Exploitations – année 2015-2016

Examen – 14 décembre 2015

N. Sabouret, R. Bonaque, M. Gleize

— L’épreuve dure 2h30. Tous les documents sont autorisés.

— Le sujet comprend 4 exercices indépendants.

— Toutes vos réponses doivent être justifiées.

Exercice 1 – Question de cours (3 points)

1. Dans un système de fichier, quelle est la différence entre une allocation de type FAT et une allocation indexée ? (1 point)

2. Combien de RPC sont nécessaires pour lire le contenu d’un fichier non-encore ouvert sur un serveur NFS ? (1 point)

3. Qu’est-ce qui permet, dans un OS, de mettre en œuvre la multiprogrammation et le temps partagé ? (1 point)

Exercice 2 – Gestion de la mémoire (6 points)

On se place dans un système de mémoire de 1Go de mémoire géré de manière paginée et segmentée avec des cadres de page de 4Ko. Chaque processus peut utiliser jusqu’à 1024 segments. Chaque segment peut occuper 4Mo de mémoire. Le système d’exploitation autorise jusqu’à 1024 processus.

1. Quelle est la taille (en bits) de l’adresse logique ? (0,5 point)

2. Quelle est la taille (en bits) de l’adresse physique ? (0.5 point)

3. Combien y a-t-il de cadres de page dans la RAM ? (0.5 point)

4. On suppose que l’OS utilise un mécanisme de mémoire virtuelle équitable : chaque pro- cessus dispose de la même proportion de mémoire physique. Recopiez sur votre copie et complétez le tableau suivant en indiquant la probabilité de faire un défaut de page pour un processus, en fonction du nombre total de processus prêts, en exécution ou en attente dans le système et de la taille dudit processus. On suppose que toutes les pages

1

(2)

du processus sont équiprobables.Vous devrez expliquer vos différents calculs sous le tableau. (2 points)

Taille du processus 512 Ko 16 Mo 1 Go 32 processus présents

512 processus présents 1024 processus présents

5. Pour réduire le nombre de défauts de page, on décide de passer à une politique d’alloca- tion proportionnelle. On se place dans le cas 512 processus avec un nouveau processus de 16Mo. On suppose que les 511 processus précédents ont une moyenne de 2Mo. Écrivez ci-dessous la probabilité d’obtenir un défaut de page ainsi que les détails de vos calculs.

(1 point)

6. On suppose toujours que nous avons 1 processus de 16Mo et 511 processus de 2Mo.

Si l’accès disque est 1000 fois plus lent que l’accès mémoire, que nous fixons à 1 unité de temps, donnez le temps moyen de traitement de 1000 accès mémoire par processus (512000 accès en tout) dans les deux cas suivants :

— Politique équitable ;

— Politique proportionnelle.

Qu’en concluez-vous ? (1,5 points)

Exercice 3 – Ordonnancement sur disque (5 points)

On considère un disque SSD de 8 Mo répartis en blocs de 512 Ko numérotés de 0 à F (en hexadécimal). La table suivante donne les numéros de blocs physiques, les blocs logiques qu’ils contiennent (ou L lorsque le bloc est libre), la date de dernière écriture (exprimée en unités de temps depuis le début de la vie du disque) et l’usure (en nombre d’utilisation depuis le début d’utilisation du disque) : actuellement, il y a 10 blocs logiques (0 à 9) qui sont stockés sur ce disque.

phys. : 0 1 2 3 4 5 6 7 8 9 A B C D E F

log. : 1 4 2 6 0 L 9 3 L L 5 7 8 L L L

date : 53 41 18 99 72 87 55 31 80 58 64 67 91 61 0 0

usure : 2 8 7 3 6 5 8 6 7 9 6 8 8 3 0 0

Nous sommes à l’unité de temps 100 et on suppose que l’UC fait, dans l’ordre, des requêtes d’écriture sur les pages situées sur les blocs logiques suivants (1 requête par unité de temps) :

A 1 7 1 2 B A

1. Donnez, à l’aide d’une table similaire à celle fournie dans l’énoncé, le résultats de l’exé- cution en utilisant une politique de Wear Levelling dynamique. Expliquez clairement ce qu’il se passe à chaque pas de temps de l’éxécution. En cas de doute, toutes choses étant égales par ailleurs, vous choisirez le premier bloc dans l’ordre numérique. (2 points)

2

(3)

2. Donnez, à l’aide d’une table similaire à celle fournie dans l’énoncé, le résultats de l’exé- cution en utilisant une politique de Wear Levelling statiqueavec un délai d’ancienneté fixé à 10 unités de temps. Expliquez clairement ce qu’il se passe à chaque pas de temps de l’éxécution. En cas de doute, toutes choses étant égales par ailleurs, vous choisirez le premier bloc dans l’ordre numérique. (3 points)

Exercice 4 – Système de Fichiers ext4 (6 points)

Nous allons considérer une version un peu simplifiée d’ext4, un système de fichier très répandu sous GNU/Linux. Dans ce système, le volume (par exemple une partition d’un disque dur) est découpé en blocs de 4 Ko. Comme vu dans le cours, et par analogie avec les disques durs, nous parlerons de secteurs pour désigner les emplacement de 4Ko sur le volume dans lequels sont placés les blocs de fichier.

L’allocation des blocs dans un système de fichier extfs4 se fait de manière indexée en utilisant ce qu’on appelle un extent. Un extent indique une suite de blocs de fichier qui sont stockés les un à la suite les un des autres sur le volume. Lesextent font 12 octets organisés de la manière suivante :

— sur les 4 premier octets : le numéro du premier bloc de fichier couvert par cet extent

— sur les 2 octets suivants : la taille, en nombre de blocs, de cet extent1

— sur les 6 derniers octets : le numéro du secteur sur le volume ou commence cet extent

Exemple

Prenons un fichier de 15 Ko, et qui a donc 4 blocs de fichier (le dernier bloc ayant 1 Ko non utilisé) et supposons que ses trois premiers blocs sont placés dans les secteurs 1000, 1001 et 1002 du volume et que son quatrième bloc est sur le secteur 42 du volume. Il suffit de deux extents pour indiquer où se trouve la totalité du fichiers sur le volume :

— (0, 3, 1000) : les trois blocs de fichier à partir du bloc de fichier 0 sont stockés à partir du bloc de volume 1000.

— (3, 1, 42) : l’unique bloc de fichier 3 est stocké sur le bloc de volume 42.

Liste d’extents

Pour indexer plusieurs parties non-contiguës d’un même fichier, on utilise uneliste d’extents.

Celle-ci est composée d’un extent_header sur 12 octets, qui indique notamment le nombre d’extents dans la liste, puis des extents eux même.

Questions

1. Quelle est la taille maximale d’un volume, en blocs et en octets ? (1 point)

2. Quelle est la taille maximale d’un fichier, en blocs et en octets ? (1 point)

3. L’inode (c’est-à-dire leFile Control Block) d’un fichier en ext4 contient unelist d’extents sur 60 octets (la liste contient donc au plus 4 extents en plus du header).

1. Dans la vraie spécification de ext4 il y a une petite différence ici.

3

(4)

Quelle est la taille maximale (en blocs ou en octets) d’un fichier dont tous les extents sont stockés de cette manière, uniquement dans l’inode ? (1 point)

Indexation indirecte

En pratique, on procède à une indexation à plusieurs niveaux : la liste d’extents de l’inode peut pointer soit directement sur des blocs de données (comme nous l’avons vu à la question précédente), soit sur des blocs contenant à leur tour une liste d’extents :

— Si la liste d’extentscontenue dans l’inode pointe directement vers des blocs de fichier, on parle d’accès direct (c’est le cas que nous avons vu à la question précédente) ;

— Si elle pointe vers des listes d’extents qui, eux, pointent vers des blocs de fichiers, on parle d’accès indirect de niveau un ;

— Si elle pointe vers des listes d’extents qui pointent à leur tour vers des listes d’extents qui pointent vers des blocs de fichiers, on parle d’accès indirect de niveau 2 ;

— Et ainsi de suite. . .

Le niveau d’accès est indiqué dans le header de la liste d’extents sur l’inode.

Notez bien que lorsqu’un bloc contient une liste d’extents, ceux-ci occupent tout le bloc.

Questions

4. Combien d’extents peut-on mettre dans une liste qui occupe un bloc complet ? (1 point)

5. En vous aidant des réponses aux questions précédentes, quelle est la taille maximale (en blocs ou en octets) d’un fichier indexé en accès indirect de niveau un ? (1 point)

6. De combien de niveaux d’indirection a-t’on besoin dans le pire des cas pour stocker les plus gros fichiers possibles (dont la taille a été calculée à la deuxième question) ? (1 point)

4

Références

Documents relatifs

On suppose que les bandes sont constituées d'un seul octet par disque, que la première bande utilise le quatrième disque pour stocker la parité des trois premiers octets, la

L’inode (c’est-à-dire le File Control Block) d’un fichier en ext4 contient une list d’extents sur 60 octets (la liste contient donc au plus 4 extents en plus du header).. Quelle

SCM pour atteindre l’espace cervical postérieur dans lequel on injecte l’anesthésique local. Choquet O

permettrait le bloc bilatéral sans changer de côté serait facile à réaliser après de l’AG (si nécessaire). Un nouvel

Classiquement les 3 branches faciales du nerf trijumeau sont alignés sur une même ligne droite passant par la

Classiquement les blocs du scalp sont réalisés par des infiltrations sous cutanées. • Infiltrations

Bloc du nerf grand occipital sous échoguidage En dedans de l’artère occipitale..

Evaluation de l’augmentation du diamètre de la gaine du nerf optique avant et après blood patch (mesure échographique). Echographie