• Aucun résultat trouvé

Exercice 2 – Remplacement de page (3 points)

N/A
N/A
Protected

Academic year: 2022

Partager "Exercice 2 – Remplacement de page (3 points)"

Copied!
6
0
0

Texte intégral

(1)

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

Examen – 15 décembre 2016

N. Sabouret

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

— Le sujet comprend 4 exercices indépendants.

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

— Vous devez répondre sur la copie anonyme et la cacheter.

Exercice 1 – Question de cours (4 points)

1. Quelle est la différence entre un appel système et un shell? (1 point)

Correction :Un appel système est une instruction que les processus peuvent utiliser pour invoquer une routine de l’OS, via une interruption. Le shell est l’interface entre l’utili- sateur (humain) et l’OS, qui transforme les opérations de l’humain (clic, commande) en appels systèmes.

2. Quel est l’avantage de l’allocation FAT par rapport à l’allocation chaînée et par rapport à l’allocation indexée ? (1 point)

Correction : L’allocation FAT est une liste chaînée d’index. Elle combine donc les avantages de l’allocation chaînée (pas de fragmentation, peu de volume perdu dans le FCB et sur les blocs) avec ceux de l’allocation indexée (accès direct, donc plus rapide).

3. Quelle est la différence entre le temps partagé et le temps réel ? (1 point)

Correction :Cela n’a rien à voir. Le temps partagé, c’est le fait que plusieurs processus soient actifs en même temps et se partagent le CPU. Le temps réel, c’est le fait de garantir un temps de réponse pour un processus.

4. Qu’est-ce qu’un FCB et de quoi est-ce composé ? (1 point)

Correction :Le File Control Bloc est la structure de données contenant les informations nécessaires au système de fichier. Il comprend, entre autres, le nom, l’adresse, la taille, la date, les droits et l’utilisateur du fichier.

Exercice 2 – Remplacement de page (3 points)

On considère un cache composé de 4 cadres de page et on reçoit les demandes d’accès aux pages suivantes :

03 00 01 02 00 03 04 00 01 02 01 04 00 01 03

(2)

1. Donnez, sous la forme d’un diagramme de Gantt, l’exécution d’un algorithme de rem- placement de type LRU sur cet exemple (2 points)

Correction :

03 00 01 02 00 03 04 00 01 02 01 04 00 01 03

0 03 - 02 03

1 00 - - -

2 01 04 -

3 02 01 - -

2. Combien y a-t-il eu de défauts de page ? (1 point) Correction : 8 défauts.

Exercice 3 – Mémoire (7 points)

On considère un système muni de 64Ko de mémoire physique géré de manière segmentée et paginée. Chaque processus peut utiliser 16 segments de 1Ko et le système supporte jusqu’à 256 processus. La moitié des segments sont globaux. Les cadres de page font 512o.

1. Quelle est la taille de l’adresse physique ? Justifiez votre réponse. (0,5 point) Correction : 16 bits (216= 64K).

2. Quelle est la taille de l’adresse logique ? Justifiez votre réponse. (0,5 point)

Correction : 16 segments de 1Ko = 16Ko, donc 14 bits (214 = 16K) : 4 bits pour le numéro de segment, 10 pour le décalage.

3. Quelle est la taille de la mémoire virtuelle ? Justifiez votre réponse. (0,5 point)

Correction :256 processus de 16Ko = 4Mo de mémoire virtuelle. Mais comme l’ont fait remarquer plusieurs étudiants, la moitié des segments de chaque processus sont globaux.

Donc on a en fait 256×8Ko+ 1×8Ko'2M o. Nous avons accepté les deux réponses.

4. Combien de pages un processus peut-il utiliser au maximum ? Justifiez. (0,5 point) Correction : Chaque processus peut avoir au plus 32 pages de 512o (32×512 = 16K max par processus).

5. On rappelle que l’adresse linéaire doit permettre d’adresser toute la mémoire d’un pro- cessus, mais qu’elle n’a pas besoin d’adresser l’ensemble de la mémoire virtuelle.

Quelle est la taille et la composition de l’adresse linéaire (justifiez votre réponse). (0,5 point)

Correction :Il faut un numéro de page et un décalage (couvrant un cadre de page, donc log2(512) = 9 bits). Le tout est sur 14 bits pour couvrir les 16 Ko par processus. Donc 5 bits pour le numéro de page et 9 bits pour le décalage .

6. Quelle est la taille (en nombre de bits) de chaque ligne de la table des descripteurs ? Justifiez votre réponse. (0,5 point)

Correction :Chaque ligne contient les informations suivantes : adresse de base, limite, bit global. La limite est forcément inférieure à 1024 (taille max d’un segment), donc sur 10 bits. L’adresse de base peut couvrir l’ensemble de la mémoire d’un processus, donc

(3)

sur 14 bits (pas besoin de 22 bits qui couvrirait la mémoire virtuelle complète). La moitié des segments sont globaux (par exemple, le premier bit de l’adresse de base correspond au niveau du segment).

En tout, nous avons donc 14+10 = 24 bits.

