• Aucun résultat trouvé

IFA-3-SYS : contrôle continu. Février 2020

N/A
N/A
Protected

Academic year: 2022

Partager "IFA-3-SYS : contrôle continu. Février 2020"

Copied!
5
0
0

Texte intégral

(1)

IFA-3-SYS : contrôle continu. Février 2020

NOM Prénom :

Durée : 30 min

Les réponses sont à inscrire sur le sujet.

Commencez par écrire votre nom dans le cadre ci-dessus.

Lisez le sujet en entier (15 questions) avant de commencer à travailler.

Documents et appareils interdits, sauf une feuille A4 recto-verso manuscrite.

Pour les calculs en binaire, vous pouvez vous aider du tableau donné en page 5.

Prenez la peine d’écrire lisiblement. Utilisez un brouillon plutôt que de faire des ratures.

Dans les questions vrai/faux, les erreurs sont comptées négativement : ne répondez pas au hasard.

1 Noyau et processus

Question 1 Pour chaque abbréviation ci-dessous, donnez sa signification en toutes lettres :

INSA Institut National des Sciences Appliquées DMA

IRQ ISR VCPU

Question 2 Pour chaque affirmation ci-dessous, indiquez si elle est vraie (entourez V) ou bien si elle est fausse/absurde (entourez F).

V F Le rôle du noyau est, entre autres, d’exécuter les instructions assembleur qui composent les applications userland.

V F Le rôle du noyau est, entre autres, d’interpréter les commandes que tape l’utilisateur dans un terminal.

V F Le rôle du noyau est, entre autres, de réagir aux évènements matériels signalés par les périphériques.

V F Le rôle du noyau est, entre autres, de virtualiser les ressources matérielles de la machine : processeur, mémoire, etc.

Question 3 Quels sont les services qu’on attend de la part d’un shell ?

(2)

Question 4 Si on exécute le programme ci-dessous, combien de fois la lettre X sera-t-elle affichée ?

main() {

int r1 = fork();

int r2 = fork();

if(r1 * r2 == 0) {

fork();

}

printf("X");

}

La lettre X sera affichée fois en tout.

2 Ordonnancement CPU

Question 5 Pour chaque affirmation ci-dessous, indiquez si elle est vraie (entourez V) ou bien si elle est fausse/absurde (entourez F).

V F Dans un OS grand-public, l’ordonnanceur est en général de type coopératif.

V F La commutation de contexte (context switch) est une technique pour virtualiser le CPU.

V F Par définition, un ordonnanceur de type préemptif est immunisé contre les risques de famine.

V F S’il ne trouve aucun processus prêt, l’ordonnanceur peut réveiller un processus suspendu.

Question 6 De quoi parle-t-on lorsqu’on dit qu’un appel système est bloquant ?

Donnez un exemple d’appel système bloquant :

ainsi qu’un exemple d’appel système non bloquant :

Question 7 On suppose dans cette question un ordonnanceur appliquant la stratégie SRTF. On s’intéresse à trois tâches calculatoires A, B, et C décrites par le tableau ci-dessous.

tâche A B C

arrivée 0 5 10 durée 15 5 15

Sur une feuille de brouillon, dessinez un chronogramme indiquant la succession des tâches sur le processeur. Recopiez ensuite votre réponse au propre dans le cadre ci-dessous.

temps (ms)

0 5 10 15 20 25 30 35

(3)

3 Mémoire virtuelle

Question 8 Pour chaque affirmation ci-dessous, indiquez si elle est vraie (entourez V) ou bien si elle est fausse/absurde (entourez F).

V F Grâce à la mémoire virtuelle, les accès à la mémoire physique paraissent plus rapides (du point de vue du processeur).

V F Le nombre de pages virtuelles disponibles pour un processus dépend de la quantité de mémoire physique installée sur la machine.

V F Sur une même machine, une page virtuelle et une page physique auront toujours exactement la même taille.

V F Un processus causant de nombreuses fautes de pages sera considéré par l’ordonnanceur comme un processus «IO-bound».

Question 9 Combien y a-t-il de nanosecondes dans une milliseconde ? Répondez en décimal ou en puissances de dix.

Question 10 En TP, on a utilisémmap()pour réimplémenter la commandecat. Mais avec quelle(s) op- tion(s) ? Pour chaque drapeau de la liste ci-dessous, indiquez s’il était utile pour cet exercice (entourez V) ou bien s’il était inutile/hors-sujet/incorrect (entourez F).

V F MAP_ANONYMOUS V F MAP_FILE V F MAP_PRIVATE V F MAP_SHARED

Question 11 On suppose dans cette question un système avec mémoire paginée dont les caractéris- tiques sont les suivantes : adresses virtuelles codées sur 4 bits, taille des pages virtuelles = 4 octets, adresses physiques codées sur 5 bits, taille des pages physiques = 4 octets.

On s’intéresse à un processus dont la table de pages est donnée ci-dessous :

VPN 0 1 2 3

PPN 5 4 7 0

Pour chaque adresse virtuelle ci-dessous (en décimal), indiquez l’adresse physique correspondante (également en décimal), ou bien répondez X si la traduction est impossible. Pour les calculs en binaire, vous pouvez vous aider du tableau page 5.

VA 3 8 13

PA

4 Allocation dynamique

Question 12 Les affirmations ci-dessous se rapportent au TP sur la gestion mémoire. Pour chacune d’entre elles, indiquez si elle est vraie (entourez V) ou bien si elle est fausse/absurde (entourez F).

