Sie sind auf Seite 1von 9

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

Partiel – 25 octobre 2016


N. Sabouret, F. Faissole, H. Jmila

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. Quelles les principales étapes du cycle de vie d’un processus pour l’OS ? (1 point)

2. L’adresse logique peut-elle contenir plus de bits que l’adresse physique ? Justifiez votre
réponse. (1 point)

3. Quelle est la différence entre un MUTEX et un sémaphore (1 point)

1
4. Quel est le meilleur algorithme d’ordonnancement ? Justifiez. (1 point)

Exercice 2 – Ordonnancement (7 points)


On considère les cinq processus suivants pour lesquels nous indiquons la date d’arrivée dans
l’ordonnanceur et la durée estimée :
Proc. Arrivée Durée
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1

1. Indiquez dans le diagramme de Gantt ci-dessous le résultat d’un ordonnancement de type


FIFO, en supposant que le temps de commutation est négligeable. Indiquez en dessous le
temps d’attente moyen et les éléments d’explication que vous jugez nécessaires. (1 point)

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date
UC

Temps moyen et explications:

2. Indiquez dans le diagramme de Gantt ci-dessous le résultat d’un ordonnancement de


type plus court d’abord, en supposant toujours que le temps de commutation est
négligeable. Indiquez en dessous le temps d’attente moyen et les éléments d’explication
que vous jugez nécessaires. (1,5 points)

2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date
UC

Temps moyen et explications:

3. Indiquez dans le diagramme de Gantt ci-dessous le résultat d’un ordonnancement de


type round-robin avec un quantum de 3, en supposant encore que le temps de com-
mutation est négligeable. Indiquez en dessous le temps d’attente moyen et les éléments
d’explication que vous jugez nécessaires. (1,5 points)

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date
UC

Temps moyen et explications:

4. Quel est le meilleur algorithme suivant le critère du temps d’attente moyen ? Et suivant
le critère du temps d’attente min-max ? (1 point)

3
5. Si le temps de commutation est de 0,5 unités de temps, quel est le temps total d’exé-
cution d’un algorithme "plus court d’abord" et d’un algorithme "round-robin" avec un
quantum de 3 ? (1 point)

6. On se place dans le contexte d’une exécution plus longue de ces mêmes cinq processus,
comme indiqué ci-dessous :
— Le processus P1, après son exécution de 7 pas de temps, fait une E/S qui prendra 3
pas de temps puis redemande la main pour 8 pas de temps.
— Le processus P3, après son exécution de 2 pas de temps, fait une E/S qui prendra 5
pas de temps puis redemande la main pour 3 pas de temps, puis refait une E/S pour
4 pas de temps et enfin reprend la main pour 5 pas de temps.
— Le processus P5, après son exécution de 1 pas de temps, fait une E/S qui prendra 4
pas de temps puis redemande la main pour 4 pas de temps.
Quel algorithme, parmi tous ceux que vous avez vu en cours, vous semblerait le mieux
adapté ? Justifiez votre réponse. (1 point)

4
Exercice 3 – Processus (4 points)
On considère le code C suivant :
# include < stdio .h >
# include < stdlib .h >
# include < unistd .h >
# include < sys / types .h >
# include < sys / wait .h >

# define N 100

int k = 1;

int main () {

int t [ N ];
int i ;
for ( i =0; i < N ; i ++)
t [ i ] = rand ()% N ;

pid_t fils = fork ();


if ( fils ==0) {
k =0;
for ( i =0; i < N ; i ++)
if ( t [0] < t [ i ])
t [0]= t [ i ];
}
else {
for ( i =1; i < N ; i ++)
t [0]+= t [ i ];
waitpid ( fils , NULL ,0);
}

printf ( " processus ␣ % d ␣ : ␣ % d \ n " ,k , t [0]);


return 0;
}

1. Que fait le "processus 1" dans ce code ? Expliquez.


Remarque : les processus s’annoncent à la fin du programme avant le return 0. (1 point)

5
2. Que fait le "processus 0" dans ce code ? Expliquez. (1 point)

3. Y a-t-il un risque pour que les deux processus ne fournissent pas le résultat souhaité ?
Expliquez. (1 point)

4. Les deux résultats sont affichés dans deux processus différents : le processus 1 ne peut
pas utiliser le résultat calculé par le processus 0 et réciproquement. Proposez une solu-
tion pour résoudre ce problème. (1 point)

6
Exercice 4 – Synchronisation (5 points)
On considère une route reliant Paris et l’Université Paris-Sud. La particularité de cette route
est d’être à circulation alternée : des voitures peuvent y circuler ensemble dans le sens Orsay
→ Paris ou dans le sens Paris → Orsay, mais elles ne doivent jamais pouvoir se croiser. Nous
avons donc deux classe d’utilisateurs : VP →O (voitures de Paris vers Orsay) et VO→P .
1. Rappeler brièvement la définition d’une section critique ainsi que les trois critères qui y
sont associés (1 point)

2. Expliquez l’analogie entre ce problème et le problème des lecteurs-écrivains vu en TD.


(0,5 point)

3. En utilisant des sémaphores, écrivez (en pseudo-code ou dans le langage de votre choix)
les fonctions de demande d’accès aux tronçons Paris → Orsay (respectivement Orsay
→ Paris) et les fonctions de sortie des tronçons Paris → Orsay (respectivement Orsay
→ Paris) : nous attendons de vous quatre fonctions, et l’utilisation d’un ou plusieurs
sémaphores. Vous n’avez pas besoin de redonner le code d’un sémaphore. (2 points)

7
4. On ajoute un nouvel acteur : le camion de travaux. On ajoute alors une contrainte sup-
plémentaire : un camion ne peut accéder à un tronçon que s’il n’y a aucun autre camion,
et aucun autre automobiliste. Proposer une solution pour ajouter cette contrainte. (1
point)

8
5. Y’a-t-il un quelconque risque de famine ? Justifiez votre réponse. (0,5 point)