Correction Examen 2015 2016

December 19, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Correction Examen 2015 2016...

Description

 

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

Examen – 14 décembre 2015 N. Sabouret, R. Bonaque, M. Gleize

Nom :

Prénom :

Signature :

— L’épr L’épreuve euve dure 2h30. 2h30. Tous les docume documents nts sont autorisé autorisés. s. — Le sujet comprend omprend 4 exercic exercices es indépendants. indépendants. — Toutes vos réponses éponses doivent être justifiées. 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 allocation indexée ? (1 point) Correction :  Dans un OS avec une allocation de type FAT, le FCB contient un pointeur vers le premier élément d’une liste chaînée dans la table FAT. Dans une allocation  indexée, le FCB contient l’adresse d’un bloc d’index.

2. Combien de RPC sont nécessaires pour lire le contenu d’un fichier non-encore ouvert sur un serveur serveur NFS ? (1 poin point) t) Correction :  Pour l’ouverture (côté client uniquement), il faut récupérer le FD ce qui  nécessite autant de RPC que de point de montage dans le chemin. Ensuite, il faut encore  une RPC pour la lecture du fichier lui-même.

3. Qu’est-ce qui permet, dans un OS, de mettre en œuvre la multiprogrammation et le temps partagé partagé ? (1 point) Correction :  Pour la multiprogrammation, le cycle de vie du processus prévoit un état  E/A pour les processus en attente d’une E/S sur un périphérique (en complément de  la file d’attente pour les proc processus essus prêt prêts) s) ; po pour ur le temps part partagé, agé, c’est l’ut l’utilisat ilisation ion d’un  ordonnanceur.

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 tai taille lle (en bits) bits) de l’adresse l’adresse logique ? (0,5 point) Correction :  Un processus peut occuper   occuper   210 segments   ×   222 octets de mémoire, donc  l’adresse logique est sur 32 bits.

2. Quelle est la taill taillee (en bits) de l’adresse ph physiqu ysiquee ? (0.5 point) Go =  = 230o  donc l’adresse physique est sur 30 bits. Correction :   1Go

1

 

3. Com Combie bienn y a-t a-t-il -il de cadre cadress de page dans la RAM ? (0.5 point) point) (30− −12) = 218 cadres de pages. Correction :   4K o  = 212. Il y a donc   2(30

4. On suppose que l’OS utilise un mécanisme de mémoire virtuelle équitable : chaque processus dispose de la même proportion de mémoire physique. 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 taillee dudit processus. On suppose que toutes les pages du processus sont équiprobables taill équiprobables.. (2 points points)) Correction : Taille du processu ssus 32 processus présents 512 processus présents 1024 processus présents

51 5122 Ko 16 Mo 1 Go 0 0 0,96875   0 0,875 0,998  0 0,9375 0,999 

Princippe : si j’a Princi j’aii N pro process essus, us, cha chaque que pro process essus us dispose dispose de   M  M    = 230 /N  N    de mémoire  physique. Si le processus est plus petit, il n’y a pas de défaut de page. S’il est plus gros (et  de taille T), j’ai une probabilité de   M/T  M/T  de  de ne pas faire un défaut (donc une probabilité  1 − M/T  M/T  de  de défaut).

5. Pour réduire le nombre de défauts de page, on décide de passer à une politique d’allocation proportionnelle. On se place dans le cas 512 processus avec un nouveau processus de 16Mo. On la suppose que les 511 processus précédents dede2Mo. ci-dessous probabilité d’obtenir un défaut de page ont ainsiune quemoyenne les détails vos Écrivez calculs. (1 point) Correction :  Attention : il y a un piège : le fait de rajouter un processus réduit la proportion de page des autres processus. Tous les processus reçoivent la même proportion  de l’espace total et donc auront la même probabilité de défaut. Il n’est pas nécessaire de  calculer combien reçoit le nouveau processus : il suffit de calculer la proportion d’espace  manquant. Nous avons en tout   (512 − 1) ∗ 2M o + 16 16M M o  de mémoire virtuelle utilisée,  + 14M 14 M o. La probabilité d’erreur est donc de   14 14//(1024 + 14) = 0, 0 , 013 013.. soit   1Go Go +

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équitable; en tout) dans les deux cas suivants : — Politique — Politique proportionnelle. Qu’en concluez-vou concluez-vouss ? (1,5 points) Correction :  Attention : : il faut compter pour tous les processus, pas seulement notre  nouveau processus. — Politi Politique que équit équitable able : les 511 pe petits tits pro proce cessus ssus ne fer feront ont pas de défaut de page. page. Notre  processus fera environ 875 défauts. Total :   511 × 1000 + 875 + 125 × 1000 = 636875 — Politique prop proportionnelle ortionnelle : les 512 pro processus cessus fer feront ont 13 défauts de page environ. environ. Tot Total al : 512 × (13 ∗ 1000 + 987) = 7161344 Conclusion Concl usion : la métho méthode de équit équitable able est bien meilleur meilleuree sur ce cett exemple ! 

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). hexadéci mal). La table suiv suivant antee donne les numéros numéros de blocs physiques, physiques, les blocs logiques logiques qu’il qu’ilss 2

 

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 log. : 1 4 2 6 0 L 9 3 L L 5 7 8 L date : 53 41 106 99 72 87 55 31 80 58 64 67 91 61 usure : 2 8 7 3 6 5 8 6 7 9 6 8 8 3