Nous avons aussi accepté la réponse 25 bits (+1 bit pour le bit "global/local") mais en réalité, ce bit global/local est contenu dans le bit d’adresse.

À un moment de l’exécution, plusieurs processus P1, P2, . . . , PN sont en exécution dans le système. L’état du système est partiellement décrit ci-après :

Table de descripteurs du processus P1 : segment limite base global

00 00 85 00 00 0

01 03 B6 30 00 1

02 03 41 20 00 1

03 02 25 00 86 0

04 00 5F 03 18 0

Table de descripteurs du processus P2 : segment limite base global

00 00 A5 10 11 0

01 01 07 00 C0 0

02 03 B6 30 00 1

03 00 A3 00 1C 0

Extrait de la table des pages du processus P1 :

page cadre valide

00 36 0

01 7A 0

02 32 1

0E 00 1

0F 2A 0

10 2B 0

11 14 1

18 6C 1

19 55 1

1A 31 1

1B 30 0

Extrait de la table des pages du processus P2 :

page cadre valide

00 24 0

01 32 0

08 2A 1

09 76 1

0A 54 0

18 6C 1

19 55 1

1A 31 1

7. Quelle adresse physique correspond à l’adresse logique 00 0B 50 pour le processus P1 ? (a) 00 05 B2

(b) 00 31 B2 (c) 00 AB 50

(d) Aucune de celles-là : il y a une erreur de segmentation (e) Aucune de celles-là : il y a un défaut de page

Justifiez votre réponse. (1 point)

Correction : L’adresse binaire est 0000 1011 0101 0000 qui se décompose en décalage (10 bits) + numéro de segment (4 bits) + 2 bits nuls. En l’occurrence : segment = 10 = 2 et décalage = 0011 0101 0000 = 0x350.

On est donc sur le segment 2, qui a une limite à 0x341<0x350 donc il y a une erreur de segmentation.

Réponse : D

(4)

8. Quelle adresse physique correspond à l’adresse logique 00 0B 50 pour le processus P2 ? (a) 00 05 B2

(b) 00 31 B2 (c) 00 AB 50

(d) Aucune de celles-là : il y a une erreur de segmentation (e) Aucune de celles-là : il y a un défaut de page

Justifiez votre réponse. (1 point)

Correction : Même calcul que précédemment, mais cette fois sur le processus 2 : pas d’erreur de segmentation. Base + décalage = 0x3000 + 0x350 = 0x3350 (soit 0011 0011 0101 0000 en binaire) pour l’adresse linéaire, composée de décalage (1 0101 0000) et numéro de page (1 1001 = 0x19). La page 19 est valide et correspond au cadre 55 (0101 0101) ce qui donne par concaténation l’adresse physique 1010 1011 0101 0000 = AB 50 Réponse : C

9. Quelle adresse physique correspond à l’adresse logique 00 0C 0D pour le processus P1 ? (a) 00 05 B2

(b) 00 31 B2 (c) 00 AB 50

(d) Aucune de celles-là : il y a une erreur de segmentation (e) Aucune de celles-là : il y a un défaut de page

Justifiez votre réponse. (1 point)

Correction : L’adresse binaire est 0000 1100 0000 1101 qui se décompose numéro de segment (0011 = 3) et décalage (0000 0000 1101 = 0x00d). Pas d’erreur de segmentation, on arrive à l’adresse linéaire 0x86+0xd = 0x93 soit 0000 0000 1001 0011 en binaire. On y trouve le décalage (0 1001 0011) et le numéro de page (0). La page n’est pas valide, il y a un défaut de page.

Réponse : E

Remarque : une erreur s’était glissée dans l’énoncé : la page 00 était marquée valide et associée au cadre 36. Nous avons donc compté bon les deux réponses : défaut de page ou 0011 0110 (36) concaténé à 010010011 = 0110 1100 1001 0011 = 6C 93

10. Quelle adresse logique, pour quel processus, correspond à l’adressephysique00 D9 B2 ? (a) Processus P1, adresse 00 05 B2

(b) Processus P1, adresse 00 AB 50 (c) Processus P2, adresse 00 31 B2 (d) Processus P2, adresse 00 AB 50

(e) Aucune de celles-là Justifiez votre réponse. (1 point)

Correction : L’adresse physique s’écrit 1101 1001 1011 0010, qui se décompose en décalage (1 1011 0010) et numéro de cadre (0110 1100 = 0x6C). Ce cadre correspond à la page 18 sur les deux processus (c’est un segment partagé), ce qui donne l’adresse linéaire 0011 0001 1011 0010 = 31 B2, soit base 30 00 et décalage 1B2. Le segment correspond est soit le 01 (processus 1), soit le 02 (processus 2).

(5)

3 des 4 adresses proposées sont trop grandes (segment A pour 31B2) ou invalides (AB50).

Reste l’adresse proposée pour P1 (05 B2) pour laquelle nous avons bien le segment 1 suivi du décalage 1B2 (en binaire : 0000 0101 1011 0010).

Réponse : A

Exercice 4 – Disque SSD (6 points)

On considère un disque SSD de 4 Mo comprenant 8 blocs de 512Ko, dont la table LBA est donnée ci-dessous :

