• Aucun résultat trouvé

Exercice 3 – Threads (5 points)

N/A
N/A
Protected

Academic year: 2022

Partager "Exercice 3 – Threads (5 points)"

Copied!
9
0
0

Texte intégral

(1)

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

Partiel – 23 octobre 2017

N. Sabouret, F. Faissole, R. Pelle, T. Lavergne

Nom : Prénom : Signature :

— L’épreuve dure 1h30. Tous les documents sont autorisés.

— Le sujet comprend 4 exercices indépendants.

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

Exercice 1 – Question de cours (4 points)

1. Quelle est la différence entre une interruption et une exception ? (1 point)

2. Donnez 3 exemples d’appel système vus en cours. (1 point)

3. Qu’est-ce qu’un déroutement ? (1 point)

(2)

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)

(3)

4. Donner le taux de fragmentation à t= 3 secondes pour l’exécution donnée à la question précédente. (0,5 point)

5. On suppose maintenant quela mémoire est paginée(à un niveau de pagination), avec des cadres de pages de 128 Kio. Sur combien de bits sont codés le décalage, le numéro de page et le numéro de cadre ? Justifiez votre réponse. (1 point)

(4)

6. On considère la table de pages d’un processusP dont les 4 premières entrées sont données ci-dessous :

Node page Node 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. . .

(5)

Exercice 3 – Threads (5 points)

Partie 1 : Cycle de vie des threads

On propose le code Java suivant :

public class exercice extends Thread { public String name;

public exercice(String s){

this.name = s;

}

public void run(){

for(int i = 0 ; i < 8 ; i++){

System.out.println("bonjour de la part de " + name);

try {

Thread.sleep(1000);

if (name != "fifi" && i == 5){

break;

}

} catch (InterruptedException e) { break;

} }

System.out.println("aurevoir de " + name);

}

public static void main ( String[] args){

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");

} }

(6)

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 : boolean[] section_critique = {false,false};

void entrer_sc(int id) {

section_critique[id] = true;

while(section_critique[1-id])

; }

void sortir_sc(int id){

section_critique[id] = false;

}

1. Expliquez pourquoi ce code ne protège pas des interblocage. (1 point)

(7)

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)

(8)

4. Peut-on généraliser cette méthode pour N processus, N>2 (0,5 point)

Exercice 4 – Ordonnancement (5 points)

On considère un système utilisant un ordonnancement par priorités dynamiques allant de 0 (la plus basse) à 4 (la plus haute). À chaque fois qu’un processus se voit attribué le processeur, sa priorité baisse de 1 sans jamais descendre en dessous de 0.

L’algorithme d’ordonnancement choisit le processus dont la priorité est la plus élevée et pour un niveau de priorité il utilise l’algorithme Round-Robin avec un quantum de 2.

Les processus peuvent faire des demandes d’E/S qui suspendent le processus pendant 5 unités de temps. Lorsqu’un processus repasse dans la file "Prêt" après une demande d’E/S, sa priorité est réinitialisée à sa valeur initiale mais il ne peut pas préempter le processus actuelle- ment en cours d’exécution.

On considère les processus suivants pour lesquels on indique la date d’arrivée, la durée estimée, la priorité et les temps où ils vont réaliser une demande d’E/S :

Proc. Arrivée Durée Priorité E/S

P1 0 10 4 3, 5, 9

P2 0 6 2

P3 1 5 3

P4 4 2 4 1

P5 8 5 2

P6 11 6 3

1. Dessinez le diagramme de Gantt représentant l’ordonnancement de ces processus dans le cas de l’algorithme plus court-d’abord en ignorant les priorités et les demandes d’E/S.

Vous indiquerez aussi le temps d’attente moyen. (1,5 points)

(9)

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)

3. Dessinez le diagramme de Gantt représentant l’ordonnancement des processus dans le cas du système complet avec priorité et demandes d’E/S. Vous indiquerez aussi le temps d’attente moyen. (2 points)

Références

Documents relatifs

— Lorsqu’un processus passe en attente (requête d’E/S), c’est le processus prêt avec le plus court temps estimé restant qui est exécuté (ordonnancement au plus court

Déroulez l’algorithme d’allocation Best-fit (plus petit bloc libre) en précisant à chaque instant les allocations et désallocations qui sont effectuées, et donnez le taux de

Dessinez un diagramme de Gantt correspondant au résultat d'un ordonnancement préemp- tif plus court d'abord (avec remise en n de le) et indiquez le temps d'attente moyen2.

Correction : C’est la structure de données qui permet à l’OS de stocker l’ensemble des informations utiles sur un processus (propriétaire, adresse du processus en

Indiquez dans chaque case du diagramme de Gantt ci-dessous quel processus est affecté à l’UC à chaque pas de temps de l’exécution, puis indiquez en dessous le temps

— Lorsque qu’un processus revient dans la file prêt (par exemple en fin d’E/S), c’est le processus ayant le plus court temps estimé restant parmi les processus prêt et le

Déroulez l’algorithme d’allocation Best-fit (plus petit bloc libre) en précisant à chaque instant les allocations et désallocations qui sont effectuées, et donnez le taux de

Par exemple, si on a des tables de pages de 4Ko, si toutes les pages utilisées par le processus sont dans le même groupe de pages, alors on ne chargera qu'une table de pages, au lieu