6 16 2016
6 16 2016
6 16 2016
2. L’adresse logique peut-elle contenir plus de bits que l’adresse physique ? Justifiez votre
réponse. (1 point)
1
4. Quel est le meilleur algorithme d’ordonnancement ? Justifiez. (1 point)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date
UC
2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date
UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date
UC
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 ;
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)
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)