E L 0 0

F L 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 Expliquez clairement 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) Correction : 100 (A) Nouve Nouveau au paque paquet  t   →  prendre le bloc libre le moins usé : c’est E  101 (1) Remplacer 1   →  pr  prendr endree le blo blocc libre le moins usé : c’est F ; mar marquer quer 0 libr libre  e  102 (7) Remplacer 7   →   prendre le bloc libre le moins usé : c’est 0 maintenant qu’il a été  libér libéréé ; mar marquer quer B libr libre  e  103 (1) Remplac emplacer er 1 → pre prendre ndre le blo blocc libre le moins usé : c’est D ; marquer F libr libree à nouveau  104 (2) Remplacer 2   →  pr  prendr endree le blo blocc libre le moins usé : c’est F ; mar marquer quer 2 libr libre  e  105 (B) Nouve Nouveau au paqu paquet  et   →  prendre le bloc libre le moins usé : c’est 5  106 (A) Remplacer A   →  pr  prendr endree le bloc libr libree le moins usé : c’est 2 ; mar marquer quer E libr libre  e  phys. :

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F  

dlaotge. :: 1702 441 1A8 969 702 1B 05 595 331 8L0 5L8 654 6L7 981 1103 1L 00 1204   usure : 3 8 8 3 6 6 8 6 7 9 6 8 8 4 1 2  

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  statique  avec 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) Correction : 100 (A) On cherche le bloc logique le moins utilisé : c’est E. Il est libre : on l’utilise. 101 (1) On cherche le bloc logique le moins utilisé : c’est F. Il est libre : on l’utilise. On  marque 0 libre. 102 (7) On cher cherche che le bloc log logique ique le moins utilisé : c’est E. Il n n’est ’est pas libr libree et il a été utilis utilisé  é  récement. Idem pour F. Le prochain moins utilisé est 0 qui est libre : on l’utilise et  on marque B libre.

3

 

103 (1) On cherche le bloc logique le moins utilisé. On élimine E, F, 0 et 3 car ils sont  non-libres et trop récents. On arrive à D qui est libre et on l’utilise. On marque F  libre. 104 (2) On cherche le bloc logique le moins utilisé : c’est F et il est libre. On l’utilise et on  marque 2 libre. 105 (B) On cherche le bloc logique le moins utilisé. On élimine E, F, 0, 3 et D qui sont  non-libres et trop récents. On arrive à 5 qui est libre et on l’utilise. 106 (A) On cherche le bloc logique le moins utilisé. On élimine E, F, 0, 3, D et on arrive à  4 qu’on utilise et on marque E libre. Mais il faut alors déplacer le bloc 0. 106b (0) On cherche le bloc logique le moins utilisé : c’est E et il est libre. On l’utilise. 102b On cher cherche che le bloc lo logique gique le moins utilis utilisé. é. On élimin éliminee E, F et 0 qui sont non-li non-libr bres  es  et récents : on arrive à D qui est est libre et on l’utilise. On marque B libre. phys. log. date usure

