Correction Examen 2015 2016
December 19, 2022 | Author: Anonymous | Category: N/A
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