Info32B – Systèmes d’Exploitations – année 2017-2018
Examen – 10 janvier 2018
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. Qu’est-ce que le bus ? Qu’est-ce qu’un tampon ? (1 point)
Correction :Le bus, c’est une nappe de fils qui permet aux composants du système de communiquer entre eux. Le tampon, c’est ce qui permet aux composants de stocker des données provenant du bus ou en attente de transmission sur le bus.
2. 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.
3. À quoi sert le mode superviseur (1 point)
Correction :En mode superviseur, les actions de bas-niveau sur le système ne sont pas vérifiées par l’OS : c’est l’OS qui agit directement. Le fait d’avoir un mode superviseur permet que les processus autres que l’OS ne fassent pas n’importe quoi.
Barème : 0,5 pour "contrôler ce que font les processus en mode normal" et 0,5 pour "c’est l’OS qui est en mode superviseur"
4. Quels sont les avantages de la pagination et de la segmentation (1 point)
Correction :La pagination permet de réduire la fragmentation de la mémoire en ayant des blocs tous de même taille. La segmentation permet de découper les processus en blocs logiques cohérents, donc de réduire les appels à des pages différentes.
Exercice 2 – Mémoire (7 points)
Dans un système paginé, les pages font 64 Ko et on autorise chaque processus à utiliser au plus 1024 cadres de la mémoire centrale. On considère la table des pages suivante du processus P1 (les numéros de cadre sont donnés en hexadécimal) :
Node page Node cadre Bit de validité
00 FF FF 1
01 6C 9E 0
02 AD C8 1
03 CC D4 0
04 02 D5 0
05 89 FF 0
06 67 4A 1
07 00 02 0
1. Quelle est la taille de l’espace d’adressage du processus P1 ? (1 point)
Correction : L’espace d’adressage du processus est l’espace d’adressage virtuel formé par les pages. Comme il y a 8 pages, la taille de l’espace virtuel est de 8*64 Ko = 512 Ko.
2. Quelle adresse physique correspond à l’adresse linéaire 02 D5 6A pour le processus P1 ? (a) FF F2 D5 6A
(b) 00 00 04 6A (c) AD C8 D5 6A
(d) Aucune de celles-là : il y a un défaut de page Justifiez votre réponse. (1,5 points)
Correction :Les 4 derniers chiffres (16 bits) décrivent le décalage (D5 6A, à conserver).
Ensuite, on remplace le numéro de page (02) par le numéro de cadre (AD C8) et c’est donc la réponse C.
Réponse : C
3. La mémoire est aussi segmentée : chaque processus peut accéder à 2048 segments (dont la moitié sont des segments globaux) et les segments sont limités à 2 Mo. L’adresse logique est donc sur 32 bits. On suppose que la table des segments du processus P1 contient les informations suivantes :
segment limite base global
00 00 85 B1 00 06 00 00 0 01 00 02 C7 00 04 01 A0 1 02 00 03 D2 00 02 7D 00 1 03 00 01 25 00 06 85 B2 0 04 00 00 5F 00 07 E2 37 0
Quelle adresse physique correspond à l’adresse logique 00 30 00 F2 pour le processus P1 ?
(a) 67 4A 86 A4 (b) 00 04 04 67
(c) 67 4A 86 D7 (d) CC D4 00 F2
(e) Aucune de celles-là : il y a une erreur de segmentation (f) Aucune de celles-là : il y a un défaut de page
Justifiez votre réponse. (2 points)
Correction : L’adresse logique se décompose en 0000 0000 001 (numéro de segment = 1) et 10 00 F2 (décalage en hexa). Donc il y a une erreur de segmentation car le segment 1 a une limite plus petite que le décalage.
Réponse : E
4. Quelle adresse physique correspond à l’adresse logique 00 20 02 2A pour le processus P1 ?
(a) AD C8 02 2A (b) AD C8 7F 2A
(c) 02 D5 03 CA (d) 00 04 04 67
(e) Aucune de celles-là : il y a une erreur de segmentation (f) Aucune de celles-là : il y a un défaut de page
Justifiez votre réponse. (2 points)
Correction : L’adresse logique se décompose en 0000 0000 001 (numéro de segment
= 1) et 00 02 2A (décalage en hexa). Le décalage est bien plus petit que la limite du segment. L’adresse linéaire est donc 022A+0401A0 = 04 03 CA (en hexa). Donc c’est la page 4. Mais elle est marquée invalide -> défaut de page.
Réponse : F
5. De combien de mémoire vive dispose le système ? Justifiez votre réponse. (0,5 point) Correction : Le premier cadre indiqué dans la table des pages est sur 16 bits (et tous ses bits sont à 1, donc le cadre numéro216−1est adressé). Donc on peut supposer qu’il y a au moins216 cadres faisant chacun216o = 64Kodans la RAM et donc que la mémoire physique comporte 216×216 = 232 octets, soit 4 Go.
L’exercice est noté sur 7,5 points en tout.
Exercice 3 – Disques RAID (4 points)
Soit les données hexadécimales suivantes :
74 04 A3 DD 2A 27 31 2F DD 63 6A DD 87 F0 01
que l’on souhaite écrire sur un disque RAID constitué de 4 disques et organisé en agrégat par bandes avec un disque de parité (RAID 5). On suppose que les bandes sont constituées d’un seul octet par disque, que la première bande utilise le premier disque pour stocker la parité des trois premiers octets, la deuxième bande verra sa parité enregistrée sur le deuxième disque, la troisième bande sur le troisième disque, etc.
1. Quelle est la capacité totale de ce sous-système RAID5 sachant que chaque disque com- porte 512Go d’espace disponible ? Justifiez. (1 point)
Correction :La capacité totale du système RAID5 est 3×512Go, soit 1,5T o. L’un des disque est globalement utilisé pour stocker la parité.
2. Calculer la parité associée à chaque bande et compléter le tableau suivant. Vous pouvez rajouter des bandes si nécessaire. (2 points)
Correction : Réponse après le tableau
Disque 0 Disque 1 Disque 2 Disque 3 Bande 0
Bande 1 Bande 2 ...
Disque0 - Disque1 - Disque2 - Disque3
Bande 0 *D3* 74 04 A3
Bande 1 DD *D0* 2A 27
Bande 2 31 2F *C3* DD
Bande 3 63 6A DD *D4*
Bande 4 *76* 87 F0 01
3. Supposons que le disque 1 est tombé en panne. Comment faire pour recalculer les parties de bandes effacées de ce disque ? Expliquez. (1 point)
Correction :En cas de défaillance d’un disque, les données qui s’y trouvaient pourront être reconstituées par l’opération XOR. En effet, l’opération XOR a la propriété suivante : si on considère blocs de taille identique a1, a2, ..., an et si a1 × a2... ×an = p1 alors p1×a1×a2...×an−1 =an.
Exercice 4 – Processus (5 points)
On considère un système de gestion de processus en temps partagé équitable, comme sous Linux, fonctionnant de la manière suivante :
— Chaque processus rentre dans la file avec une certaine priorité, qui correspond à son crédit initial ;
— Le processus avec le plus grand crédit est sélectionné pour une durée maximum égale au quantum de temps ;
— À chaque fin du quantum, le processus exécuté, s’il n’a pas terminé son calcul, perd un crédit ; s’il est toujours l’un des processus les plus crédités (peut-être à égalité avec d’autres processus prêts), il garde la main ;
— Lorsqu’aucun processus prêt n’a de crédit, tous les processus sont recrédités de 50% de leur crédit actuel (arrondi à l’entiersupérieur) plus leur priorité initiale.
On suppose que le quantum de temps est fixé à 2 et on considère 4 processus P1, P2, P3 et P4 dont l’exécution est décrite ci-dessous :
P1 Arrivée à t=0, priorité 3, 5 pas de calcul, 8 pas d’E/S, 3 pas de calcul P2 Arrivée à t=0, priorité 1, 6 pas de calcul
P3 Arrivée à t=1, priorité 4, 4 pas de calcul, 7 pas d’E/S, 2 pas de calcul P4 Arrivée à t=4, priorité 1, 3 pas de calcul
1. En négligeant le temps de commutation, donnez le diagramme de Gantt résultant de l’exécution des processus (3 points)
Correction : Réponse après le barème. J’indique pour chaque date les processus en exécution, prêts et en attente, avec entre parenthèse leur temps restant et leur crédit).
t 0 1 3 5 7 9 11
E P1(5,3) P3(4,4) P3(2,3) P1(4,3) P1(2,2) P2(6,1) P4(3,1) P P2(6,1) P2(6,1) P2(6,1) P2(6,1) P2(6,1) P4(3,1) P2(4,0)
P1(4,3) P1(4,3) P4(3,1) P4(3,1)
A - - - P3(7,2) P3(5,2) P3(3,2) P3(1,2)
P1(8,1) P1(6,1)
t 12 14 16 R 16 17 20 23 E P3(2,2) P4(2,1) - R P2(4,1) P1(3,5) P2(3,1) - P P2(4,0) P2(4,0) P2(4,0) R - P2(3,1)
P4(2,1) R
A P1(5,1) P1(3,1) P1(1,1) R P1(1,5) -
2. Donnez le temps d’attente moyen, le temps de rotation moyen et le débit sur cet exemple.
Vous devrez indiquer le détail de vos calculs. (2 points) Correction :
Temps d’attente : P1=4, P2=9+7+3=19, P3=0, P4=7+2=9, moyenne = (4+19+0+9)/4
= 8
Rotation avec les ES : P1=20, P2=22, P3=13, P4=12, moyenne=16,75 Rotation sans les ES : P1=12, P2=22, P3=6, P4=12, moyenne=13 Débit : 23/4=5,5