Académique Documents
Professionnel Documents
Culture Documents
1
Exercice 2 – Mémoire (6 points)
On considère un système pouvant gérer jusqu’à 2048 processus pouvant adresser chacun 16
Gio de mémoire. Le système dispose de 8 Gio de mémoire physique.
1. Sur combien de bits sont codées l’adresse logique et l’adresse physique ? Justifiez votre
réponse (1 point)
2. Quelle est la quantité maximale de mémoire virtuelle pour le système ? (0,5 point)
3. On suppose que l’allocation de mémoire est contiguë avec une stratégie Best Fit.
On considère l’éxécution des processus suivante :
Processus P1 P2 P3 P4
Arrivée 0 2 1 4
Mémoire 6,5 Gio 0,5 Gio 2 Gio 4,5 Gio
Durée 3 6 12 6
Décrivez précisément l’allocation mémoire à chaque pas de temps, en expliquant au fur
et à mesure comment sont positionnés les processus. (1 point)
2
4. Donner le taux de fragmentation à t = 3 secondes pour l’exécution donnée à la question
précédente. (0,5 point)
3
6. On considère la table de pages d’un processus P dont les 4 premières entrées sont données
ci-dessous :
No de page No de cadre Bit de validité
0 0010 1
1 A1A3 0
2 FFFF 1
3 3000 1
Calculez l’adresse physique correspondant à l’adresse logique 00004B6A4. Vous devez
expliquer les détails de votre calcul. Attention ! Prenez garde au nombre de bits
de décalage et de numéro de page ! (1 point)
7. On s’intéresse à l’adresse physique 1 4346 0101. Est-ce que cette adresse appartient au
processus P ? Si oui, quelle est son adresse logique. Si non, expliquez. (1 point)
Tournez la page. . .
4
Exercice 3 – Threads (5 points)
Partie 1 : Cycle de vie des threads
On propose le code Java suivant :
System.out.println("début");
exercice[] threads = {
new exercice("riri"),
new exercice("fifi"),
new exercice("loulou")
};
for(exercice ex : threads)
ex.start();
try {Thread.sleep(2500);}
catch (Exception e){ e.printStackTrace();}
threads[2].interrupt();
try {
threads[1].join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("adieu");
}
}
5
1. Écrivez le contenu de la sortie standard quand on exécute ce programme Java. (2 points)
Partie 2 : synchronisation
Nous considérons maintenant le code Java suivant :
6
2. Réécrivez les deux fonctions pour empêcher l’interblocage (1 point)
3. Proposez une méthode permettant de réduire l’attente active des processus (0,5 point)
7
4. Peut-on généraliser cette méthode pour N processus, N>2 (0,5 point)
8
2. Toujours en ignorant les priorités et demandes d’E/S, dessinez le diagramme de Gantt
dans le cas de l’algorithme Round-Robin. Vous indiquerez aussi le temps d’attente moyen.
(1,5 points)