V F Si un bloc est libre, alors sa taille est un multiple de 8 octets.

V F Si un bloc est occupé, alors sa taille est un multiple de 8 octets.

V F Tant qu’on ne découpe pas les blocs, il ne peut se produire aucune fragmentation dans le tas.

V F Tous les pointeurs manipulés par notre allocateur contiennent des adresses virtuelles.

(4)

Question 13 Complétez le code ci-dessous afin que la fonction renvoie un nombre dont tous les bits sont identiques à ceux dex, sauf le bit de rangn qui devient zéro. Le rang est compté à partir de la droite (i.e. à partir des poids faibles), en démarrant à zéro.

unsigned int bitclear(unsigned int x, int n) {

}

Question 14 Un gestionnaire mémoire implémente des algorithmes complexes, alors qu’il serait beaucoup simple d’utilisermmap()(resp.munmap()) pour transmettre chaque requête d’allocation (resp.

de désallocation) au noyau. Quels seraient les inconvénients d’une telle solution simpliste ? Citez au moins deux raisons distinctes.

Question 15 On s’intéresse dans cette question à un gestionnaire de mémoire dynamique appliquant la stratégie worst-fit. À l’instant initial, lafreelist contient les blocs suivants, chaînés dans cet ordre :

A (9 kio)−→B (4 kio)−→C (20 kio)−→D (18 kio)−→E (7 kio)

On suppose que l’application demande successivement trois allocations pour des tableaux qu’on appellera X, Y, et Z, dont les tailles respectives sont 10 kio, 12 kio, et 9 kio.

Le tableau X sera alloué dans le bloc Le tableau Y sera alloué dans le bloc Le tableau Z sera alloué dans le bloc

(5)

Annexe : aide pour les calculs en binaire

Les premiers nombres entiers, notés en décimal, en hexadécimal, et enbinaire : Dec Hex Bin

0 0 0

1 1 1

2 2 10

3 3 11

4 4 100

Dec Hex Bin

5 5 101

6 6 110

7 7 111

8 8 1000

9 9 1001

Dec Hex Bin

10 A 1010

11 B 1011

12 C 1100

13 D 1101

14 E 1110

Dec Hex Bin

15 F 1111

16 10 10000 17 11 10001 18 12 10010 19 13 10011 Les premières puissances de 2 :

20 = 1 216= 65 536 232= 4 294 967 296 248= 281 474 976 710 656 21 = 2 217= 131 072 233= 8 589 934 592 249= 562 949 953 421 312 22 = 4 218= 262 144 234= 17 179 869 184 250= 1 125 899 906 842 624 23 = 8 219= 524 288 235= 34 359 738 368 251= 2 251 799 813 685 248 24 = 16 220= 1 048 576 236= 68 719 476 736 252= 4 503 599 627 370 496 25 = 32 221= 2 097 152 237= 137 438 953 472 253= 9 007 199 254 740 992 26 = 64 222= 4 194 304 238= 274 877 906 944 254= 18 014 398 509 481 984 27 = 128 223= 8 388 608 239= 549 755 813 888 255= 36 028 797 018 963 968 28 = 256 224= 16 777 216 240= 1 099 511 627 776 256= 72 057 594 037 927 936 29 = 512 225= 33 554 432 241= 2 199 023 255 552 257= 144 115 188 075 855 488 210= 1024 226= 67 108 864 242= 4 398 046 511 104 258= 288 230 376 151 711 744 211= 2048 227= 134 217 728 243= 8 796 093 022 208 259= 576 460 752 303 423 488 212= 4 096 228= 268 435 456 244= 17 592 186 044 416 260= 1 152 921 504 606 846 976 213= 8 192 229= 536 870 912 245= 35 184 372 088 832 261= 2 305 843 009 213 693 952 214= 16 384 230= 1 073 741 824 246= 70 368 744 177 664 262= 4 611 686 018 427 387 904 215= 32 768 231= 2 147 483 648 247= 140 737 488 355 328 263= 9 223 372 036 854 775 808 264= 18 446 744 073 709 551 616 On rappelle également que :

— 1 kio = 1024 octets,

— 1 Mio = 1024 Kio,

— 1 Gio = 1024 Mio,

— 1 Tio = 1024 Gio,

— etc. (avec dans l’ordre : Pio, Eio, Zio, Yio)

En cas de doute sur les unités de mesure, n’hésitez pas à demander des précisions.

Références

Documents relatifs

Numéro du billet d'entrée Date et l’heure du billet d'entrée Période de l'absence de l’élève Code du motif d'absence ou de

2) De montrer que ce sont les raisonnements qui importent, pas les solutions ci- dessous. Si vous vous êtes contenté de la même rédaction succincte, c’est que

✘Ouvrez le fichier MOTO.WAV dans Audacity. Un micro posé au bord de la route a enregistré le passage d’une moto. 1) En réalisant le spectre du son enregistré lors de

• Calculer littéralement, puis numériquement dans les deux cas précédents, le travail de la force de frottement lors du parcours de la distance ℓ pour une masse m =

Dans la configuration 2, on suppose que la première ligne commence par un cercle au coin in- férieur gauche, que deux cercles consécutifs d’une même ligne sont tangents et que

[r]

Cette œuvre vous rappelle certainement une autre construction célèbre de la même époque en Nouvelle-Calédonie ainsi qu’un autre pont célèbre à New-York voire une construction

À partir des informations précédemment trouvées, vous rédigerez une description détaillée de l’œuvre (vous devrez vous attacher à décrire précisément l’œuvre : sa forme,