secteur 0 1 2 3 4 5 6 7

bloc 3 L 1 4 0 L 2 L

date 769 534 681 210 721 754 589 345 usure 135 97 111 54 154 143 81 67

À partir de la 770e écriture, le disque reçoit les requêtes d’écriture sur les blocs suivants : 5 1 2 1 3 1

1. Quelle est l’usure du secteur 2 à la fin de l’exécution si on utilise une allocation simple, sans gestion de l’usure ? Justifiez votre réponse. (1 point)

Correction : Il y a 3 requêtes d’écriture sur le bloc 1 contenu dans le secteur 2, donc l’usure à la fin de l’exécution est 111 + 3 = 114.

2. Quel bloc contient le secteur 0 à la fin de l’exécution si on utilise un algorithme de gestion de l’usure dynamique ? Justifiez votre réponse. (2 points)

Correction : À la fin de l’exécution, le secteur 0 contiendra le bloc 1.

Nous pouvons dérouler l’exécution en entier pour bien comprendre ce qu’il se passe : t=770 bloc 5 placé dans le secteur 7

t=771 bloc 1 placé dans le secteur 1, secteur 2 libre t=772 bloc 2 placé dans le secteur 2, secteur 6 libre t=773 bloc 1 placé dans le secteur 6, secteur 1 libre t=774 bloc 3 placé dans le secteur 1, secteur 0 libre t=775 bloc 1 placé dans le secteur 0, secteur 6 libre Ce qui donne à la fin :

secteur 0 1 2 3 4 5 6 7

bloc 1 3 2 4 0 L L 5

usure 136 99 112 54 154 143 82 68

Mais plus simplement, il suffit de remarquer que le bloc 3, contenu dans le secteur 0, est modifié à la 774e écriture sur le disque. Il sera donc déplacé, rendant le secteur 0 libre. La question est de savoir si le bloc 1 sera déplacé dans ce secteur ou dans un autre secteur moins usé.

On peut noter qu’à la 770e écriture (bloc 5), on perd un secteur libre. Le jeu se fait donc systématiquement entre deux secteurs libres : le secteur 5 (usure 143) et un autre secteur, qui va changer à chaque exécution, mais donc l’usure sera forcément plus faible sauf s’il s’agit du secteur 4. Mais cela ne peut pas être le secteur 4 car il contient le bloc 0 qui n’est jamais écrit. Donc à la 775e écriture, le bloc libre le moins usé sera bien le secteur 0, et c’est là que le bloc 1 sera placé.

(6)

3. Quelle est l’usure du secteur 3 à la fin de l’exécution si on utilise un algorithme de gestion de l’usure statique avec une limite d’ancienneté tl = 1 : seuls les blocs déplacés au tour précédent sont protégés ? Justifiez votre réponse. (3 points)

Correction : Le secteur 3 aura une usure de 57. Pour le comprendre, nous pouvons simplement dérouler l’exécution :

t=770 bloc 5 placé dans le secteur 3, bloc 4 déplacé dans secteur 7 (libre)

t=771 bloc 1 déplacé dans le secteur 6, secteur 2 libre, bloc 2 (ex-secteur 6) déplacé dans secteur 1 (libre)

t=772 bloc 2 déplacé dans le secteur 3, secteur 1 libre, bloc 5 (ex-secteur 3) déplacé dans secteur 7, bloc 4 déplacé dans le secteur 1 (libre)

t=773 bloc 1 reste en place (secteur le moins usé et non protégé)

t=774 bloc 3 déplacé secteur 3, secteur 0 libre, bloc 2 (ex-secteur 3) déplacé dans secteur 7, bloc 5 déplacé dans secteur 1, bloc 4 déplacé dans secteur 2 (libre)

t=775 bloc 1 reste en place Ce qui donne :

secteur 0 1 2 3 4 5 6 7

bloc L 5 4 3 0 L 1 2

date 769 774 774 774 721 754 773 774 usure 135 100 112 57 154 143 83 70

Mais plus simplement, il suffit de remarquer que le secteur 3 est le moins usé. C’est donc lui qui sera toujours choisi. Il n’a droit qu’à un cycle de répit. Il sera donc choisi aux écritures 770, 772 et 774. Son usure sera alors 54+3 = 57.

Références

Documents relatifs

Le signifiant a une responsabilité de plus en plus lourde : il doit assurer l’originalité de l’auteur, le distinguer des autres dans ce combat inter-textuel et justifier le désir

Donne la définition de deux triangles semblables : Deux triangles sont semblables si les mesures de leurs angles sont deux à deux égales.. P : Si deux triangles ont leurs angles deux

[r]

Les sommes des deux entiers contenus dans tous les dominos, horizontaux ou verticaux, constitués de deux cases adjacentes sont toutes différentes.. Déterminer en fonction de n la

Je commence par d´ enombrer, dans les deux diagrammes suivants, les parcours partant de C 1 et les parcours arri- vant en C 3 , chaque pas faisant progresser d’une colonne... Ce

[r]

[r]

En fonction de votre réponse, déterminer la relation de dispersion pour une OPPH dans le métal.. On est donc dans le cas où il n’y a pas