: 0 1 2 3 4 5 6 7 8 9 A B C D E F   : 7 4 L 6 A B 9 3 L L 5 L 8 1 0 2   : 102 41 18 99 106 105 55 31 80 58 64 67 91 103 106 104 : 3 8 7 3 7 6 8 6 7 9 6 8 8 4 2 2  

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   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   indique une suite de blocs de fichier qui sont stockés les un à la suite les un des autres sur le volume. Les  extent  font   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  extent  — sur les 6 derniers octets : le numéro du secteur sur le volume ou commence cet  extent  1

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   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 une liste d’extents. Celle-ci est composée d’un  extent_header  sur 12 octets, qui indique notamment le nombre d’extents  dans   dans la liste, puis des  extents  eux   eux même. 1. Dans la vraie spécifi spécification cation de ext4 il y a une petite différence différence ici.

4

 

Questions

1. Quelle est la taille maximale d’un volume, en blocs et en octets? (1 point) Correction :  Les numéros de bloc du volume sont sur 6 o = 48 bits, il y a donc au plus  248 blocs de 4 Ko soit   248+12 o =   260 o =   220 Go ou   210 To ou   1   Eo.

2. Quelle est la tai taille lle maximale maximale d’un fichier, fichier, en blocs et en octets ? (1 point) Correction :  Les numéros de bloc du fichier sont sur 4 o = 32 bits, il y a donc au plus  32

2

44

blocs de 4 Ko soit   2

o = 16 To.

3. L’inode (c’ (c’est-àest-à-dire 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   en plus du  header ). Quelle est la taille maximale (en blocs ou en octets) d’un fichier dont tous les  extents  sont stockés stockés de cette manière manière,, uniquement uniquement dans l’inode ? (1 point) Correction :   Chaque extent indique le nombre de blocs de l’extent sur 2 octets (16  Correction bits). Il peut donc indiquer au plus   plus   216 blocs. Pour 4 extents, nous avons donc au plus  4 × 216 = 218 blocs indexés de   4K o  chacun, soit en tout 1 Go de données. Indexation indirecte

En pratique, on procède à une indexation à plusieurs niveaux : la liste d’extents de l’inode peut pointer soit directement descontenant blocs de données (comme nousd’l’avons à la question précédente), soit sur dessur blocs à leur tour une liste extents  vu : — Si la liste liste d’extents   contenue contenue dans l’inode pointe directement vers des blocs de fichier, on parle d’accès direct (c’est le cas que nous av avons ons vu à la question précédente précédente)) ; — Si elle pointe vers des listes d’extents  qui,  qui, eux, pointent vers des blocs de fichiers, on parle d’accès d’accès indirect de nive niveau au un ; — Si elle pointe vers des listes d’extents  qui  qui pointent à leur tour vers des listes d’ extents  qui pointent pointent vers des blocs de fichi fichiers, ers, on parle d’accès indirect de niveau 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  peut-on mettre mettre dans une liste qui occupe un bloc complet ? (1 point) Correction :   Dans un bloc, on a   4096 = 341   octets (reste 4). On peut donc placer  Correction 340extents de 12o en plus du header (de 12o aussi). Chaque extent addresse   addresse   216 blocs de  4Ko. La taille maximale du fichier est donc de   de   340 × 216 blocs, soit   22282240 blocs 22282240  blocs ou 85 To. Notons Not ons au passa assage ge qu’ qu’en en ext ext4, 4, les 4 octe ctets ts rest estant ant sur le blo blocc ne sont pas per erdus dus ; ils  servent à faire des checksums.

5. En vous aidant des réponses aux questions précéde précédentes ntes,, quelle est la taille taille maximale (en blocs ou en octets) d’un fichier fichier indexé en accès indirect indirect de niveau un ? (1 point) Correction :  Chaque extent de l’inode peut référencer   216 blocs. Chaque bloc d’extents  peut référencer   340 × 216 blocs de données. En tout, nous pouvons donc référencer   4 × 340 × 216 times times2216 = 85 × 236 blocs (ou 21760 To de données).

5

 

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) ont   232 blocs (cf. question 2). Dans le meilleur cas, Correction :  Les plus gros fichier ont   les données seront toutes à la suite les unes des autres et cela tient dans une indexation  de niveau 1 comme vu ci-dessus. Dans le pire cas, ils sont tous séparés et il faut   faut   232 extents de 1 bloc, ce qui ne tient pas sur 1 seul niveau. Avec deux niveaux en utilisant uniquement des extents qui adressent un seul bloc dans  les feuilles, nous avons   4 × 340 × 216 × 340 × 216 blocs adressés, ce qui est suffisant pour  nos   232 blocs.

6

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF